1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-24 01:18:01 +02:00

fix: update stickiness between tabs (#5991)

Fixes a bug where stickiness update to the main strategy would not propagate to strategy variants
This commit is contained in:
Mateusz Kwasniewski 2024-01-23 08:58:06 +01:00 committed by GitHub
parent 8458619d82
commit 5305c868e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 13 deletions

View File

@ -353,6 +353,25 @@ export const NewFeatureStrategyForm = ({
const showVariants = const showVariants =
strategy.parameters && 'stickiness' in strategy.parameters; strategy.parameters && 'stickiness' in strategy.parameters;
const stickiness =
strategy?.parameters && 'stickiness' in strategy?.parameters
? String(strategy.parameters.stickiness)
: 'default';
useEffect(() => {
setStrategy((prev) => ({
...prev,
variants: (strategy.variants || []).map((variant) => ({
stickiness,
name: variant.name,
weight: variant.weight,
payload: variant.payload,
weightType: variant.weightType,
})),
}));
}, [stickiness, JSON.stringify(strategy.variants)]);
return ( return (
<> <>
<StyledHeaderBox> <StyledHeaderBox>

View File

@ -42,7 +42,15 @@ export const NewStrategyVariants: FC<{
editable?: boolean; editable?: boolean;
}> = ({ strategy, setStrategy, projectId, environment, editable }) => { }> = ({ strategy, setStrategy, projectId, environment, editable }) => {
const { trackEvent } = usePlausibleTracker(); const { trackEvent } = usePlausibleTracker();
const [variantsEdit, setVariantsEdit] = useState<IFeatureVariantEdit[]>([]); const initialVariants = (strategy.variants || []).map((variant) => ({
...variant,
new: editable || false,
isValid: true,
id: uuidv4(),
overrides: [],
}));
const [variantsEdit, setVariantsEdit] =
useState<IFeatureVariantEdit[]>(initialVariants);
const theme = useTheme(); const theme = useTheme();
const stickiness = const stickiness =
@ -61,18 +69,6 @@ export const NewStrategyVariants: FC<{
}; };
}, [JSON.stringify(variantsEdit)]); }, [JSON.stringify(variantsEdit)]);
useEffect(() => {
setVariantsEdit(
(strategy.variants || []).map((variant) => ({
...variant,
new: editable || false,
isValid: true,
id: uuidv4(),
overrides: [],
})),
);
}, []);
useEffect(() => { useEffect(() => {
setStrategy((prev) => ({ setStrategy((prev) => ({
...prev, ...prev,