Skip to content

Commit 2513b1c

Browse files
committed
refactor DiskSizeConfigurationModal
1 parent 1c01292 commit 2513b1c

3 files changed

Lines changed: 223 additions & 245 deletions

File tree

apps/studio/components/interfaces/Settings/Database/DiskSizeConfiguration.tsx

Lines changed: 4 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,18 @@
1-
import { PermissionAction } from '@supabase/shared-types/out/constants'
21
import { ExternalLink } from 'lucide-react'
32
import Link from 'next/link'
4-
import { parseAsBoolean, useQueryState } from 'nuqs'
5-
import { toast } from 'sonner'
63

74
import { useParams } from 'common'
8-
import { DocsButton } from 'components/ui/DocsButton'
9-
import { Markdown } from 'components/interfaces/Markdown'
10-
import DiskSizeConfigurationModal from 'components/interfaces/Settings/Database/DiskSizeConfigurationModal'
11-
import { ButtonTooltip } from 'components/ui/ButtonTooltip'
12-
import { useProjectDiskResizeMutation } from 'data/config/project-disk-resize-mutation'
135
import { useDatabaseSizeQuery } from 'data/database/database-size-query'
14-
import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions'
156
import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization'
167
import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject'
178
import { formatBytes } from 'lib/helpers'
9+
import { DocsButton } from 'components/ui/DocsButton'
10+
import { Markdown } from 'components/interfaces/Markdown'
1811
import { ScaffoldSection, ScaffoldSectionTitle } from 'components/layouts/Scaffold'
1912
import { Button, Card, CardHeader, CardContent } from 'ui'
2013
import { Admonition } from 'ui-patterns'
2114
import { FormLayout } from 'ui-patterns/form/Layout/FormLayout'
15+
import { DiskSizeConfigurationModal } from './DiskSizeConfigurationModal'
2216

2317
export interface DiskSizeConfigurationProps {
2418
disabled?: boolean
@@ -28,28 +22,6 @@ export const DiskSizeConfiguration = ({ disabled = false }: DiskSizeConfiguratio
2822
const { ref: projectRef } = useParams()
2923
const { data: project } = useSelectedProjectQuery()
3024
const { data: organization } = useSelectedOrganizationQuery()
31-
const [showIncreaseDiskSizeModal, setShowIncreaseDiskSizeModal] = useQueryState(
32-
`show_increase_disk_size_modal`,
33-
parseAsBoolean.withDefault(false)
34-
)
35-
36-
const { can: canUpdateDiskSizeConfig } = useAsyncCheckProjectPermissions(
37-
PermissionAction.UPDATE,
38-
'projects',
39-
{
40-
resource: {
41-
project_id: project?.id,
42-
},
43-
}
44-
)
45-
46-
const { isLoading: isUpdatingDiskSize } = useProjectDiskResizeMutation({
47-
onSuccess: (_, variables) => {
48-
toast.success(`Successfully updated disk size to ${variables.volumeSize} GB`)
49-
setShowIncreaseDiskSizeModal(false)
50-
},
51-
})
52-
5325
const currentDiskSize = project?.volumeSizeGb ?? 0
5426

5527
const { data } = useDatabaseSizeQuery({
@@ -114,21 +86,7 @@ Read more about [disk management](https://supabase.com/docs/guides/platform/data
11486
label="Manage Disk Size"
11587
description="Supabase employs auto-scaling storage and allows for manual disk size adjustments when necessary."
11688
>
117-
<ButtonTooltip
118-
type="default"
119-
disabled={!canUpdateDiskSizeConfig || disabled}
120-
onClick={() => setShowIncreaseDiskSizeModal(true)}
121-
tooltip={{
122-
content: {
123-
side: 'bottom',
124-
text: !canUpdateDiskSizeConfig
125-
? 'You need additional permissions to increase the disk size'
126-
: undefined,
127-
},
128-
}}
129-
>
130-
Increase disk size
131-
</ButtonTooltip>
89+
<DiskSizeConfigurationModal disabled={disabled} />
13290
</FormLayout>
13391
</CardContent>
13492
</Card>
@@ -162,12 +120,6 @@ Read more about [disk management](https://supabase.com/docs/guides/platform/data
162120
}
163121
/>
164122
)}
165-
166-
<DiskSizeConfigurationModal
167-
visible={showIncreaseDiskSizeModal}
168-
loading={isUpdatingDiskSize}
169-
hideModal={setShowIncreaseDiskSizeModal}
170-
/>
171123
</ScaffoldSection>
172124
)
173125
}

0 commit comments

Comments
 (0)