From aa62fc183ea4a4de87a32222807def3742862957 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 23 May 2024 15:25:04 +0800 Subject: [PATCH] perf: timezone short name --- .../Conversations/Online/LocalTimeClock.jsx | 19 ++++++++++++++++--- .../Conversations/Online/MessagesHeader.jsx | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/views/Conversations/Online/LocalTimeClock.jsx b/src/views/Conversations/Online/LocalTimeClock.jsx index bf7b8a8..bb79907 100644 --- a/src/views/Conversations/Online/LocalTimeClock.jsx +++ b/src/views/Conversations/Online/LocalTimeClock.jsx @@ -3,7 +3,20 @@ import { Typography, Select } from 'antd'; import ct from 'countries-and-timezones'; const LocalTimeClock = ({ region, ...props }) => { - const countryTimezones = ct.getTimezonesForCountry(region || 'CN'); + const [countryTimezones, setCountryTimezones] = useState([]); + useEffect(() => { + const _countryTimezones = Object.values(ct.getTimezonesForCountry(region || 'CN')).map((tz) => { + const date = new Date(); + const options = { timeZone: tz.name, timeZoneName: 'short' }; + const shortName = date.toLocaleTimeString('en-US', options).split(' ')[2]; + return { ...tz, fullName: `${tz.name} (${shortName})`, shortName }; + }); + // console.log(_countryTimezones); + setCountryTimezones(_countryTimezones); + + return () => {}; + }, [region]); + const [timezone, setTimezone] = useState(countryTimezones?.[0]?.name || ''); // countryTimezones?.[0]?.name || '' @@ -14,6 +27,7 @@ const LocalTimeClock = ({ region, ...props }) => { // const date = new Date(); const options = { timeZone: timezone, + timeZoneName: 'short', hour12: false, month: 'numeric', day: 'numeric', @@ -38,7 +52,6 @@ const LocalTimeClock = ({ region, ...props }) => { dropdownStyle={{ width: 250 }} variant='borderless' onSelect={(value) => { - console.log('value', value); setTimezone(value); // setOrderPropValue(currentOrder, 'orderlabel', value) // .then(() => { @@ -55,7 +68,7 @@ const LocalTimeClock = ({ region, ...props }) => { }} value={timezone} options={countryTimezones} - fieldNames={{ label: 'name', value: 'name' }} + fieldNames={{ label: 'fullName', value: 'name' }} /> ) : ( <> diff --git a/src/views/Conversations/Online/MessagesHeader.jsx b/src/views/Conversations/Online/MessagesHeader.jsx index dec507c..b068ef3 100644 --- a/src/views/Conversations/Online/MessagesHeader.jsx +++ b/src/views/Conversations/Online/MessagesHeader.jsx @@ -43,7 +43,7 @@ const MessagesHeader = () => { <> {currentConversation.whatsapp_phone_number} {/* todo: regionCode */} - + ) : (