Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useFormContext } from 'react-hook-form';
import { useFormContext, useWatch } from 'react-hook-form';
import { Trans } from 'react-i18next';
import { getLanguage, Language, useTranslation } from 'i18n';
import { FeatureVariation } from '@types';
Expand Down Expand Up @@ -26,9 +26,12 @@ const makeVariationTrigger = (

const DefaultVariations = () => {
const { t } = useTranslation(['form', 'common', 'table']);
const { control, watch } = useFormContext<FlagFormSchema>();
const { control } = useFormContext<FlagFormSchema>();
const isJapaneseLanguage = getLanguage() === Language.JAPANESE;
const currentVariations = watch('variations') as FeatureVariation[];
const currentVariations = useWatch({
control,
name: 'variations'
}) as FeatureVariation[];

const options =
currentVariations?.map((item, index) => ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@ const buttonActiveCls =
const VariationsSwitch = () => {
const { t } = useTranslation(['form', 'common']);

const { watch, setValue, resetField } = useFormContext<FlagFormSchema>();
const { watch, getValues, setValue, resetField } =
useFormContext<FlagFormSchema>();

const currentSwitchVariation = watch('switchVariationType');
const currentVariationType = watch('variationType');
const [currentSwitchVariation, currentVariationType] = watch([
'switchVariationType',
'variationType'
]);
const isInitialMount = useRef(true);

const handleSwitchVariation = useCallback(
Expand All @@ -31,13 +34,13 @@ const VariationsSwitch = () => {
isInitial = false,
shouldRegenerateIds = true
) => {
const currentOnVariationId = watch('defaultOnVariation');
const currentOffVariationId = watch('defaultOffVariation');
const currentOnVariationId = getValues('defaultOnVariation');
const currentOffVariationId = getValues('defaultOffVariation');
const onVariationId = shouldRegenerateIds ? uuid() : currentOnVariationId;
const offVariation = shouldRegenerateIds ? uuid() : currentOffVariationId;
const setValueOptions = isInitial ? { shouldDirty: false } : {};

const previousSwitchVariation = watch('switchVariationType');
const previousSwitchVariation = getValues('switchVariationType');

resetField('variations');
setValue('switchVariationType', value, setValueOptions);
Expand All @@ -48,7 +51,7 @@ const VariationsSwitch = () => {

// Handle EXPERIMENT template
if (value === FlagSwitchVariationType.EXPERIMENT) {
const currentVariations = watch('variations');
const currentVariations = getValues('variations');
const thirdVariationId =
shouldRegenerateIds || !currentVariations?.[2]?.id
? uuid()
Expand All @@ -62,7 +65,7 @@ const VariationsSwitch = () => {
setValue('variationType', 'STRING', setValueOptions);
}

const variationTypeToUse = watch('variationType');
const variationTypeToUse = getValues('variationType');

switch (variationTypeToUse) {
case 'BOOLEAN':
Expand Down Expand Up @@ -204,7 +207,7 @@ const VariationsSwitch = () => {

// Handle CUSTOM template - set defaults based on current variationType
if (value === FlagSwitchVariationType.CUSTOM) {
const currentVariationType = watch('variationType');
const currentVariationType = getValues('variationType');

setValue('defaultOnVariation', onVariationId, setValueOptions);
setValue('defaultOffVariation', offVariation, setValueOptions);
Expand Down Expand Up @@ -326,7 +329,7 @@ const VariationsSwitch = () => {
const isKillSwitch = value === FlagSwitchVariationType.KILL_SWITCH;

if (isRelease || isKillSwitch) {
const currentVariationType = watch('variationType');
const currentVariationType = getValues('variationType');
const onName = isRelease ? t('available') : t('enabled');
const offName = isRelease ? t('unavailable') : t('disabled');

Expand Down Expand Up @@ -442,7 +445,7 @@ const VariationsSwitch = () => {
}
}
},
[watch, setValue, resetField, t]
[getValues, setValue, resetField, t]
);

// Trigger CUSTOM template on initial mount
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import {
ControllerRenderProps,
FormProvider,
SubmitHandler,
useForm
useForm,
useWatch
} from 'react-hook-form';
import { experimentUpdater, ExperimentUpdaterParams } from '@api/experiment';
import { yupResolver } from '@hookform/resolvers/yup';
Expand Down Expand Up @@ -124,13 +125,12 @@ const ExperimentSettings = ({ experiment }: { experiment: Experiment }) => {
});

const {
watch,
formState: { isDirty, isValid, isSubmitting }
} = form;
useUnsavedLeavePage({
isShow: isDirty && !isSubmitting
});
const featureId = watch('featureId');
const featureId = useWatch({ control: form.control, name: 'featureId' });

const variationOptions =
featureFlagOptions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import {
ControllerRenderProps,
FormProvider,
SubmitHandler,
useForm
useForm,
useWatch
} from 'react-hook-form';
import {
ExperimentCreateUpdateResponse,
Expand Down Expand Up @@ -203,14 +204,13 @@ const ExperimentCreateUpdateModal = ({
});

const {
watch,
formState: { isDirty, isSubmitting }
} = form;

useUnsavedLeavePage({
isShow: isDirty && !isSubmitting
});
const featureId = watch('featureId');
const featureId = useWatch({ control: form.control, name: 'featureId' });

const {
allAvailableFlags,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,10 @@ const PushCreateUpdateModal = ({

const { watch } = form;

const isEnabledTags = !!watch('environmentId');
const environmentId = watch('environmentId');
const isEnabledTags = !!environmentId;
const { data: tagCollection, isLoading: isLoadingTags } = useFetchTags({
environmentId: checkEnvironmentEmptyId(watch('environmentId')),
environmentId: checkEnvironmentEmptyId(environmentId),
entityType: 'FEATURE_FLAG',
options: {
enabled: isEnabledTags,
Expand Down