forked from github/cinny
Add option for voice rooms, which for now sets the default selected
option in the creation modal
This commit is contained in:
@@ -28,7 +28,8 @@ type CreateRoomModalProps = {
|
|||||||
state: CreateRoomModalState;
|
state: CreateRoomModalState;
|
||||||
};
|
};
|
||||||
function CreateRoomModal({ state }: CreateRoomModalProps) {
|
function CreateRoomModal({ state }: CreateRoomModalProps) {
|
||||||
const { spaceId } = state;
|
const { spaceId, voice } = state;
|
||||||
|
console.log({ voice });
|
||||||
const closeDialog = useCloseCreateRoomModal();
|
const closeDialog = useCloseCreateRoomModal();
|
||||||
|
|
||||||
const allJoinedRooms = useAllJoinedRoomsSet();
|
const allJoinedRooms = useAllJoinedRoomsSet();
|
||||||
@@ -74,7 +75,7 @@ function CreateRoomModal({ state }: CreateRoomModalProps) {
|
|||||||
direction="Column"
|
direction="Column"
|
||||||
gap="500"
|
gap="500"
|
||||||
>
|
>
|
||||||
<CreateRoomForm space={space} onCreate={closeDialog} />
|
<CreateRoomForm space={space} onCreate={closeDialog} defaultVoice={voice} />
|
||||||
</Box>
|
</Box>
|
||||||
</Scroll>
|
</Scroll>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import { useMediaAuthentication } from '../../hooks/useMediaAuthentication';
|
|||||||
import { useOpenCreateRoomModal } from '../../state/hooks/createRoomModal';
|
import { useOpenCreateRoomModal } from '../../state/hooks/createRoomModal';
|
||||||
import { useOpenCreateSpaceModal } from '../../state/hooks/createSpaceModal';
|
import { useOpenCreateSpaceModal } from '../../state/hooks/createSpaceModal';
|
||||||
import { AddExistingModal } from '../add-existing';
|
import { AddExistingModal } from '../add-existing';
|
||||||
|
import { CreateRoomVoice } from '../../components/create-room/CreateRoomVoiceSelector';
|
||||||
|
|
||||||
function SpaceProfileLoading() {
|
function SpaceProfileLoading() {
|
||||||
return (
|
return (
|
||||||
@@ -249,8 +250,8 @@ function AddRoomButton({ item }: { item: HierarchyItem }) {
|
|||||||
setCords(evt.currentTarget.getBoundingClientRect());
|
setCords(evt.currentTarget.getBoundingClientRect());
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleCreateRoom = () => {
|
const handleCreateRoom = (voice?: CreateRoomVoice) => {
|
||||||
openCreateRoomModal(item.roomId);
|
openCreateRoomModal(item.roomId, voice);
|
||||||
setCords(undefined);
|
setCords(undefined);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -281,10 +282,19 @@ function AddRoomButton({ item }: { item: HierarchyItem }) {
|
|||||||
radii="300"
|
radii="300"
|
||||||
variant="Primary"
|
variant="Primary"
|
||||||
fill="None"
|
fill="None"
|
||||||
onClick={handleCreateRoom}
|
onClick={() => handleCreateRoom(CreateRoomVoice.TextRoom)}
|
||||||
>
|
>
|
||||||
<Text size="T300">New Room</Text>
|
<Text size="T300">New Room</Text>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
<MenuItem
|
||||||
|
size="300"
|
||||||
|
radii="300"
|
||||||
|
variant="Primary"
|
||||||
|
fill="None"
|
||||||
|
onClick={() => handleCreateRoom(CreateRoomVoice.VoiceRoom)}
|
||||||
|
>
|
||||||
|
<Text size="T300">New Voice Room</Text>
|
||||||
|
</MenuItem>
|
||||||
<MenuItem size="300" radii="300" fill="None" onClick={handleAddExisting}>
|
<MenuItem size="300" radii="300" fill="None" onClick={handleAddExisting}>
|
||||||
<Text size="T300">Existing Room</Text>
|
<Text size="T300">Existing Room</Text>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import { atom } from 'jotai';
|
import { atom } from 'jotai';
|
||||||
|
import { CreateRoomVoice } from '../components/create-room/CreateRoomVoiceSelector';
|
||||||
|
|
||||||
export type CreateRoomModalState = {
|
export type CreateRoomModalState = {
|
||||||
spaceId?: string;
|
spaceId?: string;
|
||||||
|
voice?: CreateRoomVoice;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const createRoomModalAtom = atom<CreateRoomModalState | undefined>(undefined);
|
export const createRoomModalAtom = atom<CreateRoomModalState | undefined>(undefined);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
import { useAtomValue, useSetAtom } from 'jotai';
|
import { useAtomValue, useSetAtom } from 'jotai';
|
||||||
import { createRoomModalAtom, CreateRoomModalState } from '../createRoomModal';
|
import { createRoomModalAtom, CreateRoomModalState } from '../createRoomModal';
|
||||||
|
import { CreateRoomVoice } from '../../components/create-room/CreateRoomVoiceSelector';
|
||||||
|
|
||||||
export const useCreateRoomModalState = (): CreateRoomModalState | undefined => {
|
export const useCreateRoomModalState = (): CreateRoomModalState | undefined => {
|
||||||
const data = useAtomValue(createRoomModalAtom);
|
const data = useAtomValue(createRoomModalAtom);
|
||||||
@@ -19,13 +20,13 @@ export const useCloseCreateRoomModal = (): CloseCallback => {
|
|||||||
return close;
|
return close;
|
||||||
};
|
};
|
||||||
|
|
||||||
type OpenCallback = (space?: string) => void;
|
type OpenCallback = (space?: string, voice?: CreateRoomVoice) => void;
|
||||||
export const useOpenCreateRoomModal = (): OpenCallback => {
|
export const useOpenCreateRoomModal = (): OpenCallback => {
|
||||||
const setSettings = useSetAtom(createRoomModalAtom);
|
const setSettings = useSetAtom(createRoomModalAtom);
|
||||||
|
|
||||||
const open: OpenCallback = useCallback(
|
const open: OpenCallback = useCallback(
|
||||||
(spaceId) => {
|
(spaceId, voice) => {
|
||||||
setSettings({ spaceId });
|
setSettings({ spaceId, voice });
|
||||||
},
|
},
|
||||||
[setSettings]
|
[setSettings]
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user