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;