Files
cinny/src/app/state/hooks/createRoomModal.ts
T

36 lines
1022 B
TypeScript
Raw Normal View History

2025-08-05 18:37:07 +05:30
import { useCallback } from 'react';
import { useAtomValue, useSetAtom } from 'jotai';
import { createRoomModalAtom, CreateRoomModalState } from '../createRoomModal';
import { CreateRoomVoice } from '../../components/create-room/CreateRoomVoiceSelector';
2025-08-05 18:37:07 +05:30
export const useCreateRoomModalState = (): CreateRoomModalState | undefined => {
const data = useAtomValue(createRoomModalAtom);
return data;
};
type CloseCallback = () => void;
export const useCloseCreateRoomModal = (): CloseCallback => {
const setSettings = useSetAtom(createRoomModalAtom);
const close: CloseCallback = useCallback(() => {
setSettings(undefined);
}, [setSettings]);
return close;
};
type OpenCallback = (space?: string, voice?: CreateRoomVoice) => void;
2025-08-05 18:37:07 +05:30
export const useOpenCreateRoomModal = (): OpenCallback => {
const setSettings = useSetAtom(createRoomModalAtom);
const open: OpenCallback = useCallback(
(spaceId, voice) => {
setSettings({ spaceId, voice });
2025-08-05 18:37:07 +05:30
},
[setSettings]
);
return open;
};