From b56598c20b39f87c1f22e4660c0ae79ce3c55825 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 13 Jul 2023 15:16:35 +0800 Subject: [PATCH] fix: wrong timezone used when saving item with adding link on web --- .../web/components/templates/homeFeed/AddLinkModal.tsx | 9 ++++++--- packages/web/lib/networking/mutations/saveUrlMutation.ts | 4 +++- packages/web/pages/api/save.ts | 9 +++++++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/web/components/templates/homeFeed/AddLinkModal.tsx b/packages/web/components/templates/homeFeed/AddLinkModal.tsx index 282033cd6..084e2ac43 100644 --- a/packages/web/components/templates/homeFeed/AddLinkModal.tsx +++ b/packages/web/components/templates/homeFeed/AddLinkModal.tsx @@ -20,9 +20,12 @@ type AddLinkModalProps = { export function AddLinkModal(props: AddLinkModalProps): JSX.Element { const [link, setLink] = useState('') + // get timezone from browser + const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone + const handleLinkSubmission = useCallback( - async (link: string) => { - const result = await saveUrlMutation(link) + async (link: string, timezone: string) => { + const result = await saveUrlMutation(link, timezone) if (result) { toast( () => ( @@ -95,7 +98,7 @@ export function AddLinkModal(props: AddLinkModalProps): JSX.Element { setLink(newLink) submitLink = newLink } - handleLinkSubmission(submitLink) + handleLinkSubmission(submitLink, timezone) props.onOpenChange(false) }} > diff --git a/packages/web/lib/networking/mutations/saveUrlMutation.ts b/packages/web/lib/networking/mutations/saveUrlMutation.ts index 524ac2add..299d65c80 100644 --- a/packages/web/lib/networking/mutations/saveUrlMutation.ts +++ b/packages/web/lib/networking/mutations/saveUrlMutation.ts @@ -20,7 +20,8 @@ export type SaveUrlData = { } export async function saveUrlMutation( - url: string + url: string, + timezone?: string ): Promise { const clientRequestId = uuidv4() const mutation = gql` @@ -44,6 +45,7 @@ export async function saveUrlMutation( url, clientRequestId, source: 'add-link', + timezone, }, }) const output = data as SaveResponseData | undefined diff --git a/packages/web/pages/api/save.ts b/packages/web/pages/api/save.ts index 87e8bfbe7..789a66b12 100644 --- a/packages/web/pages/api/save.ts +++ b/packages/web/pages/api/save.ts @@ -7,7 +7,8 @@ const saveUrl = async ( req: NextApiRequest, url: URL, labels: string[] | undefined, - state: string | undefined + state: string | undefined, + timezone?: string ) => { const clientRequestId = uuidv4() const mutation = ` @@ -33,6 +34,7 @@ const saveUrl = async ( source: 'api-save-url', labels: labels?.map((label) => ({ name: label })), state, + timezone, }, }) @@ -60,7 +62,10 @@ export default async ( const labels = req.query['labels'] as string[] | undefined const state = req.query['state'] as string | undefined const url = new URL(urlStr as string) - const saveResult = await saveUrl(req, url, labels, state) + // get timezone from browser + const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone + + const saveResult = await saveUrl(req, url, labels, state, timezone) console.log('saveResult: ', saveResult) if (saveResult) { res.redirect(`/article?url=${encodeURIComponent(url.toString())}`)