fix: restore rooms and DMs after React Router 7 upgrade
Stop double-encoding Matrix IDs in pathUtils, decode route params on read, fix millify CJS import, and read space children from currentState so channels and joins work again.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useMatch, useParams } from 'react-router-dom';
|
||||
import { getExploreFeaturedPath, getExplorePath } from '../../pages/pathUtils';
|
||||
import { decodeRouteParam, getExploreFeaturedPath, getExplorePath } from '../../pages/pathUtils';
|
||||
|
||||
export const useExploreSelected = (): boolean => {
|
||||
const match = useMatch({
|
||||
@@ -24,5 +24,5 @@ export const useExploreFeaturedSelected = (): boolean => {
|
||||
export const useExploreServer = (): string | undefined => {
|
||||
const { server } = useParams();
|
||||
|
||||
return server;
|
||||
return decodeRouteParam(server);
|
||||
};
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { decodeRouteParam } from '../../pages/pathUtils';
|
||||
import { getCanonicalAliasRoomId, isRoomAlias } from '../../utils/matrix';
|
||||
import { useMatrixClient } from '../useMatrixClient';
|
||||
|
||||
export const useSelectedRoom = (): string | undefined => {
|
||||
const mx = useMatrixClient();
|
||||
|
||||
const { roomIdOrAlias } = useParams();
|
||||
const { roomIdOrAlias: rawRoomIdOrAlias } = useParams();
|
||||
const roomIdOrAlias = decodeRouteParam(rawRoomIdOrAlias);
|
||||
const roomId =
|
||||
roomIdOrAlias && isRoomAlias(roomIdOrAlias)
|
||||
? getCanonicalAliasRoomId(mx, roomIdOrAlias)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { useLocation, useParams } from 'react-router-dom';
|
||||
import { decodeRouteParam } from '../../pages/pathUtils';
|
||||
import { getCanonicalAliasRoomId, isRoomAlias } from '../../utils/matrix';
|
||||
import { useMatrixClient } from '../useMatrixClient';
|
||||
|
||||
export const useSelectedSpace = (): string | undefined => {
|
||||
const mx = useMatrixClient();
|
||||
|
||||
const { spaceIdOrAlias } = useParams();
|
||||
const { spaceIdOrAlias: rawSpaceIdOrAlias } = useParams();
|
||||
const spaceIdOrAlias = decodeRouteParam(rawSpaceIdOrAlias);
|
||||
|
||||
const spaceId =
|
||||
spaceIdOrAlias && isRoomAlias(spaceIdOrAlias)
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import { useMemo } from 'react';
|
||||
import { useMatrixClient } from './useMatrixClient';
|
||||
|
||||
import { decodeRouteParam } from '../pages/pathUtils';
|
||||
import { getCanonicalAliasRoomId, isRoomAlias } from '../utils/matrix';
|
||||
|
||||
export const useJoinedRoomId = (allRooms: string[], roomIdOrAlias: string): string | undefined => {
|
||||
const mx = useMatrixClient();
|
||||
|
||||
const joinedRoomId = useMemo(() => {
|
||||
const roomId = isRoomAlias(roomIdOrAlias)
|
||||
? getCanonicalAliasRoomId(mx, roomIdOrAlias)
|
||||
: roomIdOrAlias;
|
||||
const decoded = decodeRouteParam(roomIdOrAlias) ?? roomIdOrAlias;
|
||||
const roomId = isRoomAlias(decoded)
|
||||
? getCanonicalAliasRoomId(mx, decoded)
|
||||
: decoded;
|
||||
|
||||
if (roomId && allRooms.includes(roomId)) return roomId;
|
||||
return undefined;
|
||||
|
||||
Reference in New Issue
Block a user