FIX: New workbooks are created in the users TZ falling back to UTC
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
dd78db3d2b
commit
ae3fcaf9e9
@@ -10,6 +10,7 @@ import {
|
|||||||
uploadFile,
|
uploadFile,
|
||||||
} from "./components/rpc";
|
} from "./components/rpc";
|
||||||
import {
|
import {
|
||||||
|
createModelWithSafeTimezone,
|
||||||
createNewModel,
|
createNewModel,
|
||||||
deleteModelByUuid,
|
deleteModelByUuid,
|
||||||
deleteSelectedModel,
|
deleteSelectedModel,
|
||||||
@@ -65,7 +66,7 @@ function App() {
|
|||||||
const newModel = loadSelectedModelFromStorage();
|
const newModel = loadSelectedModelFromStorage();
|
||||||
if (!newModel) {
|
if (!newModel) {
|
||||||
setShowWelcomeDialog(true);
|
setShowWelcomeDialog(true);
|
||||||
const createdModel = new Model("template", "en", "UTC");
|
const createdModel = createModelWithSafeTimezone();
|
||||||
setModel(createdModel);
|
setModel(createdModel);
|
||||||
} else {
|
} else {
|
||||||
setModel(newModel);
|
setModel(newModel);
|
||||||
|
|||||||
@@ -85,11 +85,21 @@ function getNewName(existingNames: string[]): string {
|
|||||||
return "Workbook-Infinity";
|
return "Workbook-Infinity";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createModelWithSafeTimezone(): Model {
|
||||||
|
try {
|
||||||
|
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||||
|
return new Model("template", "en", tz);
|
||||||
|
} catch {
|
||||||
|
console.warn("Failed to get timezone, defaulting to UTC");
|
||||||
|
return new Model("template", "en", "UTC");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function createNewModel(): Model {
|
export function createNewModel(): Model {
|
||||||
const models = getModelsMetadata();
|
const models = getModelsMetadata();
|
||||||
const name = getNewName(Object.values(models).map((m) => m.name));
|
const name = getNewName(Object.values(models).map((m) => m.name));
|
||||||
|
|
||||||
const model = new Model(name, "en", "UTC");
|
const model = createModelWithSafeTimezone();
|
||||||
const uuid = randomUUID();
|
const uuid = randomUUID();
|
||||||
localStorage.setItem("selected", uuid);
|
localStorage.setItem("selected", uuid);
|
||||||
localStorage.setItem(uuid, bytesToBase64(model.toBytes()));
|
localStorage.setItem(uuid, bytesToBase64(model.toBytes()));
|
||||||
|
|||||||
Reference in New Issue
Block a user