Files
frangipane-client/src/main.ts
2026-01-28 19:31:14 +01:00

63 lines
1.8 KiB
TypeScript

import { createApp } from 'vue'
import router from './router.ts'
import App from './App.vue'
import { validateToken, initTheme } from './store.ts'
import { fluent, setLanguage } from './i18n'
import './base.css'
import { getLocalePreference } from './store.ts'
import { invoke } from '@tauri-apps/api/core'
export function logJS(msg: any) {
invoke('log', { message: typeof msg === 'string' ? msg : JSON.stringify(msg) }).catch(() => { });
}
async function init() {
await validateToken()
const app = createApp(App)
app.use(router)
app.use(fluent)
const savedLocale = await getLocalePreference();
const osLocale = navigator.language;
await initTheme();
if (savedLocale) {
setLanguage(savedLocale);
} else {
setLanguage(osLocale);
}
// await createChannel({
// id: 'messages',
// name: 'Messages',
// description: 'Notifications for new messages',
// importance: Importance.High,
// visibility: Visibility.Private,
// lights: true,
// lightColor: '#ff0000',
// vibration: true,
// sound: 'notification_sound',
// });
// window.addEventListener("error", (event) => {
// logJS(`Uncaught JS Error: ${event.message} at ${event.filename}:${event.lineno}:${event.colno}`);
// });
//
// window.addEventListener("unhandledrejection", (event) => {
// logJS(`Unhandled Promise Rejection: ${JSON.stringify(event.reason)}`);
// });
app.mount('#app')
}
init()
export const API = 'http://127.0.0.1:8080'
// export const API = 'http://192.168.1.183:8080'
// export const API = 'https://alatreon.org/frangipane'
export const API_WS = 'ws://127.0.0.1:8080/ws'
// export const API_WS = 'ws://192.168.1.183:8080/ws'
// export const API_WS = 'wss://alatreon.org/frangipane/ws'