import React, { useEffect } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import { Box, Icon, IconButton, Icons, Scroll } from 'folds'; import { useTranslation } from 'react-i18next'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { getDirectCreateSearchParams } from '../../pathSearchParam'; import { getDirectRoomPath } from '../../pathUtils'; import { getDMRoomFor } from '../../../utils/matrix'; import { useDirectRooms } from './useDirectRooms'; import { ScreenSize, useScreenSizeContext } from '../../../hooks/useScreenSize'; import { Page, PageContent, PageContentCenter, PageHeader, PageHero, PageHeroSection, } from '../../../components/page'; import { BackRouteHandler } from '../../../components/BackRouteHandler'; import { CreateChat } from '../../../features/create-chat'; export function DirectCreate() { const { t } = useTranslation(); const mx = useMatrixClient(); const screenSize = useScreenSizeContext(); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const { userId } = getDirectCreateSearchParams(searchParams); const directs = useDirectRooms(); useEffect(() => { if (userId) { const roomId = getDMRoomFor(mx, userId)?.roomId; if (roomId && directs.includes(roomId)) { navigate(getDirectRoomPath(roomId), { replace: true }); } } }, [mx, navigate, directs, userId]); return ( {screenSize === ScreenSize.Mobile && ( {(onBack) => ( )} )} ); }