Files
cinny/src/app/hooks/router/useSelectedSpace.ts
T
nathan 17322cc955
CI / Build & Quality Checks (pull_request) Canceled after 5m40s
CI / Trigger Desktop Build (pull_request) Canceled after 0s
removed deprecated react-router-dom, as all falls within react-router now
2026-08-02 19:33:13 -04:00

38 lines
1.0 KiB
TypeScript

import { useMatch, useParams } from 'react-router';
import { getCanonicalAliasRoomId, isRoomAlias } from '../../utils/matrix';
import { useMatrixClient } from '../useMatrixClient';
import { getSpaceLobbyPath, getSpaceSearchPath } from '../../pages/pathUtils';
export const useSelectedSpace = (): string | undefined => {
const mx = useMatrixClient();
const { spaceIdOrAlias } = useParams();
const spaceId =
spaceIdOrAlias && isRoomAlias(spaceIdOrAlias)
? getCanonicalAliasRoomId(mx, spaceIdOrAlias)
: spaceIdOrAlias;
return spaceId;
};
export const useSpaceLobbySelected = (spaceIdOrAlias: string): boolean => {
const match = useMatch({
path: decodeURIComponent(getSpaceLobbyPath(spaceIdOrAlias)),
caseSensitive: true,
end: false,
});
return !!match;
};
export const useSpaceSearchSelected = (spaceIdOrAlias: string): boolean => {
const match = useMatch({
path: decodeURIComponent(getSpaceSearchPath(spaceIdOrAlias)),
caseSensitive: true,
end: false,
});
return !!match;
};