import React from 'react'; import { Icon, Icons } from 'folds'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { useAtomValue } from 'jotai'; import { SidebarAvatar, SidebarItem, SidebarItemTooltip } from '../../../components/sidebar'; import { useExploreSelected } from '../../../hooks/router/useExploreSelected'; import { getExploreFeaturedPath, getExplorePath, getExploreServerPath, joinPathComponent, } from '../../pathUtils'; import { useClientConfig } from '../../../hooks/useClientConfig'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { getMxIdServer } from '../../../utils/matrix'; import { ScreenSize, useScreenSizeContext } from '../../../hooks/useScreenSize'; import { useNavToActivePathAtom } from '../../../state/hooks/navToActivePath'; import { isNativePlatform } from '../../../utils/capacitor'; export function ExploreTab() { const { t } = useTranslation(); const mx = useMatrixClient(); const screenSize = useScreenSizeContext(); const clientConfig = useClientConfig(); const navigate = useNavigate(); const navToActivePath = useAtomValue(useNavToActivePathAtom()); const exploreSelected = useExploreSelected(); const handleExploreClick = () => { const navOpts = { replace: isNativePlatform() }; if (screenSize === ScreenSize.Mobile) { navigate(getExplorePath(), navOpts); return; } const activePath = navToActivePath.get('explore'); if (activePath) { navigate(joinPathComponent(activePath), navOpts); return; } if (clientConfig.featuredCommunities?.openAsDefault) { navigate(getExploreFeaturedPath(), navOpts); return; } const userId = mx.getUserId(); const userServer = userId ? getMxIdServer(userId) : undefined; if (userServer) { navigate(getExploreServerPath(userServer), navOpts); return; } navigate(getExplorePath(), navOpts); }; return ( {(triggerRef) => ( )} ); }