Implement email tab redesign, archive support, manual Q&A creation, URL linking, and question admin tools

- Add dedicated Emails tab with inbox/archive views and two-pane layout
- Implement archive/unarchive for contact submissions with persisted state
- Add manual question creation endpoint and admin form (non-contact origin)
- Implement URL auto-linking in Q&A answers with safe rendering
- Add question admin tools: search, filter (All/Pending/Approved/Answered/Unanswered), pagination
- Expand admin panel widths to reduce cramping
- Restore and enhance Asset Manager table layout
- Update email reply template with fixed from-address and HTML support
This commit is contained in:
nmemmert
2026-05-07 09:43:16 -04:00
parent bc3d906e64
commit 583a9b7b66
8 changed files with 1420 additions and 36 deletions
+3 -2
View File
@@ -1637,11 +1637,12 @@ function AdminShell({ content, onSave }: { content: SiteContent; onSave: (c: Sit
)
}
function QuestionsPage() {
function QuestionsPage({ content }: { content: SiteContent }) {
return (
<main className="thanks-page" aria-label="Questions and Answers">
<div className="thanks-card" style={{ maxWidth: '1000px', width: '100%' }}>
<QASection />
<CustomBlocksSection content={content} page="questions" />
<div style={{ marginTop: '2rem', textAlign: 'center' }}>
<Link to="/" className="btn-secondary">Back to Site</Link>
</div>
@@ -1799,7 +1800,7 @@ export default function App() {
<Route path="/downloads/:id" element={<DownloadDetailPage content={content} />} />
<Route path="/about" element={<AboutPage content={content} />} />
<Route path="/contact" element={<ContactPage content={content} />} />
<Route path="/questions" element={<QuestionsPage />} />
<Route path="/questions" element={<QuestionsPage content={content} />} />
<Route path="/thanks" element={<ThankYouPage />} />
<Route path="/subscribe" element={<SubscribePage />} />
<Route path="/subscribe/thanks" element={<SubscribeThankYouPage />} />