From 57c3f796d41ed180dcdf5ff763193ed5c06f54cf Mon Sep 17 00:00:00 2001 From: satnaing Date: Sat, 26 Nov 2022 15:53:26 +0630 Subject: [PATCH] feat(a11y): improve voiceover a11y for datetime component Remove formatDatetime function. Created a JSX function component (FormattedDatetime) inside Datetime component. This component returns formatted date and time with better voiceover enhancements. --- src/components/Datetime.tsx | 30 +++++++++++++++++++++++++++--- src/utils/formatDatetime.ts | 14 -------------- 2 files changed, 27 insertions(+), 17 deletions(-) delete mode 100644 src/utils/formatDatetime.ts diff --git a/src/components/Datetime.tsx b/src/components/Datetime.tsx index c9399a0..edb1323 100644 --- a/src/components/Datetime.tsx +++ b/src/components/Datetime.tsx @@ -1,5 +1,3 @@ -import formatDatetime from "@utils/formatDatetime"; - export interface Props { datetime: string; size?: "sm" | "lg"; @@ -9,18 +7,44 @@ export interface Props { export default function Datetime({ datetime, size = "sm", className }: Props) { return (
+ Posted on: - {formatDatetime(datetime)} +
); } + +const FormattedDatetime = ({ datetime }: { datetime: string }) => { + const myDatetime = new Date(datetime); + + const date = myDatetime.toLocaleDateString([], { + year: "numeric", + month: "long", + day: "numeric", + }); + + const time = myDatetime.toLocaleTimeString([], { + hour: "2-digit", + minute: "2-digit", + }); + + return ( + <> + {date} + +  at  + {time} + + ); +}; diff --git a/src/utils/formatDatetime.ts b/src/utils/formatDatetime.ts deleted file mode 100644 index 60791ac..0000000 --- a/src/utils/formatDatetime.ts +++ /dev/null @@ -1,14 +0,0 @@ -const formatDatetime = (datetime: string) => { - const myDatetime = new Date(datetime); - return ( - myDatetime.toLocaleDateString([], { - year: "numeric", - month: "long", - day: "numeric", - }) + - " | " + - myDatetime.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) - ); -}; - -export default formatDatetime;