PgPartmanCallout.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { useState } from 'react'
  2. import { Button } from 'ui'
  3. import { Admonition } from 'ui-patterns'
  4. import { usePgPartmanStatus } from '../usePgPartmanStatus'
  5. import { EnableExtensionModal } from '@/components/interfaces/Database/Extensions/EnableExtensionModal'
  6. export function PgPartmanCallout() {
  7. const { pgPartmanExtension, isAvailable, isInstalled } = usePgPartmanStatus()
  8. const [showEnableModal, setShowEnableModal] = useState(false)
  9. if (!isAvailable || isInstalled) return null
  10. return (
  11. <div className="mx-5 my-2">
  12. <Admonition
  13. type="tip"
  14. title="pg_partman is now available"
  15. description="Unlock partitioned queues for automatic data retention, lower storage costs, and faster performance at scale."
  16. >
  17. <Button
  18. type="default"
  19. size="tiny"
  20. className="mt-2"
  21. onClick={() => setShowEnableModal(true)}
  22. >
  23. Enable pg_partman
  24. </Button>
  25. </Admonition>
  26. {pgPartmanExtension && (
  27. <EnableExtensionModal
  28. visible={showEnableModal}
  29. extension={pgPartmanExtension}
  30. onCancel={() => setShowEnableModal(false)}
  31. />
  32. )}
  33. </div>
  34. )
  35. }