CreateTableInstructionsDialog.tsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { useFlag } from 'common'
  2. import { ChevronDown, Plus } from 'lucide-react'
  3. import { useState } from 'react'
  4. import {
  5. Button,
  6. cn,
  7. Dialog,
  8. DialogContent,
  9. DialogDescription,
  10. DialogHeader,
  11. DialogTitle,
  12. DropdownMenu,
  13. DropdownMenuContent,
  14. DropdownMenuItem,
  15. DropdownMenuTrigger,
  16. } from 'ui'
  17. import { CreateTableInstructions } from './CreateTableInstructions'
  18. import { CreateTableSheet } from './CreateTableSheet'
  19. export const CreateTableInstructionsDialog = () => {
  20. const enableCreationOfTablesFromDashboard = useFlag('analyticsBucketsTableCreation')
  21. const [showModal, setShowModal] = useState(false)
  22. const [showSheet, setShowSheet] = useState(false)
  23. return (
  24. <>
  25. <div className="flex items-center">
  26. <Button
  27. type="primary"
  28. icon={<Plus />}
  29. className={cn(enableCreationOfTablesFromDashboard && 'rounded-r-none hover:z-10')}
  30. onClick={() => {
  31. if (enableCreationOfTablesFromDashboard) setShowSheet(true)
  32. else setShowModal(true)
  33. }}
  34. >
  35. Create table
  36. </Button>
  37. {enableCreationOfTablesFromDashboard && (
  38. <DropdownMenu>
  39. <DropdownMenuTrigger asChild>
  40. <Button type="primary" className="w-7 rounded-l-none -ml-px" icon={<ChevronDown />} />
  41. </DropdownMenuTrigger>
  42. <DropdownMenuContent className="w-48" align="end">
  43. <DropdownMenuItem onClick={() => setShowModal(true)}>Via Pyiceberg</DropdownMenuItem>
  44. </DropdownMenuContent>
  45. </DropdownMenu>
  46. )}
  47. </div>
  48. <Dialog open={showModal} onOpenChange={setShowModal}>
  49. <DialogContent size="xlarge">
  50. <DialogHeader>
  51. <DialogTitle>Adding tables to your Analytics Bucket</DialogTitle>
  52. <DialogDescription>
  53. Tables can be created or added to your bucket via Pyiceberg
  54. </DialogDescription>
  55. </DialogHeader>
  56. <CreateTableInstructions hideHeader className="rounded-t-none border-x-0 border-b-0" />
  57. </DialogContent>
  58. </Dialog>
  59. <CreateTableSheet open={showSheet} onOpenChange={setShowSheet} />
  60. </>
  61. )
  62. }