38 lines
1.0 KiB
React
Raw Normal View History

2022-09-16 10:53:12 +03:00
import { useState, useEffect } from "react";
2022-09-25 19:43:00 +03:00
import { useTranslation } from "next-i18next";
2022-09-16 10:53:12 +03:00
const textSizes = {
"4xl": "text-4xl",
"3xl": "text-3xl",
"2xl": "text-2xl",
xl: "text-xl",
lg: "text-lg",
md: "text-md",
sm: "text-sm",
xs: "text-xs",
};
export default function DateTime({ options }) {
const { text_size: textSize, format } = options;
const { i18n } = useTranslation();
2022-11-28 10:42:21 -08:00
const dateFormat = new Intl.DateTimeFormat(i18n.language, { ...format });
const [date, setDate] = useState("");
2022-09-16 10:53:12 +03:00
useEffect(() => {
const interval = setInterval(() => {
2022-11-28 10:42:21 -08:00
setDate(dateFormat.format(new Date()));
2022-09-16 10:53:12 +03:00
}, 1000);
return () => clearInterval(interval);
2022-11-29 09:25:39 -08:00
}, [date, setDate, dateFormat]);
2022-09-16 10:53:12 +03:00
return (
<div className="flex flex-col justify-center first:ml-0 ml-4">
<div className="flex flex-row items-center grow justify-end">
<span className={`text-theme-800 dark:text-theme-200 ${textSizes[textSize || "lg"]}`}>
2022-11-28 10:42:21 -08:00
{date}
</span>
</div>
2022-09-16 10:53:12 +03:00
</div>
);
}