34 lines
736 B
TypeScript
34 lines
736 B
TypeScript
const STORAGE_KEY = 'entrelineas_dev_unlocked'
|
|
|
|
export function useDevMode() {
|
|
const config = useRuntimeConfig()
|
|
const devKey = config.public.entrelineasDevKey as string
|
|
|
|
const unlocked = ref(false)
|
|
|
|
if (import.meta.client) {
|
|
unlocked.value = localStorage.getItem(STORAGE_KEY) === 'true'
|
|
}
|
|
|
|
function unlock(key: string): boolean {
|
|
if (!devKey) return false
|
|
if (key === devKey) {
|
|
unlocked.value = true
|
|
if (import.meta.client) {
|
|
localStorage.setItem(STORAGE_KEY, 'true')
|
|
}
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
function lock() {
|
|
unlocked.value = false
|
|
if (import.meta.client) {
|
|
localStorage.removeItem(STORAGE_KEY)
|
|
}
|
|
}
|
|
|
|
return { unlocked, unlock, lock }
|
|
}
|