From aa3a35bc4af1e291f97edb4ac3e2f99078086cc0 Mon Sep 17 00:00:00 2001 From: nmemmert Date: Mon, 19 Jan 2026 09:10:39 -0500 Subject: [PATCH] feat: add app icon branding to all remaining page headers - CalendarView header now displays icon - ReflectionsList header now displays icon - AnsweredPrayers header now displays icon - ThingsToPrayFor header now displays icon Completes visual identity unification across all main screens --- .github/workflows/version-bump.yml | 48 +++++ README.md | 322 +++++------------------------ icon.jpeg | Bin 0 -> 103038 bytes package.json | 6 +- public/sw.js | 2 +- scripts/sync-version.js | 14 ++ src/app/page.tsx | 8 +- src/components/AboutPage.tsx | 24 ++- src/components/AnsweredPrayers.tsx | 5 +- src/components/BottomNav.tsx | 2 +- src/components/CalendarView.tsx | 3 +- src/components/DailyEntry.tsx | 39 +++- src/components/HomePage.tsx | 42 ++-- src/components/ReflectionsList.tsx | 19 +- src/components/ReminderBanner.tsx | 5 +- src/components/ThingsToPrayFor.tsx | 17 +- src/lib/version.ts | 8 + 17 files changed, 234 insertions(+), 330 deletions(-) create mode 100644 .github/workflows/version-bump.yml create mode 100644 icon.jpeg create mode 100644 scripts/sync-version.js create mode 100644 src/lib/version.ts diff --git a/.github/workflows/version-bump.yml b/.github/workflows/version-bump.yml new file mode 100644 index 0000000..b62be4b --- /dev/null +++ b/.github/workflows/version-bump.yml @@ -0,0 +1,48 @@ +name: Version Bump + +on: + push: + branches: + - '**' + +jobs: + bump: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Install deps + run: npm ci + - name: Determine bump type + id: bump + run: | + MSG=$(git log -1 --pretty=%B) + echo "Commit message: $MSG" + if echo "$MSG" | grep -qi "bump:major"; then + echo "type=major" >> $GITHUB_OUTPUT + elif echo "$MSG" | grep -qi "bump:minor"; then + echo "type=minor" >> $GITHUB_OUTPUT + else + echo "type=patch" >> $GITHUB_OUTPUT + fi + - name: Bump version + run: | + npm version ${{ steps.bump.outputs.type }} -m "chore: version bump to %s" + node scripts/sync-version.js + - name: Commit version files + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git add package.json package-lock.json src/lib/version.ts + git commit -m "chore: sync version metadata" || echo "No changes to commit" + - name: Push changes + run: | + git push --follow-tags diff --git a/README.md b/README.md index 3133a09..3eba617 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,48 @@ -# Prayer App +# Haver — Prayer App -A Progressive Web App (PWA) for journaling prayers and praises, organized by date, with journaling functionality and email reminders. +A minimalist PWA for journaling prayers and tracking answered prayers. Built with Next.js, Firebase, and Tailwind. + +Current Version: 0.2.0 + +## What's New (0.2.0) +- Redesign: unified dark theme and gradients +- Icons: lucide-react across headings and nav +- Cleanup: removed legacy email routes and pages +- UX: Pray For suggestions in compose tab ## Features +- Firebase auth (login) +- Compose daily prayer with date and optional "Pray For" +- Suggested "Pray For" names via dropdown (type to add new) +- Mark prayers as answered with details +- Calendar view of entries +- Reflections list with search and filters +- Answered prayers gallery +- Reminder banner + notification time settings +- PWA installable; dark theme by default -- User authentication with Firebase (login and signup) -- Add prayers and praises with date organization -- Journal entries for each prayer -- "Pray For" field to specify a person for each prayer -- Email field auto-populated with user's email for reminders -- Archive prayers instead of deleting them -- View archived prayers with dedicated tab -- Search prayers by content, type, or journal (dedicated Search tab) -- Pagination for large numbers of entries -- Share prayers on social media, email, and text -- Prominent share buttons with visual feedback -- Admin panel for SMTP configuration and user management -- Email notifications (requires configuration) -- Reminder frequency options (daily, weekly, monthly, or never) -- Option to include active prayers summary in reminder emails -- Beautiful HTML-formatted emails with prayer cards and visual styling -- PWA for offline access and installation -- Dark mode theme -- Bottom navigation tabs for easy switching (Add Entry, Active, Archived, Search) -- Engaging loading screen with animations and inspirational content (minimum 5-second display) -- Enhanced bottom navigation with gradients, shadows, and improved touch targets - -## API Endpoints - -- `GET/POST /api/send-email` - Send a single email reminder -- `GET/POST /api/send-scheduled-emails` - Send scheduled email reminders to all users +## Versioning Policy +- Uses semantic versioning: major.minor +- Minor: UI/UX tweaks, non-breaking features +- Major: structural changes or breaking updates ## Setup +1. Create a Firebase project (Authentication + Firestore) +2. Add your Firebase config to [src/lib/firebase.ts](src/lib/firebase.ts) +3. Start the dev server -1. Create a Firebase project at https://console.firebase.google.com/ -2. Enable Authentication with Email/Password provider -3. Enable Firestore Database -4. Get your Firebase config and replace the placeholder in `src/lib/firebase.ts` +## Notes +- Email sending routes have been removed in the redesign. +- Email verification remains available via Firebase. -Users can now register accounts directly in the app! +## Firestore Rules +Deploy [firestore.rules](firestore.rules) to secure user data. -## Admin Setup - -Admin access is restricted to specific email addresses. Admins can manage the admin email list directly in the app through the Admin panel. - -**To add/remove admin emails:** -1. Log in as an existing admin -2. Click the "Admin" button -3. Scroll to "Admin Email Management" section -4. Add new admin emails or remove existing ones -5. Changes are saved automatically to Firestore - -Admin users can access the admin panel by clicking the "Admin" button in the header. From there, they can configure: - -- SMTP settings for email sending -- Admin email management -- Other server configurations - -The admin panel saves settings to Firestore for persistent configuration. - -## Firestore Security Rules - -To enable SMTP configuration saving and other admin features, you need to deploy Firestore security rules: - -1. Install Firebase CLI if you haven't already: - ```bash - npm install -g firebase-tools - ``` - -2. Login to Firebase: - ```bash - firebase login - ``` - -3. Initialize or connect to your Firebase project: - ```bash - firebase use --add - ``` - Select your prayer-app project. - -4. Deploy the security rules using the provided script: - ```bash - # On Linux/Mac - ./deploy-firestore-rules.sh - - # On Windows - deploy-firestore-rules.bat - ``` - - Or deploy manually: - ```bash - firebase deploy --only firestore:rules - ``` - -The `firestore.rules` file in this repository allows authenticated users to read/write configuration data needed for the admin panel. - -## SMTP Configuration - -After deploying Firestore rules, you can configure SMTP settings through the admin panel: - -1. Log in as an admin user -2. Click the "Admin" button -3. Fill in your SMTP provider details (Gmail, Outlook, etc.) -4. Save the configuration - -**Gmail Setup:** -- Host: `smtp.gmail.com` -- Port: `587` (or `465` for SSL) -- Username: Your Gmail address -- Password: App password (not your regular password) -- From: Your Gmail address -- Use SSL/TLS: Checked for port 465, unchecked for port 587 - -**Note:** For Gmail, you'll need to generate an "App Password" in your Google Account settings. +## Development +- `npm run dev` — start dev server +- `npm run build` — production build +- `npm run lint` — lint code +- `npm test` — run tests ## Troubleshooting @@ -133,76 +63,21 @@ After deploying Firestore rules, you can configure SMTP settings through the adm - Run `npm run lint` for code linting - Run `npm test` for running tests -## User Guides - -### Adding Prayers - -1. Click the "Add" tab -2. Fill in the date, type (prayer/praise), text, and optional journal -3. Set reminder frequency -4. Click "Add Prayer" - -### Managing Prayers - -- **Active**: View current prayers -- **Archived**: View archived prayers -- **Search**: Search by content -- **Community**: View shared prayers - -### Profile Customization - -- Click "Profile" to update avatar, theme, and categories - -### Admin Features - -- Configure SMTP for emails -- Manage admin users -- View analytics +## Usage +- Compose: write your prayer, pick a date, and optionally select or type a "Pray For" name. +- Praying: mark prayers as prayed today. +- Calendar: click a day to view/edit its entry. +- Reflections: search and filter past prayers. +- Answered: review answered prayers with details. +- About: set reminder time, test notifications, and read "What's New". ## Getting Started -## Email Configuration - -### Option 1: EmailJS (Free, Recommended) - -EmailJS provides free email sending without server-side SMTP configuration: - -1. **Sign up at [emailjs.com](https://www.emailjs.com/)** -2. **Create an Email Service** (Gmail, Outlook, etc.) -3. **Create an Email Template** with these variables: - ``` - Subject: New {{prayer_type}} added - {{reminder_frequency}} reminders enabled - - Hi {{to_name}}, - - A new prayer has been added to your Prayer App: - - Date: {{prayer_date}} - Type: {{prayer_type}} - Text: {{prayer_text}} - Journal: {{prayer_journal}} - Praying for: {{praying_for}} - - Reminder Frequency: {{reminder_frequency}} - - Best regards, - Prayer App - ``` -4. **Get your credentials**: - - Service ID - - Template ID - - Public Key - -5. **Add to `.env.local`**: - ``` - NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id - NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id - NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key - ``` - -### Option 2: SMTP (Advanced) - -For custom SMTP servers, configure settings in the admin panel after deploying Firestore rules. +## Build & Deploy +```bash +npm run build +``` +Deploy to Vercel or your preferred platform. ## Getting Started @@ -244,103 +119,10 @@ npm run build Deploy to Vercel or any platform supporting Next.js PWAs. -## Docker Deployment - -The app includes Docker support for containerized deployment with automated email scheduling. - -### Build and Push Docker Image - -1. **Using the automated script (Windows):** - ```powershell - .\build-and-push-docker.ps1 - ``` - This script will: - - Build the Docker image - - Prompt for your GitHub Personal Access Token - - Login to GitHub Container Registry - - Push the image - -2. **Manual build and push:** - ```bash - # Build the image - docker build -t ghcr.io/nmemmert/prayer-app:latest . - - # Login to GitHub Container Registry - echo $GITHUB_TOKEN | docker login ghcr.io -u nmemmert --password-stdin - - # Push the image - docker push ghcr.io/nmemmert/prayer-app:latest - ``` - -### Run with Docker Compose - -```bash -docker-compose up -d -``` - -The container includes: -- Automated email scheduling (runs every 5 minutes) -- Health checks -- Production-optimized Next.js build -- Cron jobs for scheduled tasks - -### Environment Variables - -Set these environment variables for the container: - -```bash -# Firebase Admin SDK (required for server-side operations) -FIREBASE_PROJECT_ID=your_project_id -FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n..." -FIREBASE_CLIENT_EMAIL=your_service_account_email - -# EmailJS (for client-side emails) -NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id -NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id -NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key -``` +## Docker (optional) +Basic containerization is available. Remove or adapt scripts as needed. ## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. - -## Docker Support - -This application is fully containerized and ready for deployment. - -### Building Locally - -```bash -# Build the Docker image -docker build -t prayer-app . - -# Run the container -docker run -p 3000:3000 prayer-app +- [Next.js Documentation](https://nextjs.org/docs) +- [Tailwind CSS](https://tailwindcss.com/docs) ``` - -### Using Docker Compose - -```bash -# Start the application -docker-compose up -d - -# Stop the application -docker-compose down -``` - -### GitHub Container Registry - -The application includes GitHub Actions CI/CD that automatically builds and pushes Docker images to GitHub Container Registry on every push to the main branch. - -Images are available at: `ghcr.io/[your-username]/prayer-app:latest` diff --git a/icon.jpeg b/icon.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..593141198df0c5dca61e16ef0b17cc90ec7b45ea GIT binary patch literal 103038 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 URL(a+".js",n).href,s[a]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()}).then(()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e}));self.define=(n,i)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let c={};const r=e=>a(e,t),o={module:{uri:t},exports:c,require:r};s[t]=Promise.all(n.map(e=>o[e]||r(e))).then(e=>(i(...e),c))}}define(["./workbox-4754cb34"],function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/Q7AkDBdJDGBRANlWHHBOE/_buildManifest.js",revision:"44608b7d53e1eefcd54452c125d6300e"},{url:"/_next/static/Q7AkDBdJDGBRANlWHHBOE/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/172-71074a5b97c03327.js",revision:"71074a5b97c03327"},{url:"/_next/static/chunks/462-1ebca3834d195b35.js",revision:"1ebca3834d195b35"},{url:"/_next/static/chunks/497-22b66697988d7f92.js",revision:"22b66697988d7f92"},{url:"/_next/static/chunks/4bd1b696-b7529f9b306ab05d.js",revision:"b7529f9b306ab05d"},{url:"/_next/static/chunks/512-8d2b9de6fda25175.js",revision:"8d2b9de6fda25175"},{url:"/_next/static/chunks/7508b87c-97d7ae290120d64a.js",revision:"97d7ae290120d64a"},{url:"/_next/static/chunks/995.a093d11da39e25d3.js",revision:"a093d11da39e25d3"},{url:"/_next/static/chunks/app/_global-error/page-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/app/_not-found/page-f75e7ecfbcc8dd77.js",revision:"f75e7ecfbcc8dd77"},{url:"/_next/static/chunks/app/admin/page-be774d9a59b52f3a.js",revision:"be774d9a59b52f3a"},{url:"/_next/static/chunks/app/api/debug-smtp/route-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/app/api/send-email/route-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/app/api/send-scheduled-emails/route-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/app/layout-7f3802a6a2a60f7d.js",revision:"7f3802a6a2a60f7d"},{url:"/_next/static/chunks/app/page-4907ce715213b04e.js",revision:"4907ce715213b04e"},{url:"/_next/static/chunks/app/profile/page-a3a0e0cd20fcb9d6.js",revision:"a3a0e0cd20fcb9d6"},{url:"/_next/static/chunks/app/testimonies/page-ed6616cfcac7de9d.js",revision:"ed6616cfcac7de9d"},{url:"/_next/static/chunks/dd8162e8-580391f39948d3f7.js",revision:"580391f39948d3f7"},{url:"/_next/static/chunks/framework-292291387d6b2e39.js",revision:"292291387d6b2e39"},{url:"/_next/static/chunks/main-5e55aa9a8969fd08.js",revision:"5e55aa9a8969fd08"},{url:"/_next/static/chunks/main-app-1640b70ccc992192.js",revision:"1640b70ccc992192"},{url:"/_next/static/chunks/next/dist/client/components/builtin/app-error-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/next/dist/client/components/builtin/forbidden-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/next/dist/client/components/builtin/global-error-647436fbb68222b8.js",revision:"647436fbb68222b8"},{url:"/_next/static/chunks/next/dist/client/components/builtin/not-found-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/next/dist/client/components/builtin/unauthorized-2af6c391bfa86449.js",revision:"2af6c391bfa86449"},{url:"/_next/static/chunks/polyfills-42372ed130431b0a.js",revision:"846118c33b2c0e922d7b3a7676f81f6f"},{url:"/_next/static/chunks/webpack-6b6a51bcb4cc4744.js",revision:"6b6a51bcb4cc4744"},{url:"/_next/static/css/bff524108e499dd4.css",revision:"bff524108e499dd4"},{url:"/_next/static/media/4cf2300e9c8272f7-s.p.woff2",revision:"18bae71b1e1b2bb25321090a3b563103"},{url:"/_next/static/media/747892c23ea88013-s.woff2",revision:"a0761690ccf4441ace5cec893b82d4ab"},{url:"/_next/static/media/8d697b304b401681-s.woff2",revision:"cc728f6c0adb04da0dfcb0fc436a8ae5"},{url:"/_next/static/media/93f479601ee12b01-s.p.woff2",revision:"da83d5f06d825c5ae65b7cca706cb312"},{url:"/_next/static/media/9610d9e46709d722-s.woff2",revision:"7b7c0ef93df188a852344fc272fc096b"},{url:"/_next/static/media/ba015fad6dcf6784-s.woff2",revision:"8ea4f719af3312a055caf09f34c89a77"},{url:"/file.svg",revision:"d09f95206c3fa0bb9bd9fefabfd0ea71"},{url:"/firebase-messaging-sw.js",revision:"396ffcf00a63da03dfc03d78d4815494"},{url:"/globe.svg",revision:"2aaafa6a49b6563925fe440891e32717"},{url:"/icon-192x192.png",revision:"bbbd7efc0e31088ae0a3aeede7608534"},{url:"/icon-512x512.png",revision:"400538d76556a3a8ee4fd3dfda7bc092"},{url:"/locales/en/common.json",revision:"41332abbb11f0b33b3eb308a5448f8d6"},{url:"/manifest.json",revision:"6dbf565091414e98afd54d79577bb36d"},{url:"/next.svg",revision:"8e061864f388b47f33a1c3780831193e"},{url:"/vercel.svg",revision:"c0af2f507b369b085b35ef4bbe3bcf1e"},{url:"/window.svg",revision:"a2760511c65806022ad20adf74370ff3"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:a,state:n})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")},new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")},new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>!(self.origin===e.origin),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")}); +if(!self.define){let e,s={};const a=(a,n)=>(a=new URL(a+".js",n).href,s[a]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()}).then(()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e}));self.define=(n,i)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let c={};const o=e=>a(e,t),r={module:{uri:t},exports:c,require:o};s[t]=Promise.all(n.map(e=>r[e]||o(e))).then(e=>(i(...e),c))}}define(["./workbox-4754cb34"],function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/RTXxDDjYPkCiNJ6w2qWiq/_buildManifest.js",revision:"f4d58a725936c94635b35b3f85e2a011"},{url:"/_next/static/RTXxDDjYPkCiNJ6w2qWiq/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/4bd1b696-b7529f9b306ab05d.js",revision:"b7529f9b306ab05d"},{url:"/_next/static/chunks/512-8d2b9de6fda25175.js",revision:"8d2b9de6fda25175"},{url:"/_next/static/chunks/7508b87c-dfcb7bb31c18c36f.js",revision:"dfcb7bb31c18c36f"},{url:"/_next/static/chunks/884-27d75bba95dbe213.js",revision:"27d75bba95dbe213"},{url:"/_next/static/chunks/995.a093d11da39e25d3.js",revision:"a093d11da39e25d3"},{url:"/_next/static/chunks/app/_global-error/page-48c825fda4ae9c10.js",revision:"48c825fda4ae9c10"},{url:"/_next/static/chunks/app/_not-found/page-f75e7ecfbcc8dd77.js",revision:"f75e7ecfbcc8dd77"},{url:"/_next/static/chunks/app/layout-5ea58a1aa81454ad.js",revision:"5ea58a1aa81454ad"},{url:"/_next/static/chunks/app/page-2a6751ff1202edf3.js",revision:"2a6751ff1202edf3"},{url:"/_next/static/chunks/dd8162e8-580391f39948d3f7.js",revision:"580391f39948d3f7"},{url:"/_next/static/chunks/framework-292291387d6b2e39.js",revision:"292291387d6b2e39"},{url:"/_next/static/chunks/main-5e55aa9a8969fd08.js",revision:"5e55aa9a8969fd08"},{url:"/_next/static/chunks/main-app-1640b70ccc992192.js",revision:"1640b70ccc992192"},{url:"/_next/static/chunks/next/dist/client/components/builtin/app-error-48c825fda4ae9c10.js",revision:"48c825fda4ae9c10"},{url:"/_next/static/chunks/next/dist/client/components/builtin/forbidden-48c825fda4ae9c10.js",revision:"48c825fda4ae9c10"},{url:"/_next/static/chunks/next/dist/client/components/builtin/global-error-647436fbb68222b8.js",revision:"647436fbb68222b8"},{url:"/_next/static/chunks/next/dist/client/components/builtin/not-found-48c825fda4ae9c10.js",revision:"48c825fda4ae9c10"},{url:"/_next/static/chunks/next/dist/client/components/builtin/unauthorized-48c825fda4ae9c10.js",revision:"48c825fda4ae9c10"},{url:"/_next/static/chunks/polyfills-42372ed130431b0a.js",revision:"846118c33b2c0e922d7b3a7676f81f6f"},{url:"/_next/static/chunks/webpack-6240b410a738ea5b.js",revision:"6240b410a738ea5b"},{url:"/_next/static/css/c0d6f2e4d70567da.css",revision:"c0d6f2e4d70567da"},{url:"/_next/static/media/4cf2300e9c8272f7-s.p.woff2",revision:"18bae71b1e1b2bb25321090a3b563103"},{url:"/_next/static/media/747892c23ea88013-s.woff2",revision:"a0761690ccf4441ace5cec893b82d4ab"},{url:"/_next/static/media/8d697b304b401681-s.woff2",revision:"cc728f6c0adb04da0dfcb0fc436a8ae5"},{url:"/_next/static/media/93f479601ee12b01-s.p.woff2",revision:"da83d5f06d825c5ae65b7cca706cb312"},{url:"/_next/static/media/9610d9e46709d722-s.woff2",revision:"7b7c0ef93df188a852344fc272fc096b"},{url:"/_next/static/media/ba015fad6dcf6784-s.woff2",revision:"8ea4f719af3312a055caf09f34c89a77"},{url:"/file.svg",revision:"d09f95206c3fa0bb9bd9fefabfd0ea71"},{url:"/firebase-messaging-sw.js",revision:"396ffcf00a63da03dfc03d78d4815494"},{url:"/globe.svg",revision:"2aaafa6a49b6563925fe440891e32717"},{url:"/icon-192x192.png",revision:"bbbd7efc0e31088ae0a3aeede7608534"},{url:"/icon-512x512.png",revision:"400538d76556a3a8ee4fd3dfda7bc092"},{url:"/locales/en/common.json",revision:"41332abbb11f0b33b3eb308a5448f8d6"},{url:"/manifest.json",revision:"6dbf565091414e98afd54d79577bb36d"},{url:"/next.svg",revision:"8e061864f388b47f33a1c3780831193e"},{url:"/vercel.svg",revision:"c0af2f507b369b085b35ef4bbe3bcf1e"},{url:"/window.svg",revision:"a2760511c65806022ad20adf74370ff3"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:a,state:n})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")},new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")},new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>!(self.origin===e.origin),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")}); diff --git a/scripts/sync-version.js b/scripts/sync-version.js new file mode 100644 index 0000000..390f1e0 --- /dev/null +++ b/scripts/sync-version.js @@ -0,0 +1,14 @@ +#!/usr/bin/env node +const fs = require('fs'); +const path = require('path'); + +const pkgPath = path.join(__dirname, '..', 'package.json'); +const versionPath = path.join(__dirname, '..', 'src', 'lib', 'version.ts'); + +const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); +const version = pkg.version; + +const content = `export const APP_VERSION = '${version}';\n\nexport const WHATS_NEW_BRIEF: string[] = [\n 'Redesign: unified dark theme and gradients',\n 'Icons: lucide-react across headings and nav',\n 'Cleanup: removed legacy email routes and pages',\n 'UX: Pray For suggestions in compose tab'\n];\n`; + +fs.writeFileSync(versionPath, content, 'utf8'); +console.log('Synced version to src/lib/version.ts:', version); diff --git a/src/app/page.tsx b/src/app/page.tsx index 56f97c6..5710baf 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -123,14 +123,14 @@ export default function Home() { setPrayers(prev => prev.map(p => (p.id === editingPrayer.id ? { ...p, ...prayerData } : p)) ); - toast.success('Prayer updated! 🙏'); + toast.success('Prayer updated!'); setEditingPrayer(null); } else { // Add new prayer const docRef = await addDoc(collection(db, 'prayers'), prayerData); const newPrayer: Prayer = { id: docRef.id, ...prayerData }; setPrayers(prev => [...prev, newPrayer]); - toast.success('Prayer saved! 🙏'); + toast.success('Prayer saved!'); } // Reset form @@ -176,7 +176,7 @@ export default function Home() { setPrayers(prev => prev.map(p => (p.id === prayerId ? { ...p, lastPrayedFor: today } : p)) ); - toast.success('Prayed! 🙏'); + toast.success('Prayed!'); } catch (error) { console.error('Error marking prayed:', error); toast.error('Failed to update'); @@ -200,6 +200,7 @@ export default function Home() { + Haver icon

Haver

Preparing your sacred space...

@@ -247,6 +248,7 @@ export default function Home() { onTextChange={setText} prayFor={prayFor} onPrayForChange={setPrayFor} + prayForOptions={Array.from(new Set(prayers.map(p => p.prayFor).filter(Boolean))) as string[]} answered={answered} onAnsweredChange={setAnswered} answerDetails={answerDetails} diff --git a/src/components/AboutPage.tsx b/src/components/AboutPage.tsx index 520cbf8..a98c576 100644 --- a/src/components/AboutPage.tsx +++ b/src/components/AboutPage.tsx @@ -2,7 +2,8 @@ import React, { useState } from 'react'; import { useAuth } from '@/context/AuthContext'; -import { Info } from 'lucide-react'; +import { Info, Smartphone, BellRing } from 'lucide-react'; +import { APP_VERSION, WHATS_NEW_BRIEF } from '@/lib/version'; interface AboutPageProps { userEmail?: string; @@ -102,7 +103,7 @@ export default function AboutPage({ userEmail }: AboutPageProps) { const testNotificationNow = async () => { if (supportsWebPush && Notification.permission === 'granted') { - new Notification('🙏 Test Prayer Reminder', { + new Notification('Test Prayer Reminder', { body: 'This is a test notification. Your reminders are working!', icon: '/icon-192x192.png', badge: '/icon-192x192.png', @@ -139,7 +140,7 @@ export default function AboutPage({ userEmail }: AboutPageProps) { if (timeUntilNotification > 0) { setTimeout(() => { if ('Notification' in window && Notification.permission === 'granted' && notificationsEnabled) { - new Notification('🙏 Time to Pray', { + new Notification('Time to Pray', { body: 'Take a moment to connect with God and pray.', icon: '/icon-192x192.png', badge: '/icon-192x192.png', @@ -168,6 +169,7 @@ export default function AboutPage({ userEmail }: AboutPageProps) {
{/* Header */}
+ Haver icon

@@ -264,7 +266,7 @@ export default function AboutPage({ userEmail }: AboutPageProps) { {/* Platform Support Info */} {platform === 'ios' && (
-

📱 iOS: In-App Reminders

+

iOS: In-App Reminders

iOS Safari doesn't support push notifications. Enable reminders to get a message when you open the app.

)} @@ -319,7 +321,7 @@ export default function AboutPage({ userEmail }: AboutPageProps) { onClick={testNotificationNow} className="w-full px-3 py-2 bg-slate-700 hover:bg-slate-600 text-slate-200 text-sm font-medium rounded-lg transition-colors border border-slate-600" > - 📬 Test Notification + Test Notification )}

@@ -331,11 +333,21 @@ export default function AboutPage({ userEmail }: AboutPageProps) {

App Info

-

Haver v1.0

+

Haver v{APP_VERSION}

A simple, private space for your daily prayers and reflections.

+ {/* What's New Section */} +
+

What's New

+
    + {WHATS_NEW_BRIEF.map((item) => ( +
  • {item}
  • + ))} +
+
+ {/* Logout and Delete Section */}