diff --git a/src/pages/index.astro b/src/pages/index.astro index 4f4fa95..28805d8 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -8,34 +8,55 @@ const storyService = new StoryService(); // Tunggu hingga cerita diambil await storyService.fetchStories(); -const randomSlug = storyService.getRandomSlug(); -const randomStory = randomSlug ? storyService.getStoryBySlug(randomSlug) : undefined; +const now = new Date(); +const today = now.toISOString().split('T')[0]; + +let dailyStory; +const storedDate = Astro.cookies.get('dailyStoryDate')?.value; +let storedSlug = Astro.cookies.get('dailyStorySlug')?.value; + +// Cek apakah ini hari baru atau tidak ada slug yang tersimpan +if (storedDate !== today || !storedSlug) { + // Jika setelah jam 9 pagi, ambil cerita acak baru + if (now.getHours() >= 9) { + storedSlug = storyService.getRandomSlug(); + Astro.cookies.set('dailyStoryDate', today, { path: '/' }); + Astro.cookies.set('dailyStorySlug', storedSlug || '', { path: '/' }); + } else if (!storedSlug) { + // Jika sebelum jam 9 pagi dan tidak ada slug tersimpan, ambil yang acak + storedSlug = storyService.getRandomSlug(); + Astro.cookies.set('dailyStorySlug', storedSlug || '', { path: '/' }); + } + // Jika sebelum jam 9 pagi dan ada slug tersimpan, gunakan yang tersimpan +} + +dailyStory = storedSlug ? storyService.getStoryBySlug(storedSlug) : undefined; ---
- {randomStory ? ( + {dailyStory ? (

- {randomStory.title} + {dailyStory.title}

- Hari ini, {new Date().toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric' })} + Hari ini, {now.toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric' })}

- {randomStory.scenes[0]?.content} + {dailyStory.scenes[0]?.content}

{/* */}
- {randomStory.scenes.slice(1).map((scene, index) => ( + {dailyStory.scenes.slice(1).map((scene, index) => (
{scene.type === 'dialogue' && ( <> @@ -55,7 +76,7 @@ const randomStory = randomSlug ? storyService.getStoryBySlug(randomSlug) : undef {/* */}
) : ( -

No random story available

+

No daily story available

)}