mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-07 13:43:03 -04:00
Timezones: If DB Fails Use Local Timezone
This commit is contained in:
parent
f99327caa1
commit
c9ec915dcc
3 changed files with 19 additions and 16 deletions
|
@ -29,10 +29,10 @@ export function SetTimezoneModal({ userId, modalProps, database }: { userId: str
|
|||
const localTimezone = timezones[userId];
|
||||
const shouldUseDatabase =
|
||||
settings.store.useDatabase &&
|
||||
(settings.store.preferDatabaseOverLocal || localTimezone == null);
|
||||
(settings.store.preferDatabaseOverLocal || !localTimezone);
|
||||
|
||||
if (shouldUseDatabase) {
|
||||
getTimezone(userId).then(setCurrentValue);
|
||||
getTimezone(userId).then(e => setCurrentValue(e ?? localTimezone));
|
||||
} else {
|
||||
setCurrentValue(localTimezone);
|
||||
}
|
||||
|
|
|
@ -4,24 +4,17 @@
|
|||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
type CacheEntry = {
|
||||
value: string | null;
|
||||
expires: number;
|
||||
};
|
||||
|
||||
import { DataStore } from "@api/index";
|
||||
import { openModal } from "@utils/modal";
|
||||
import { OAuth2AuthorizeModal, showToast, Toasts } from "@webpack/common";
|
||||
|
||||
import { databaseTimezones } from ".";
|
||||
|
||||
export const DOMAIN = "https://timezone.creations.works";
|
||||
export const REDIRECT_URI = `${DOMAIN}/auth/discord/callback`;
|
||||
export const CLIENT_ID = "1377021506810417173";
|
||||
|
||||
export const DATASTORE_KEY = "vencord-database-timezones";
|
||||
export let databaseTimezones: Record<string, CacheEntry> = {};
|
||||
(async () => {
|
||||
databaseTimezones = await DataStore.get<Record<string, CacheEntry>>(DATASTORE_KEY) || {};
|
||||
})();
|
||||
|
||||
const pendingRequests: Record<string, Promise<string | null>> = {};
|
||||
|
||||
|
|
|
@ -22,10 +22,14 @@ import { SetTimezoneModal } from "./TimezoneModal";
|
|||
|
||||
export const DATASTORE_KEY = "vencord-timezones";
|
||||
|
||||
type CacheEntry = {
|
||||
value: string | null;
|
||||
expires: number;
|
||||
};
|
||||
|
||||
export let databaseTimezones: Record<string, CacheEntry> = {};
|
||||
|
||||
export let timezones: Record<string, string | null> = {};
|
||||
(async () => {
|
||||
timezones = await DataStore.get<Record<string, string>>(DATASTORE_KEY) || {};
|
||||
})();
|
||||
|
||||
const classes = findByPropsLazy("timestamp", "compact", "contentOnly");
|
||||
const locale = findByPropsLazy("getLocale");
|
||||
|
@ -118,10 +122,10 @@ const TimestampComponent = ErrorBoundary.wrap(({ userId, timestamp, type }: Prop
|
|||
const localTimezone = timezones[userId];
|
||||
const shouldUseDatabase =
|
||||
settings.store.useDatabase &&
|
||||
(settings.store.preferDatabaseOverLocal || localTimezone == null);
|
||||
(settings.store.preferDatabaseOverLocal || !localTimezone);
|
||||
|
||||
if (shouldUseDatabase) {
|
||||
getTimezone(userId).then(setTimezone);
|
||||
getTimezone(userId).then(e => setTimezone(e ?? localTimezone));
|
||||
} else {
|
||||
setTimezone(localTimezone);
|
||||
}
|
||||
|
@ -240,6 +244,12 @@ export default definePlugin({
|
|||
}
|
||||
}
|
||||
],
|
||||
|
||||
async start() {
|
||||
databaseTimezones = await DataStore.get<Record<string, CacheEntry>>(DATASTORE_KEY) || {};
|
||||
timezones = await DataStore.get<Record<string, string>>(DATASTORE_KEY) || {};
|
||||
},
|
||||
|
||||
settings,
|
||||
getTime,
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue