feat: Implement forum feed layout and refactor space navigation logic to support new routing structure
This commit is contained in:
@@ -1,30 +1,8 @@
|
||||
import React, { ReactNode, useMemo } from 'react';
|
||||
import { useMatrixClient } from '../../hooks/useMatrixClient';
|
||||
import { useSelectedRoom } from '../../hooks/router/useSelectedRoom';
|
||||
import { useSpace } from '../../hooks/useSpace';
|
||||
import { isForumContainer, shouldShowForumLobby } from '../../utils/room';
|
||||
import { ForumBoardProvider } from './ForumBoardContext';
|
||||
import React, { ReactNode } from 'react';
|
||||
|
||||
/** Shares forum board state between space sidebar and lobby/room outlet. */
|
||||
/**
|
||||
* @deprecated Forum board context now lives in ForumAwareSpaceLayout.
|
||||
*/
|
||||
export function ForumSpaceLayout({ children }: { children: ReactNode }) {
|
||||
const mx = useMatrixClient();
|
||||
const space = useSpace();
|
||||
const selectedRoomId = useSelectedRoom();
|
||||
|
||||
const scope = useMemo(() => {
|
||||
const room = selectedRoomId ? mx.getRoom(selectedRoomId) : null;
|
||||
const topicRoomId =
|
||||
room && room.roomId !== space.roomId && !isForumContainer(room) ? room.roomId : undefined;
|
||||
return { forumSpaceId: space.roomId, topicRoomId };
|
||||
}, [mx, selectedRoomId, space.roomId]);
|
||||
|
||||
if (!shouldShowForumLobby(space)) {
|
||||
return children;
|
||||
}
|
||||
|
||||
return (
|
||||
<ForumBoardProvider forumSpace={space} scope={scope}>
|
||||
{children}
|
||||
</ForumBoardProvider>
|
||||
);
|
||||
return children;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user