diff --git a/src/app/channel/layout.tsx b/src/app/channel/layout.tsx index 8eb4ddb..82e93b8 100644 --- a/src/app/channel/layout.tsx +++ b/src/app/channel/layout.tsx @@ -1,4 +1,4 @@ -import { createContext, useContext, useState, type ReactNode } from "react"; +import { createContext, useContext, useState, useMemo, useCallback, type ReactNode } from "react"; import { Outlet } from "react-router-dom"; import { ChevronRight } from "lucide-react"; import { ServerIconRail } from "@/components/layout/ServerIconRail"; @@ -26,8 +26,18 @@ export function ChannelLayout({ children }: { children?: ReactNode }) { const isTablet = useIsTablet(); const canShowMembers = !isMobile && !isTablet; + const contextValue = useMemo( + () => ({ showMembers, setShowMembers }), + [showMembers], + ); + + const toggleSidebar = useCallback( + () => setIsSidebarCollapsed((v) => !v), + [], + ); + return ( - +
{!isMobile && } @@ -44,7 +54,7 @@ export function ChannelLayout({ children }: { children?: ReactNode }) { {!isSidebarCollapsed && }
+ + + ) : ( + <> + + + + ) + } /> + {saveError && ( +
+ {saveError} +
+ )} +
@@ -56,9 +147,17 @@ export function SkillDetailPage() { Skill Content
-
-              {skillDetail.content}
-            
+ {editing ? ( +