From eb21825f77bcb20e8eab3d7bb8784936f3efc370 Mon Sep 17 00:00:00 2001 From: Ryderjj89 Date: Mon, 29 Sep 2025 19:36:05 -0400 Subject: [PATCH] Fix issues: reduce logo size, improve CSS styling, fix API error handling --- assets/css/main.css | 74 +++++++++++++++++++++++++++++++++ pages/[slug].vue | 2 +- pages/admin.vue | 2 +- pages/index.vue | 2 +- server/api/sermons/index.get.ts | 66 ++++++++++++++++------------- 5 files changed, 113 insertions(+), 33 deletions(-) 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 @@
- New Life Christian Church + New Life Christian Church
- New Life Christian Church + New Life Christian Church
- New Life Christian Church + New Life Christian Church
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 })