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:
@@ -34,12 +34,20 @@ export const getStateEvent = (
|
||||
room: Room,
|
||||
eventType: StateEvent,
|
||||
stateKey = ''
|
||||
): MatrixEvent | undefined =>
|
||||
room.getLiveTimeline().getState(EventTimeline.FORWARDS)?.getStateEvents(eventType, stateKey) ??
|
||||
undefined;
|
||||
): MatrixEvent | undefined => {
|
||||
const fromCurrent = room.currentState?.getStateEvents(eventType, stateKey);
|
||||
if (fromCurrent) return fromCurrent;
|
||||
return (
|
||||
room.getLiveTimeline().getState(EventTimeline.FORWARDS)?.getStateEvents(eventType, stateKey) ??
|
||||
undefined
|
||||
);
|
||||
};
|
||||
|
||||
export const getStateEvents = (room: Room, eventType: StateEvent): MatrixEvent[] =>
|
||||
room.getLiveTimeline().getState(EventTimeline.FORWARDS)?.getStateEvents(eventType) ?? [];
|
||||
export const getStateEvents = (room: Room, eventType: StateEvent): MatrixEvent[] => {
|
||||
const fromCurrent = room.currentState?.getStateEvents(eventType);
|
||||
if (fromCurrent && fromCurrent.length > 0) return fromCurrent;
|
||||
return room.getLiveTimeline().getState(EventTimeline.FORWARDS)?.getStateEvents(eventType) ?? [];
|
||||
};
|
||||
|
||||
export const getAccountData = (
|
||||
mx: MatrixClient,
|
||||
@@ -170,10 +178,13 @@ export const isUnsupportedRoom = (room: Room | null): boolean => {
|
||||
};
|
||||
|
||||
export function isValidChild(mEvent: MatrixEvent): boolean {
|
||||
return (
|
||||
mEvent.getType() === StateEvent.SpaceChild &&
|
||||
Array.isArray(mEvent.getContent<{ via: string[] }>().via)
|
||||
);
|
||||
if (mEvent.getType() !== StateEvent.SpaceChild) return false;
|
||||
const stateKey = mEvent.getStateKey();
|
||||
if (!stateKey || !stateKey.startsWith('!')) return false;
|
||||
const { via } = mEvent.getContent<{ via?: string[] }>();
|
||||
// via is optional on m.space.child; only reject malformed values
|
||||
if (via !== undefined && !Array.isArray(via)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
export const getAllParents = (roomToParents: RoomToParents, roomId: string): Set<string> => {
|
||||
|
||||
Reference in New Issue
Block a user