Files
nocodb/packages/nc-gui/composables/useColors.ts
Mert E 89f0895de3 fix: experimental frontend optimizations (#8427)
* fix: get rid of barrel files

* chore: get rid of explicit imports

* fix: use explicit import for classes and enums

* fix: use explicit import for enum & class & aliases

* fix: build issues
2024-05-08 15:55:09 +05:30

29 lines
768 B
TypeScript

import { ref } from 'vue'
import type { MaybeRef } from '@vueuse/core'
export function useColors(darkMode?: MaybeRef<boolean>) {
const scope = effectScope()
const mode = ref(unref(darkMode))
const { $state } = useNuxtApp()
if (typeof mode.value === 'undefined') mode.value = $state.darkMode.value
scope.run(() => {
watch($state.darkMode, (newMode) => {
if (typeof mode.value === 'undefined') mode.value = newMode
})
watchEffect(() => {
const newMode = unref(darkMode)
if (newMode) mode.value = newMode
})
})
tryOnScopeDispose(() => scope.stop())
const colors = computed(() => (mode.value ? theme.dark : theme.light))
return { colors, getColorByIndex: (i: number) => colors.value[i % colors.value.length] }
}