"use client"; import {Tabs, TabsContent, TabsList, TabsTrigger} from "@/components/ui/tabs"; import {useEffect, useState} from "react"; import {useRouter, useSearchParams} from "next/navigation"; import {MemberWithUser, OrganizationWithMembers} from "@/db/schema/03_organization"; import {NotificationChannel} from "@/db/schema/09_notification-channel"; import {useOrganizationPermissions} from "@/features/organizations/hooks/use-organization-permissions"; import {StorageChannel} from "@/db/schema/12_storage-channel"; import { SettingsOrganizationMembersTable } from "@/features/organizations/components/organization-members-table"; import { OrganizationNotifiersTab } from "@/features/organizations/components/organization-notifiers-tab"; import { OrganizationStoragesTab } from "@/features/organizations/components/organization-storages-tab"; import { OrganizationAgentsTab } from "@/features/organizations/components/organization-agents-tab"; import {Agent} from "@/db/schema/08_agent"; export type OrganizationTabsProps = { organization: OrganizationWithMembers; notificationChannels: NotificationChannel[]; storageChannels: StorageChannel[]; activeMember: MemberWithUser; agents: Agent[] }; export const OrganizationTabs = ({ activeMember, organization, notificationChannels, storageChannels, agents }: OrganizationTabsProps) => { const router = useRouter(); const searchParams = useSearchParams(); const [tab, setTab] = useState(() => searchParams.get("tab") ?? "users"); const { canManageNotifications, canManageStorages } = useOrganizationPermissions(activeMember); useEffect(() => { const newTab = searchParams.get("tab") ?? "users"; setTab(newTab); }, [searchParams]); const handleChangeTab = (value: string) => { router.push(`?tab=${value}`); }; return (
{(canManageNotifications && canManageStorages) ? Users Notifiers Storages Agents : }
); };