A photo manager for VRChat.
1/* @refresh reload */ 2import { render } from "solid-js/web"; 3 4declare global{ 5 interface Window { 6 AccountManager: AccountManager; 7 LoadingManager: LoadingManager; 8 PhotoManager: PhotoManager; 9 ConfirmationBoxManager: ConfirmationBoxManager; 10 PhotoViewerManager: PhotoViewerManager; 11 WorldCacheManager: WorldCacheManager; 12 PhotoListRenderingManager: PhotoListRenderingManager; 13 SyncManager: SyncManager; 14 ViewManager: ViewManager; 15 16 CloseAllPopups: (() => void)[]; 17 OS: string; 18 19 } 20} 21 22window.CloseAllPopups = []; 23 24window.oncontextmenu = ( e ) => e.preventDefault(); 25 26import "./styles.css"; 27import App from "./Components/App"; 28import { invoke } from "@tauri-apps/api/core"; 29 30import { AccountManager } from "./Components/Managers/AccountManager"; 31import { LoadingManager } from "./Components/Managers/LoadingManager"; 32import { PhotoManager } from "./Components/Managers/PhotoManager"; 33import { ConfirmationBoxManager } from "./Components/Managers/ConfirmationBoxManager"; 34import { PhotoViewerManager } from "./Components/Managers/PhotoViewerManager"; 35import { WorldCacheManager } from "./Components/Managers/WorldCacheManager"; 36import { PhotoListRenderingManager } from "./Components/Managers/PhotoListRenderingManager"; 37import { SyncManager } from "./Components/Managers/SyncManager"; 38import { ViewManager } from "./Components/Managers/ViewManager"; 39 40window.AccountManager = new AccountManager(); 41window.LoadingManager = new LoadingManager(); 42window.PhotoManager = new PhotoManager(); 43window.ConfirmationBoxManager = new ConfirmationBoxManager(); 44window.PhotoViewerManager = new PhotoViewerManager(); 45window.WorldCacheManager = new WorldCacheManager(); 46window.PhotoListRenderingManager = new PhotoListRenderingManager(); 47window.SyncManager = new SyncManager(); 48window.ViewManager = new ViewManager(); 49 50(async () => { 51 window.OS = await invoke('get_os'); 52 53 render(() => <App />, document.getElementById("root") as HTMLElement); 54 55 let f = new FontFace('Rubik', 'url(https://cdn.phaz.uk/fonts/rubik/Rubik-VariableFont_wght.ttf)'); 56 57 f.load().then((font) => { 58 document.fonts.add(font); 59 }); 60})();