import { Link } from 'react-router-dom'; import { Box } from '@mui/material'; import { SectionSeparator } from 'component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/SectionSeparator/SectionSeparator'; import useFeatureStrategyApi from 'hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi'; import useToast from 'hooks/useToast'; import { useFeature } from 'hooks/api/getters/useFeature/useFeature'; import { FeatureStrategyMenu } from '../FeatureStrategyMenu/FeatureStrategyMenu'; import { PresetCard } from './PresetCard/PresetCard'; import { useStyles } from './FeatureStrategyEmpty.styles'; import { formatUnknownError } from 'utils/formatUnknownError'; import { useFeatureImmutable } from 'hooks/api/getters/useFeature/useFeatureImmutable'; import { getFeatureStrategyIcon } from 'utils/strategyNames'; interface IFeatureStrategyEmptyProps { projectId: string; featureId: string; environmentId: string; } export const FeatureStrategyEmpty = ({ projectId, featureId, environmentId, }: IFeatureStrategyEmptyProps) => { const { classes: styles } = useStyles(); const { addStrategyToFeature } = useFeatureStrategyApi(); const { setToastData, setToastApiError } = useToast(); const { refetchFeature } = useFeature(projectId, featureId); const { refetchFeature: refetchFeatureImmutable } = useFeatureImmutable( projectId, featureId ); const onAfterAddStrategy = () => { refetchFeature(); refetchFeatureImmutable(); setToastData({ title: 'Strategy created', text: 'Successfully created strategy', type: 'success', }); }; const onAddSimpleStrategy = async () => { try { await addStrategyToFeature(projectId, featureId, environmentId, { name: 'default', parameters: {}, constraints: [], }); onAfterAddStrategy(); } catch (error) { setToastApiError(formatUnknownError(error)); } }; const onAddGradualRolloutStrategy = async () => { try { await addStrategyToFeature(projectId, featureId, environmentId, { name: 'flexibleRollout', parameters: { rollout: '50', stickiness: 'default', }, constraints: [], }); onAfterAddStrategy(); } catch (error) { setToastApiError(formatUnknownError(error)); } }; return (
You have not defined any strategies yet.

Strategies added in this environment will only be executed if the SDK is using an{' '} API key configured for this environment.

Or use a strategy template The standard strategy is strictly on/off for your entire userbase. Roll out to a percentage of your userbase.
); };