CoolFace
Apppublic

Leon4gr45/builder

sourceHugging Facemitupdated 2d agoView on Hugging Face
0likes
index.tsx97 linesDownload Raw Back to database-manager
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