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