1
0
Fork 1
mirror of https://github.com/thatmattlove/hyperglass.git synced 2026-04-18 22:08:27 +00:00
thatmattlove-hyperglass/hyperglass/ui/hooks/useGreeting.ts
2020-12-31 21:49:27 -07:00

39 lines
1,002 B
TypeScript

import { createState, useState } from '@hookstate/core';
import { Persistence } from '@hookstate/persistence';
import { useConfig } from '~/context';
import type { TUseGreetingReturn } from './types';
const ackState = createState<boolean>(false);
const openState = createState<boolean>(false);
export function useGreeting(): TUseGreetingReturn {
const ack = useState<boolean>(ackState);
const isOpen = useState<boolean>(openState);
const { web } = useConfig();
if (typeof window !== 'undefined') {
ack.attach(Persistence('hyperglass-greeting'));
}
function open() {
return isOpen.set(true);
}
function close() {
return isOpen.set(false);
}
function greetingReady(): boolean {
if (ack.get()) {
return true;
} else if (!web.greeting.required && !ack.get()) {
return true;
} else if (web.greeting.required && !ack.get()) {
return false;
} else {
return false;
}
}
return { ack, isOpen, greetingReady, open, close };
}