diff --git a/assets/css/main.css b/assets/css/main.css
index a341add..da21d3c 100644
--- a/assets/css/main.css
+++ b/assets/css/main.css
@@ -11,6 +11,9 @@ body {
font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
margin: 0;
padding: 0;
+ background-color: #f9fafb;
+ color: #111827;
+ line-height: 1.6;
}
/* Basic reset and utility styles */
@@ -21,6 +24,7 @@ body {
h1, h2, h3, h4, h5, h6 {
font-weight: 600;
line-height: 1.25;
+ margin: 0;
}
button {
@@ -33,6 +37,76 @@ input, textarea {
outline: none;
}
+/* Custom styling for better appearance */
+.container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 1rem;
+}
+
+/* Card styling */
+.card {
+ background: white;
+ border-radius: 0.5rem;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ padding: 1.5rem;
+}
+
+/* Button styling */
+.btn {
+ display: inline-flex;
+ align-items: center;
+ padding: 0.5rem 1rem;
+ border-radius: 0.375rem;
+ font-weight: 500;
+ text-decoration: none;
+ transition: all 0.2s;
+}
+
+.btn-primary {
+ background-color: #dc2626;
+ color: white;
+}
+
+.btn-primary:hover {
+ background-color: #b91c1c;
+}
+
+.btn-outline {
+ background-color: transparent;
+ border: 1px solid #d1d5db;
+ color: #374151;
+}
+
+.btn-outline:hover {
+ background-color: #f3f4f6;
+}
+
+/* Form styling */
+.form-group {
+ margin-bottom: 1rem;
+}
+
+.form-label {
+ display: block;
+ margin-bottom: 0.5rem;
+ font-weight: 500;
+ color: #374151;
+}
+
+.form-input {
+ width: 100%;
+ padding: 0.5rem 0.75rem;
+ border: 1px solid #d1d5db;
+ border-radius: 0.375rem;
+ font-size: 0.875rem;
+}
+
+.form-input:focus {
+ border-color: #dc2626;
+ box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
+}
+
/* Custom font classes if needed */
.font-inter {
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
diff --git a/pages/[slug].vue b/pages/[slug].vue
index c91df6e..6eab3ec 100644
--- a/pages/[slug].vue
+++ b/pages/[slug].vue
@@ -5,7 +5,7 @@
-

+
-

+
-

+
diff --git a/server/api/sermons/index.get.ts b/server/api/sermons/index.get.ts
index e096c1f..2a9ba5b 100644
--- a/server/api/sermons/index.get.ts
+++ b/server/api/sermons/index.get.ts
@@ -1,39 +1,45 @@
import { getDatabase } from '~/server/utils/database'
import { verifyJWT } from '~/server/utils/auth'
+import { getQuery } from 'h3'
export default defineEventHandler(async (event) => {
- const db = await getDatabase()
+ try {
+ const db = await getDatabase()
- // Check for time filter
- const query = getQuery(event)
- const timeFilter = query.time as string || '3months'
+ // Check for time filter
+ const query = getQuery(event)
+ const timeFilter = query.time as string || '3months'
- let dateFilter = ''
- const now = new Date()
+ let dateFilter = '1970-01-01T00:00:00.000Z'
+ const now = new Date()
- switch (timeFilter) {
- case '3months':
- const threeMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate())
- dateFilter = threeMonthsAgo.toISOString()
- break
- case '6months':
- const sixMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate())
- dateFilter = sixMonthsAgo.toISOString()
- break
- case '1year':
- const oneYearAgo = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate())
- dateFilter = oneYearAgo.toISOString()
- break
- case 'all':
- dateFilter = '1970-01-01'
- break
+ switch (timeFilter) {
+ case '3months':
+ const threeMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate())
+ dateFilter = threeMonthsAgo.toISOString()
+ break
+ case '6months':
+ const sixMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate())
+ dateFilter = sixMonthsAgo.toISOString()
+ break
+ case '1year':
+ const oneYearAgo = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate())
+ dateFilter = oneYearAgo.toISOString()
+ break
+ case 'all':
+ dateFilter = '1970-01-01T00:00:00.000Z'
+ break
+ }
+
+ const sermons = db.prepare(`
+ SELECT * FROM sermons
+ WHERE date >= ?
+ ORDER BY date DESC
+ `).all(dateFilter) as any[]
+
+ return { data: sermons || [] }
+ } catch (error) {
+ console.error('Error loading sermons:', error)
+ return { data: [] }
}
-
- const sermons = db.prepare(`
- SELECT * FROM sermons
- WHERE date >= ?
- ORDER BY date DESC
- `).all(dateFilter) as any[]
-
- return sermons
})