Leon4gr45/builder
0
1'use client';2 3import React, { useState } from 'react';4import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';5import { SchemaViewer } from './schema-viewer';6import { SqlEditor } from './sql-editor';7import { FunctionsManager } from './functions-manager';8import { ServerFunctionsManager } from './server-functions-manager';9import { SecretsManager } from './secrets-manager';10import { ScheduledFunctionsManager } from './scheduled-functions-manager';11import { LogsViewer } from './logs-viewer';12import { Database, Code2, Terminal, ScrollText, Wrench, Key, Clock } from 'lucide-react';13 14interface DatabaseManagerProps {15 deploymentId: string;16 workspaceId?: string;17}18 19export function DatabaseManager({ deploymentId, workspaceId }: DatabaseManagerProps) {20 const [activeTab, setActiveTab] = useState('schema');21 22 return (23 <div className="h-full flex flex-col">24 <Tabs value={activeTab} onValueChange={setActiveTab} className="flex-1 flex flex-col">25 <TabsList className="grid w-full grid-cols-7">26 <TabsTrigger value="schema" className="flex items-center gap-1.5">27 <Database className="h-3.5 w-3.5" />28 Schema29 </TabsTrigger>30 <TabsTrigger value="query" className="flex items-center gap-1.5">31 <Terminal className="h-3.5 w-3.5" />32 SQL33 </TabsTrigger>34 <TabsTrigger value="functions" className="flex items-center gap-1.5">35 <Code2 className="h-3.5 w-3.5" />36 Functions37 </TabsTrigger>38 <TabsTrigger value="helpers" className="flex items-center gap-1.5">39 <Wrench className="h-3.5 w-3.5" />40 Helpers41 </TabsTrigger>42 <TabsTrigger value="secrets" className="flex items-center gap-1.5">43 <Key className="h-3.5 w-3.5" />44 Secrets45 </TabsTrigger>46 <TabsTrigger value="schedules" className="flex items-center gap-1.5">47 <Clock className="h-3.5 w-3.5" />48 Schedules49 </TabsTrigger>50 <TabsTrigger value="logs" className="flex items-center gap-1.5">51 <ScrollText className="h-3.5 w-3.5" />52 Logs53 </TabsTrigger>54 </TabsList>55 56 <div className="flex-1 overflow-hidden mt-4">57 <TabsContent value="schema" className="h-full m-0">58 <SchemaViewer deploymentId={deploymentId} workspaceId={workspaceId} />59 </TabsContent>60 61 <TabsContent value="query" className="h-full m-0">62 <SqlEditor deploymentId={deploymentId} workspaceId={workspaceId} />63 </TabsContent>64 65 <TabsContent value="functions" className="h-full m-0">66 <FunctionsManager deploymentId={deploymentId} workspaceId={workspaceId} />67 </TabsContent>68 69 <TabsContent value="helpers" className="h-full m-0">70 <ServerFunctionsManager deploymentId={deploymentId} workspaceId={workspaceId} />71 </TabsContent>72 73 <TabsContent value="secrets" className="h-full m-0">74 <SecretsManager deploymentId={deploymentId} workspaceId={workspaceId} />75 </TabsContent>76 77 <TabsContent value="schedules" className="h-full m-0">78 <ScheduledFunctionsManager deploymentId={deploymentId} workspaceId={workspaceId} />79 </TabsContent>80 81 <TabsContent value="logs" className="h-full m-0">82 <LogsViewer deploymentId={deploymentId} workspaceId={workspaceId} />83 </TabsContent>84 </div>85 </Tabs>86 </div>87 );88}89 90export { SchemaViewer } from './schema-viewer';91export { SqlEditor } from './sql-editor';92export { FunctionsManager } from './functions-manager';93export { ServerFunctionsManager } from './server-functions-manager';94export { SecretsManager } from './secrets-manager';95export { ScheduledFunctionsManager } from './scheduled-functions-manager';96export { LogsViewer } from './logs-viewer';97 