import { FC, useState } from 'react' import { observer } from 'mobx-react-lite' import { partition, isNull } from 'lodash' import { Input, IconSearch } from '@supabase/ui' import { useStore, useFlag } from 'hooks' import ExtensionCard from './ExtensionCard' import { HIDDEN_EXTENSIONS } from './Extensions.constants' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' interface Props {} 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) => !hiddenExtensions.includes(ext.name) ) const [enabledExtensions, disabledExtensions] = partition( extensionsWithoutHidden, (ext: any) => !isNull(ext.installed_version) ) return (
setFilterString(e.target.value)} icon={} />
{extensions.length === 0 && }
{enabledExtensions.length > 0 && (

Enabled extensions

{enabledExtensions.map((extension) => ( ))}
)} {disabledExtensions.length > 0 && (

Available extensions

{disabledExtensions.map((extension) => ( ))}
)}
) } export default observer(Extensions)