Files
veridian/app/composables/useTokenDropdown.ts
T

31 lines
948 B
TypeScript

import type { Entity } from '@triplit/client';
import type { schema } from '#triplit/schema';
type Generation = Entity<typeof schema, 'generations'>;
export const useTokenDropdown = () => {
const isOpen = useState('token-dropdown:open', () => false);
const activeGeneration = useState<Generation | null>('token-dropdown:generation', () => null);
const triggerElement = useState<HTMLElement | null>('token-dropdown:trigger', () => null);
const open = (generation: Generation, trigger: HTMLElement) => {
console.log("open", generation, trigger);
activeGeneration.value = generation;
triggerElement.value = trigger;
isOpen.value = true;
};
const close = () => {
isOpen.value = false;
};
return {
isOpen: readonly(isOpen),
activeGeneration: readonly(activeGeneration),
triggerElement: readonly(triggerElement),
open,
close,
};
};