import { useState } from "react"; import { useQuery } from "@tanstack/react-query"; import { DashboardLayout } from "@/layouts/dashboard-layout"; import { DataTable } from "@/components/ui/data-table"; import { Button } from "@/components/ui/button"; import { Plus, FileDown, FileUp } from "lucide-react"; import { AdDomain, LdapConnection } from "@shared/schema"; import { Badge } from "@/components/ui/badge"; export default function DomainsPage() { const [selectedConnection, setSelectedConnection] = useState(null); const [pageIndex, setPageIndex] = useState(0); const [pageSize, setPageSize] = useState(10); const { data: connections = [], isLoading: isLoadingConnections } = useQuery({ queryKey: ["/api/ldap-connections"], }); const { data: domains = [], isLoading: isLoadingDomains } = useQuery({ queryKey: [ `/api/connections/${selectedConnection}/ad-domains`, { select: "id,name,distinguishedName,netBIOSName,forestName,domainFunctionality" } ], enabled: !!selectedConnection, }); const columns = [ { header: "Domain Name", accessorKey: "name", }, { header: "NetBIOS Name", accessorKey: "netBIOSName", }, { header: "Forest Name", accessorKey: "forestName", }, { header: "Functionality Level", accessorKey: "domainFunctionality", }, { header: "Distinguished Name", accessorKey: "distinguishedName", cell: (row: AdDomain) => (
{row.distinguishedName}
), }, ]; return (
{connections.map((connection) => ( setSelectedConnection(connection.id)} > {connection.name} ))} {connections.length === 0 && !isLoadingConnections && (
No LDAP connections available. Add a connection first.
)}
); }