File size: 1,601 Bytes
8934ee3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import React, { useState } from 'react';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { Label } from '@/components/ui/label';
import {
Sheet,
SheetClose,
SheetContent,
SheetFooter,
SheetHeader,
SheetTitle,
SheetTrigger,
} from '@/components/ui/sheet';
interface AddTableProps {
onAddTable: (tableName: string) => void;
}
const AddTable: React.FC<AddTableProps> = ({ onAddTable }) => {
const [newTableName, setNewTableName] = useState('');
const handleAddTable = () => {
if (newTableName.trim()) {
onAddTable(newTableName);
setNewTableName('');
}
};
return (
<Sheet>
<SheetTrigger asChild>
<button className="rounded-sm px-3 py-1.5 text-sm font-medium text-red-500 hover:bg-gray-200">
+ Add
</button>
</SheetTrigger>
<SheetContent>
<SheetHeader>
<SheetTitle>Add Table</SheetTitle>
</SheetHeader>
<div className="grid grid-cols-4 items-center gap-4 py-4">
<Label htmlFor="name" className="text-right">
Name
</Label>
<Input
id="name"
value={newTableName}
onChange={(e) => setNewTableName(e.target.value)}
className="col-span-3"
/>
</div>
<SheetFooter>
<SheetClose asChild>
<Button type="submit" onClick={handleAddTable}>
Add
</Button>
</SheetClose>
</SheetFooter>
</SheetContent>
</Sheet>
);
};
export default AddTable;
|