feat: collapsible sidebar groups + favorites, chat hide setting, billing page, module route guards
This commit is contained in:
14
src/components/ModuleGuard.tsx
Normal file
14
src/components/ModuleGuard.tsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Navigate } from 'react-router-dom'
|
||||
import { useModules } from '../contexts/ModulesContext'
|
||||
|
||||
interface ModuleGuardProps {
|
||||
moduleId: string
|
||||
children: React.ReactNode
|
||||
redirectTo?: string
|
||||
}
|
||||
|
||||
export function ModuleGuard({ moduleId, children, redirectTo = '/modules' }: ModuleGuardProps) {
|
||||
const { isActive } = useModules()
|
||||
if (!isActive(moduleId)) return <Navigate to={redirectTo} replace />
|
||||
return <>{children}</>
|
||||
}
|
||||
Reference in New Issue
Block a user