Add Bible Questions inbox from contact submissions

This commit is contained in:
nmemmert
2026-04-12 13:25:59 -04:00
parent dcfce9dc24
commit f07d8fecfb
5 changed files with 168 additions and 5 deletions
+59
View File
@@ -53,6 +53,19 @@ interface AdminStats {
visitorStats: { ok: boolean; at: string | null; error: string | null }
backups: { ok: boolean; at: string | null; error: string | null; file: string | null }
}
bibleQuestions: Array<{
id: string
submittedAt: string
name: string
email: string
message: string
messageType: 'question' | 'testimony' | 'topic' | 'general'
subscribe: boolean
}>
contactTotals: {
totalSubmissions: number
totalQuestions: number
}
}
type StringField = Exclude<keyof SiteContent, 'customLinks' | 'customBlocks'>
@@ -550,6 +563,52 @@ export default function AdminPage({ content, onSave }: Props) {
)}
</div>
<div className="admin-stats-head admin-stats-head--visitors">
<h2>Bible Questions Inbox</h2>
<p>Questions submitted from the contact form emails.</p>
</div>
<div className="admin-stats-grid">
<article>
<h3>Total Contact Messages</h3>
<p>{stats.contactTotals.totalSubmissions.toLocaleString()}</p>
</article>
<article>
<h3>Total Bible Questions</h3>
<p>{stats.contactTotals.totalQuestions.toLocaleString()}</p>
</article>
</div>
<div className="admin-visits-table-wrap">
<h3>Recent Bible Questions</h3>
{stats.bibleQuestions.length === 0 ? (
<p className="admin-stats-note">No Bible questions yet.</p>
) : (
<div className="admin-visits-table-scroll">
<table className="admin-visits-table">
<thead>
<tr>
<th>Submitted</th>
<th>Name</th>
<th>Email</th>
<th>Question</th>
</tr>
</thead>
<tbody>
{stats.bibleQuestions.map(item => (
<tr key={item.id}>
<td>{formatDate(item.submittedAt)}</td>
<td>{item.name}</td>
<td>{item.email}</td>
<td>{item.message}</td>
</tr>
))}
</tbody>
</table>
</div>
)}
</div>
<div className="admin-stats-head admin-stats-head--visitors">
<h2>Data Management</h2>
<p>Export, backup, or retain only recent analytics data.</p>