2025-08-05 18:37:07 +05:30
|
|
|
import { useCallback } from 'react';
|
|
|
|
|
import { useAtomValue, useSetAtom } from 'jotai';
|
|
|
|
|
import { createRoomModalAtom, CreateRoomModalState } from '../createRoomModal';
|
2026-02-14 18:14:39 +01:00
|
|
|
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;
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-14 18:14:39 +01:00
|
|
|
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(
|
2026-02-14 18:14:39 +01:00
|
|
|
(spaceId, voice) => {
|
|
|
|
|
setSettings({ spaceId, voice });
|
2025-08-05 18:37:07 +05:30
|
|
|
},
|
|
|
|
|
[setSettings]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return open;
|
|
|
|
|
};
|