diff --git a/src/app/components/CreateRoomKindSelector.tsx b/src/app/components/CreateRoomKindSelector.tsx new file mode 100644 index 00000000..e11a11c6 --- /dev/null +++ b/src/app/components/CreateRoomKindSelector.tsx @@ -0,0 +1,92 @@ +import React from 'react'; +import { Box, Text, Icon, Icons, config } from 'folds'; +import { SettingTile } from './setting-tile'; +import { SequenceCard } from './sequence-card'; + +export enum CreateRoomKind { + Private = 'private', + Restricted = 'restricted', + Public = 'public', +} +type CreateRoomKindSelectorProps = { + value?: CreateRoomKind; + onSelect: (value: CreateRoomKind) => void; + canRestrict?: boolean; + disabled?: boolean; +}; +export function CreateRoomKindSelector({ + value, + onSelect, + canRestrict, + disabled, +}: CreateRoomKindSelectorProps) { + return ( + + {canRestrict && ( + onSelect(CreateRoomKind.Restricted)} + disabled={disabled} + > + } + after={value === CreateRoomKind.Restricted && } + > + Restricted + + Only member of parent space can join. + + + + )} + onSelect(CreateRoomKind.Private)} + disabled={disabled} + > + } + after={value === CreateRoomKind.Private && } + > + Private + + Only people with invite can join. + + + + onSelect(CreateRoomKind.Public)} + disabled={disabled} + > + } + after={value === CreateRoomKind.Public && } + > + Public + + Anyone with the address can join. + + + + + ); +} diff --git a/src/app/features/create-room/CreateRoom.tsx b/src/app/features/create-room/CreateRoom.tsx index 2aeddb5f..b2d0e0d0 100644 --- a/src/app/features/create-room/CreateRoom.tsx +++ b/src/app/features/create-room/CreateRoom.tsx @@ -56,94 +56,7 @@ import { StateEvent } from '../../../types/matrix/room'; import { getIdServer } from '../../../util/matrixUtil'; import { useAlive } from '../../hooks/useAlive'; import { ErrorCode } from '../../cs-errorcode'; - -export enum CreateRoomKind { - Private = 'private', - Restricted = 'restricted', - Public = 'public', -} -type CreateRoomKindSelectorProps = { - value?: CreateRoomKind; - onSelect: (value: CreateRoomKind) => void; - canRestrict?: boolean; - disabled?: boolean; -}; -export function CreateRoomKindSelector({ - value, - onSelect, - canRestrict, - disabled, -}: CreateRoomKindSelectorProps) { - return ( - - {canRestrict && ( - onSelect(CreateRoomKind.Restricted)} - disabled={disabled} - > - } - after={value === CreateRoomKind.Restricted && } - > - Restricted - - Only member of parent space can join. - - - - )} - onSelect(CreateRoomKind.Private)} - disabled={disabled} - > - } - after={value === CreateRoomKind.Private && } - > - Private - - Only people with invite can join. - - - - onSelect(CreateRoomKind.Public)} - disabled={disabled} - > - } - after={value === CreateRoomKind.Public && } - > - Public - - Anyone with the address can join. - - - - - ); -} +import { CreateRoomKind, CreateRoomKindSelector } from '../../components/CreateRoomKindSelector'; export function AliasInput({ disabled }: { disabled?: boolean }) { const mx = useMatrixClient();