mirror of
https://github.com/open-webui/open-webui
synced 2024-11-08 09:39:55 +00:00
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import { APP_NAME } from '$lib/constants';
|
|
import { writable, derived } from 'svelte/store';
|
|
|
|
// Backend
|
|
export const WEBUI_NAME = writable(APP_NAME);
|
|
export const config = writable(undefined);
|
|
export const user = writable(undefined);
|
|
|
|
// Frontend
|
|
const rawThemeSetting = writable('system');
|
|
export const theme = derived(rawThemeSetting, ($rawThemeSetting) => {
|
|
if ($rawThemeSetting === 'system') {
|
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
}
|
|
return $rawThemeSetting;
|
|
});
|
|
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
|
|
rawThemeSetting.update((currentTheme) => {
|
|
if (currentTheme === 'system') {
|
|
return e.matches ? 'dark' : 'light';
|
|
}
|
|
return currentTheme;
|
|
});
|
|
});
|
|
|
|
export function setTheme(theme) {
|
|
rawThemeSetting.set(theme);
|
|
localStorage.setItem('theme', theme);
|
|
}
|
|
|
|
export const chatId = writable('');
|
|
|
|
export const chats = writable([]);
|
|
export const tags = writable([]);
|
|
export const models = writable([]);
|
|
|
|
export const modelfiles = writable([]);
|
|
export const prompts = writable([]);
|
|
export const documents = writable([
|
|
{
|
|
collection_name: 'collection_name',
|
|
filename: 'filename',
|
|
name: 'name',
|
|
title: 'title'
|
|
},
|
|
{
|
|
collection_name: 'collection_name1',
|
|
filename: 'filename1',
|
|
name: 'name1',
|
|
title: 'title1'
|
|
}
|
|
]);
|
|
|
|
export const settings = writable({});
|
|
export const showSettings = writable(false);
|
|
export const showChangelog = writable(false);
|