Files
HabitTrove/components/DynamicTime.tsx
Doh cb02b3831c Added jotai (#14)
* Added jotai

* cache settings by using jotai state

* use hydrateAtom with SSR

* remove useSettings

* fix test
2025-01-03 20:50:54 -05:00

31 lines
756 B
TypeScript

'use client'
import { useEffect, useState } from 'react'
import { DateTime } from 'luxon'
import { d2s, getNow } from '@/lib/utils'
import { useAtom } from 'jotai'
import { settingsAtom } from '@/lib/atoms'
interface DynamicTimeProps {
timezone: string
}
export function DynamicTime() {
const [settings] = useAtom(settingsAtom)
const [time, setTime] = useState<DateTime>(getNow({ timezone: settings.system.timezone }))
useEffect(() => {
const timer = setInterval(() => {
setTime((prevTime) => prevTime.plus({ seconds: 1 }))
}, 1000)
return () => clearInterval(timer)
}, [])
return (
<div className="text-sm text-muted-foreground">
{d2s({ dateTime: time, timezone: settings.system.timezone })}
</div>
)
}