add selected navigation hooks

This commit is contained in:
Ajay Bura 2024-02-05 14:37:18 +05:30
parent 08def422fe
commit 389a1bbd26
4 changed files with 54 additions and 0 deletions

View file

@ -0,0 +1,12 @@
import { useMatch } from 'react-router-dom';
import { getDirectPath } from '../pages/pathUtils';
export const useDirectSelected = (): boolean => {
const directMatch = useMatch({
path: getDirectPath(),
caseSensitive: true,
end: false,
});
return !!directMatch;
};

View file

@ -0,0 +1,12 @@
import { useMatch } from 'react-router-dom';
import { getHomePath } from '../pages/pathUtils';
export const useHomeSelected = (): boolean => {
const homeMatch = useMatch({
path: getHomePath(),
caseSensitive: true,
end: false,
});
return !!homeMatch;
};

View file

@ -0,0 +1,15 @@
import { useParams } from 'react-router-dom';
import { getCanonicalAliasRoomId, isRoomAlias } from '../utils/matrix';
import { useMatrixClient } from './useMatrixClient';
export const useSelectedRoom = (): string | undefined => {
const mx = useMatrixClient();
const { roomIdOrAlias } = useParams();
const roomId =
roomIdOrAlias && isRoomAlias(roomIdOrAlias)
? getCanonicalAliasRoomId(mx, roomIdOrAlias)
: roomIdOrAlias;
return roomId;
};

View file

@ -0,0 +1,15 @@
import { useParams } from 'react-router-dom';
import { getCanonicalAliasRoomId, isRoomAlias } from '../utils/matrix';
import { useMatrixClient } from './useMatrixClient';
export const useSelectedSpace = (): string | undefined => {
const mx = useMatrixClient();
const { spaceIdOrAlias } = useParams();
const spaceId =
spaceIdOrAlias && isRoomAlias(spaceIdOrAlias)
? getCanonicalAliasRoomId(mx, spaceIdOrAlias)
: spaceIdOrAlias;
return spaceId;
};