Files
supabase/apps/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectButton.tsx
T
6f5982d635 Chore/update churn survey (#36722)
* update cancellation reasons

* update texts

* randomise options and only single select reasons

* label overrides and reason readability

* minor fixes

* fix reasons sending

* Fixes

* Adjust tooltip side

* improve header description

* add a label for radio options

* wrap shuffledReasons in useState so it doesn't randomly shuffle

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-06-29 17:58:39 +08:00

44 lines
1.3 KiB
TypeScript

import { PermissionAction } from '@supabase/shared-types/out/constants'
import { useState } from 'react'
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
import { ButtonTooltip } from 'components/ui/ButtonTooltip'
import { useCheckPermissions } from 'hooks/misc/useCheckPermissions'
import { DeleteProjectModal } from './DeleteProjectModal'
export interface DeleteProjectButtonProps {
type?: 'danger' | 'default'
}
const DeleteProjectButton = ({ type = 'danger' }: DeleteProjectButtonProps) => {
const { project } = useProjectContext()
const [isOpen, setIsOpen] = useState(false)
const canDeleteProject = useCheckPermissions(PermissionAction.UPDATE, 'projects', {
resource: { project_id: project?.id },
})
return (
<>
<ButtonTooltip
type={type}
disabled={!canDeleteProject}
onClick={() => setIsOpen(true)}
tooltip={{
content: {
side: 'bottom',
text: !canDeleteProject
? 'You need additional permissions to delete this project'
: undefined,
},
}}
>
Delete project
</ButtonTooltip>
<DeleteProjectModal visible={isOpen} onClose={() => setIsOpen(false)} />
</>
)
}
export default DeleteProjectButton