From 966bfccbd746bd4a588ccc4ccfcea174241ba009 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Fri, 19 Aug 2022 12:34:11 +0800 Subject: [PATCH] Hide vault ext behind feature flag --- .../Database/Extensions/ExtensionCard.tsx | 33 ------------------- .../Extensions/Extensions.constants.ts | 2 -- .../Database/Extensions/Extensions.tsx | 9 +++-- 3 files changed, 7 insertions(+), 37 deletions(-) diff --git a/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx b/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx index 5793cba5bbb..4914d57a18f 100644 --- a/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx +++ b/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx @@ -4,7 +4,6 @@ import { Badge, IconLoader, Toggle } from '@supabase/ui' import { useStore } from 'hooks' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' -import { EXTENSIONS_IN_OWN_SCHEMA } from './Extensions.constants' import EnableExtensionModal from './EnableExtensionModal' interface Props { @@ -20,38 +19,6 @@ const ExtensionCard: FC = ({ extension }) => { async function enableExtension() { return setShowConfirmEnableModal(true) - - // [Joshen] Keeping this for now in case we need a reference - // confirmAlert({ - // title: 'Confirm to enable extension', - // message: `Are you sure you want to turn ON "${extension.name}" extension?`, - // onAsyncConfirm: async () => { - // try { - // setLoading(true) - // const response = await meta.extensions.create({ - // name: extension.name, - // schema: 'extensions', - // version: extension.default_version, - // cascade: true, - // }) - // if (response.error) { - // throw response.error - // } else { - // ui.setNotification({ - // category: 'success', - // message: `${extension.name.toUpperCase()} is on.`, - // }) - // } - // } catch (error: any) { - // ui.setNotification({ - // category: 'error', - // message: `Failed to toggle ${extension.name.toUpperCase()}: ${error.message}`, - // }) - // } finally { - // setLoading(false) - // } - // }, - // }) } async function disableExtension() { diff --git a/studio/components/interfaces/Database/Extensions/Extensions.constants.ts b/studio/components/interfaces/Database/Extensions/Extensions.constants.ts index 70644025c5d..0816f74ffca 100644 --- a/studio/components/interfaces/Database/Extensions/Extensions.constants.ts +++ b/studio/components/interfaces/Database/Extensions/Extensions.constants.ts @@ -12,5 +12,3 @@ export const HIDDEN_EXTENSIONS = [ 'pg_visibility', 'pgstattuple', ] - -export const EXTENSIONS_IN_OWN_SCHEMA = ['postgis', 'pgsodium', 'vault'] diff --git a/studio/components/interfaces/Database/Extensions/Extensions.tsx b/studio/components/interfaces/Database/Extensions/Extensions.tsx index 5b8fdb73ee4..1077cf73d57 100644 --- a/studio/components/interfaces/Database/Extensions/Extensions.tsx +++ b/studio/components/interfaces/Database/Extensions/Extensions.tsx @@ -3,7 +3,7 @@ import { observer } from 'mobx-react-lite' import { partition, isNull } from 'lodash' import { Input, IconSearch } from '@supabase/ui' -import { useStore } from 'hooks' +import { useStore, useFlag } from 'hooks' import ExtensionCard from './ExtensionCard' import { HIDDEN_EXTENSIONS } from './Extensions.constants' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' @@ -14,12 +14,17 @@ const Extensions: FC = ({}) => { const { meta } = useStore() const [filterString, setFilterString] = useState('') + const enableVaultExtension = useFlag('vaultExtension') + const hiddenExtensions = enableVaultExtension + ? HIDDEN_EXTENSIONS + : HIDDEN_EXTENSIONS.concat(['vault']) + const extensions = filterString.length === 0 ? meta.extensions.list() : meta.extensions.list((ext: any) => ext.name.includes(filterString)) const extensionsWithoutHidden = extensions.filter( - (ext: any) => !HIDDEN_EXTENSIONS.includes(ext.name) + (ext: any) => !hiddenExtensions.includes(ext.name) ) const [enabledExtensions, disabledExtensions] = partition( extensionsWithoutHidden,