feat: Integrate forum layout support across various components and enhance room handling logic

This commit is contained in:
2026-07-06 01:06:20 +10:00
parent d1626e3585
commit c57797ffe4
62 changed files with 6876 additions and 385 deletions

View File

@@ -0,0 +1,32 @@
import React, { createContext, useContext } from 'react';
import { Room } from 'matrix-js-sdk';
import { useForumBoard, type ForumBoardScope } from './useForumBoard';
type ForumBoardContextValue = ReturnType<typeof useForumBoard>;
const ForumBoardContext = createContext<ForumBoardContextValue | null>(null);
export function ForumBoardProvider({
forumSpace,
scope,
children,
}: {
forumSpace: Room;
scope: ForumBoardScope;
children: React.ReactNode;
}) {
const value = useForumBoard(scope, forumSpace);
return <ForumBoardContext.Provider value={value}>{children}</ForumBoardContext.Provider>;
}
export function useForumBoardContext(): ForumBoardContextValue {
const ctx = useContext(ForumBoardContext);
if (!ctx) {
throw new Error('useForumBoardContext must be used within ForumBoardProvider');
}
return ctx;
}
export function useForumBoardContextOptionally(): ForumBoardContextValue | null {
return useContext(ForumBoardContext);
}