Files
speckle-server/packages/frontend-2/lib/core/composables/theme.ts
T
Kristaps Fabians Geikins 6af6c656a4 feat(fe2): app authorization workflow redesign [WBX-217] (#2044)
* WIP

* new permissions table

* permissions grouped

* updated scope descriptions

* more scope copy adjustments

* allow auth error handling

* manually closable toast notification

* fixed mentions rendering

* error view

* not you? feature

* cleanup

* minor styling changes

* WIP table

* finished authorized apps table

* minor cleanup

* cleaning up comment

* testing changes
2024-02-23 16:50:07 +02:00

37 lines
847 B
TypeScript

import type { Optional } from '@speckle/shared'
import { useSynchronizedCookie } from '~~/lib/common/composables/reactiveCookie'
import { CookieKeys } from '~~/lib/common/helpers/constants'
export enum AppTheme {
Light = 'light',
Dark = 'dark'
}
/**
* Use this to read & write theme
*/
export function useTheme() {
const themeCookie = useSynchronizedCookie<Optional<AppTheme>>(CookieKeys.Theme)
const isDarkTheme = computed(() => themeCookie.value === AppTheme.Dark)
const isLightTheme = computed(() => !isDarkTheme.value)
const setTheme = (newTheme: AppTheme) => {
themeCookie.value = newTheme
}
const toggleTheme = () => {
if (isDarkTheme.value) {
setTheme(AppTheme.Light)
} else {
setTheme(AppTheme.Dark)
}
}
return {
setTheme,
toggleTheme,
isDarkTheme,
isLightTheme
}
}