import React from 'react'; import { numberWithCommas } from 'App/utils'; import withPermissions from 'HOCs/withPermissions'; import FFlagsListHeader from 'Components/FFlags/FFlagsListHeader'; import AnimatedSVG, { ICONS } from 'Shared/AnimatedSVG/AnimatedSVG'; import { Loader, NoContent, Pagination } from 'UI'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import Select from 'Shared/Select'; import usePageTitle from '@/hooks/usePageTitle'; import FFlagItem from './FFlagItem'; import { useTranslation } from 'react-i18next'; function FFlagsList({ siteId }: { siteId: string }) { const { t } = useTranslation(); usePageTitle('Feature Flags - OpenReplay'); const { featureFlagsStore, userStore } = useStore(); React.useEffect(() => { void featureFlagsStore.fetchFlags(); void userStore.fetchUsers(); }, []); return (
{t('Status:')} { featureFlagsStore.setSort({ query: '', order: value.value }); void featureFlagsStore.fetchFlags(); }} />
{featureFlagsStore.sort.query === '' ? t("You haven't created any feature flags yet") : t('No matching results')}
} subtext={ featureFlagsStore.sort.query === '' ? (
{t( 'Use feature flags to deploy and rollback new functionality with ease.', )}
) : null } >
{t('Key')}
{t('Last modified')}
{t('By')}
{t('Status')}
{featureFlagsStore.flags.map((flag) => ( ))}
{t('Showing')}{' '} {(featureFlagsStore.page - 1) * featureFlagsStore.pageSize + 1} {' '} {t('to')}{' '} {(featureFlagsStore.page - 1) * featureFlagsStore.pageSize + featureFlagsStore.flags.length} {' '} {t('of')}{' '} {numberWithCommas(featureFlagsStore.total)} {' '} {t('Feature Flags.')}
featureFlagsStore.setPage(page)} limit={featureFlagsStore.pageSize} debounceRequest={100} />
); } export default withPermissions(['FEATURE_FLAGS'])(observer(FFlagsList));