diff --git a/src/components/Page.tsx b/src/components/Page.tsx index 9b45333..0f3b9f9 100644 --- a/src/components/Page.tsx +++ b/src/components/Page.tsx @@ -1,8 +1,76 @@ -import { FlowComponent } from "solid-js"; +import { + createEffect, + createMemo, + createSignal, + FlowComponent, + onCleanup, + useContext, +} from "solid-js"; +import { UiStoreContext } from "~/stores"; +import { de } from "date-fns/locale"; +import { formatDistanceToNow, fromUnixTime, getUnixTime } from "date-fns"; const Page: FlowComponent = (props) => { + const [uiState] = useContext(UiStoreContext)!; + const [now, setNow] = createSignal(new Date()); + createEffect(function () { + const interval = setInterval(function () { + setNow(new Date()); + }, 10000); + onCleanup(() => clearInterval(interval)); + }); + const lastSavedWords = createMemo(function () { + now(); + + let words = "Nie"; + + if (uiState.lastSaved > 0) { + words = formatDistanceToNow(fromUnixTime(uiState.lastSaved), { + includeSeconds: true, + addSuffix: true, + locale: de, + }); + } + + return words; + }); + const savedDistance = createMemo(function () { + now(); + + if (uiState.lastSaved === 0) { + return -1; + } + + const nowUnix = getUnixTime(new Date()); + const distance = nowUnix - uiState.lastSaved; + + return distance; + }); + return ( -