diff --git a/src/equicordplugins/timezones/TimezoneModal.tsx b/src/equicordplugins/timezones/TimezoneModal.tsx index 8966c94f..bd90d378 100644 --- a/src/equicordplugins/timezones/TimezoneModal.tsx +++ b/src/equicordplugins/timezones/TimezoneModal.tsx @@ -29,9 +29,12 @@ export function SetTimezoneModal({ userId, modalProps, database }: { userId: str settings.store.useDatabase && (settings.store.preferDatabaseOverLocal || !localTimezone); - setCurrentValue(shouldUseDatabase ? getTimezone(userId) ?? localTimezone : localTimezone); - }, [userId, settings.store.useDatabase, settings.store.preferDatabaseOverLocal]); + const value = shouldUseDatabase + ? getTimezone(userId) ?? localTimezone + : localTimezone; + setCurrentValue(value ?? Intl.DateTimeFormat().resolvedOptions().timeZone); + }, [userId, settings.store.useDatabase, settings.store.preferDatabaseOverLocal]); const options = useMemo(() => { return Intl.supportedValuesOf("timeZone").map(timezone => { diff --git a/src/equicordplugins/timezones/database.tsx b/src/equicordplugins/timezones/database.tsx index 7bbd6ff8..f382c917 100644 --- a/src/equicordplugins/timezones/database.tsx +++ b/src/equicordplugins/timezones/database.tsx @@ -82,6 +82,8 @@ export function authModal(callback?: () => void) { permissions={0n} cancelCompletesFlow={false} callback={async (res: any) => { + if (!res || !res.location) return; + try { const url = new URL(res.location); @@ -99,6 +101,7 @@ export function authModal(callback?: () => void) { showToast("Authorization successful!", Toasts.Type.SUCCESS); callback?.(); } catch (e) { + console.error("Error during authorization:", e); showToast("Unexpected error during authorization", Toasts.Type.FAILURE); } }} diff --git a/src/equicordplugins/timezones/index.tsx b/src/equicordplugins/timezones/index.tsx index 9d7070dd..5886eb67 100644 --- a/src/equicordplugins/timezones/index.tsx +++ b/src/equicordplugins/timezones/index.tsx @@ -93,6 +93,13 @@ export const settings = definePluginSettings({ Reset Database Timezones ) + }, + + askedTimezone: { + type: OptionType.BOOLEAN, + description: "Whether the user has been asked to set their timezone", + hidden: true, + default: false } }); @@ -181,10 +188,9 @@ const TimestampComponent = ErrorBoundary.wrap(({ userId, timestamp, type }: Prop const userContextMenuPatch: NavContextMenuPatchCallback = (children, { user }: { user: User; }) => { if (user?.id == null) return; - const label = settings.store.useDatabase ? "Set Local Timezone" : "Set Timezone"; const setTimezoneItem = (