open-webui/src/lib/stores/index.ts

58 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-02-24 01:12:19 +00:00
import { APP_NAME } from '$lib/constants';
import { writable, derived } from 'svelte/store';
2023-11-19 00:47:12 +00:00
2023-11-20 01:47:07 +00:00
// Backend
2024-02-24 01:12:19 +00:00
export const WEBUI_NAME = writable(APP_NAME);
2023-11-19 00:47:12 +00:00
export const config = writable(undefined);
export const user = writable(undefined);
2023-11-20 01:47:07 +00:00
// 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;
});
});
2024-03-17 08:00:38 +00:00
export function setTheme(theme) {
rawThemeSetting.set(theme);
localStorage.setItem('theme', theme);
}
2024-01-03 04:41:37 +00:00
2023-11-20 01:47:07 +00:00
export const chatId = writable('');
2024-01-03 04:41:37 +00:00
2023-11-20 01:47:07 +00:00
export const chats = writable([]);
2024-01-18 10:55:25 +00:00
export const tags = writable([]);
2023-11-20 01:47:07 +00:00
export const models = writable([]);
2024-01-08 07:43:32 +00:00
export const modelfiles = writable([]);
2024-01-03 04:41:37 +00:00
export const prompts = writable([]);
2024-01-08 07:43:32 +00:00
export const documents = writable([
{
collection_name: 'collection_name',
filename: 'filename',
name: 'name',
title: 'title'
},
{
collection_name: 'collection_name1',
filename: 'filename1',
name: 'name1',
title: 'title1'
}
]);
2024-01-02 00:05:05 +00:00
2023-11-20 01:47:07 +00:00
export const settings = writable({});
export const showSettings = writable(false);
2024-02-23 08:47:54 +00:00
export const showChangelog = writable(false);