stort/src/components/Generic/Initialization.tsx

35 lines
1.1 KiB
TypeScript

import { createDir, exists } from "@tauri-apps/api/fs";
import { useEffect } from "react";
import { useSettings } from "../../contexts/SettingsContext";
import Paths from "../../lib/path";
export const Initialization = () => {
const { settings, settingsLoading } = useSettings();
useEffect(() => {
const initializePaths = async () => {
try {
await Paths.initialize();
} catch (error) {
console.error(`Failed to initialize paths: ${error}`);
}
};
const createDirectories = async () => {
const configDirectoryExists = await exists(Paths.getPath("configDirectory"));
if (!configDirectoryExists) await createDir(Paths.getPath("configDirectory"));
};
const fullscreen = async () => {
const { appWindow } = await import("@tauri-apps/api/window");
await appWindow.setFullscreen(true);
};
initializePaths().then(() => createDirectories());
// TODO: race condition here, need to wait for settings to load
if (settings.window.start_fullscreen) fullscreen();
}, [settingsLoading]);
return null;
};