mirror of
https://github.com/pupperpowell/bibdle.git
synced 2026-04-05 17:33:31 -04:00
77ffd6fbee8a700eab2b06c41feed1dfb9bc85df
Refactored the daily verse system to properly handle users across different timezones. Previously, the server used a fixed timezone (America/New_York), causing users in other timezones to see incorrect verses near midnight. Key changes: **Server-side refactoring:** - Extract `getVerseForDate()` into `src/lib/server/daily-verse.ts` for reuse - Page load now uses UTC date for initial SSR (fast initial render) - New `/api/daily-verse` POST endpoint accepts client-calculated date - Server no longer calculates dates; uses client-provided date directly **Client-side timezone handling:** - Client calculates local date using browser's timezone on mount - If server date doesn't match local date, fetches correct verse via API - Changed verse data from `$derived` to `$state` to fix reactivity issues - Mutating props was causing updates to fail; now uses local state - Added effect to reload page when user returns to stale tab on new day **Stats page improvements:** - Accept `tz` query parameter for accurate streak calculations - Use client's local date when determining "today" for current streaks - Prevents timezone-based streak miscalculations **Developer experience:** - Added debug panel showing client local time vs daily verse date - Added console logging for timezone fetch process - Comprehensive test suite for timezone handling and streak logic **UI improvements:** - Share text uses 📜 emoji for logged-in users, 📖 for anonymous - Stats link now includes timezone parameter for accurate display This ensures users worldwide see the correct daily verse for their local date, and streaks are calculated based on their timezone, not server time. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
sv
Everything you need to build a Svelte project, powered by sv.
Creating a project
If you're seeing this, you've probably already done this step. Congrats!
# create a new project in the current directory
bunx sv create
# create a new project in my-app
bunx sv create my-app
Developing
Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:
bun run dev
# or start the server and open the app in a new browser tab
bun run dev -- --open
Building
To create a production version of your app:
bun run build
You can preview the production build with bun run preview.
To deploy your app, you may need to install an adapter for your target environment.
Description
Languages
TypeScript
56.3%
Svelte
41.7%
Shell
1.4%
CSS
0.4%
JavaScript
0.1%
Other
0.1%