mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-18 01:18:23 +02:00
Revert "fix: laggy switch" (#3815)
Reverts Unleash/unleash#3814 forcing merge to fix issue in demo instance: https://github.com/Unleash/unleash/pull/3815#issuecomment-1554712970
This commit is contained in:
parent
0c538f070a
commit
6e847d0015
@ -1,4 +1,4 @@
|
|||||||
import { useCallback, useState, VFC } from 'react';
|
import { useState, VFC } from 'react';
|
||||||
import { Box, styled } from '@mui/material';
|
import { Box, styled } from '@mui/material';
|
||||||
import PermissionSwitch from 'component/common/PermissionSwitch/PermissionSwitch';
|
import PermissionSwitch from 'component/common/PermissionSwitch/PermissionSwitch';
|
||||||
import { UPDATE_FEATURE_ENVIRONMENT } from 'component/providers/AccessProvider/permissions';
|
import { UPDATE_FEATURE_ENVIRONMENT } from 'component/providers/AccessProvider/permissions';
|
||||||
@ -68,8 +68,9 @@ export const FeatureToggleSwitch: VFC<IFeatureToggleSwitchProps> = ({
|
|||||||
onToggle(projectId, feature.name, environmentName, !isChecked);
|
onToggle(projectId, feature.name, environmentName, !isChecked);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleToggleEnvironmentOn = useCallback(
|
const handleToggleEnvironmentOn = async (
|
||||||
async (shouldActivateDisabled = false) => {
|
shouldActivateDisabled = false
|
||||||
|
) => {
|
||||||
try {
|
try {
|
||||||
setIsChecked(!isChecked);
|
setIsChecked(!isChecked);
|
||||||
await toggleFeatureEnvironmentOn(
|
await toggleFeatureEnvironmentOn(
|
||||||
@ -95,18 +96,9 @@ export const FeatureToggleSwitch: VFC<IFeatureToggleSwitchProps> = ({
|
|||||||
}
|
}
|
||||||
rollbackIsChecked();
|
rollbackIsChecked();
|
||||||
}
|
}
|
||||||
},
|
};
|
||||||
[
|
|
||||||
rollbackIsChecked,
|
|
||||||
setToastApiError,
|
|
||||||
showInfoBox,
|
|
||||||
setToastData,
|
|
||||||
toggleFeatureEnvironmentOn,
|
|
||||||
setIsChecked,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleToggleEnvironmentOff = useCallback(async () => {
|
const handleToggleEnvironmentOff = async () => {
|
||||||
try {
|
try {
|
||||||
setIsChecked(!isChecked);
|
setIsChecked(!isChecked);
|
||||||
await toggleFeatureEnvironmentOff(
|
await toggleFeatureEnvironmentOff(
|
||||||
@ -124,27 +116,9 @@ export const FeatureToggleSwitch: VFC<IFeatureToggleSwitchProps> = ({
|
|||||||
setToastApiError(formatUnknownError(error));
|
setToastApiError(formatUnknownError(error));
|
||||||
rollbackIsChecked();
|
rollbackIsChecked();
|
||||||
}
|
}
|
||||||
}, [
|
};
|
||||||
toggleFeatureEnvironmentOff,
|
|
||||||
setToastData,
|
|
||||||
setToastApiError,
|
|
||||||
rollbackIsChecked,
|
|
||||||
setIsChecked,
|
|
||||||
]);
|
|
||||||
|
|
||||||
const featureHasOnlyDisabledStrategies = useCallback(() => {
|
const onClick = async (e: React.MouseEvent) => {
|
||||||
const featureEnvironment = feature?.environments?.find(
|
|
||||||
env => env.name === environmentName
|
|
||||||
);
|
|
||||||
return (
|
|
||||||
featureEnvironment?.strategies &&
|
|
||||||
featureEnvironment?.strategies?.length > 0 &&
|
|
||||||
featureEnvironment?.strategies?.every(strategy => strategy.disabled)
|
|
||||||
);
|
|
||||||
}, [environmentName]);
|
|
||||||
|
|
||||||
const onClick = useCallback(
|
|
||||||
async (e: React.MouseEvent) => {
|
|
||||||
if (isChangeRequestConfigured(environmentName)) {
|
if (isChangeRequestConfigured(environmentName)) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (featureHasOnlyDisabledStrategies()) {
|
if (featureHasOnlyDisabledStrategies()) {
|
||||||
@ -169,41 +143,36 @@ export const FeatureToggleSwitch: VFC<IFeatureToggleSwitchProps> = ({
|
|||||||
} else {
|
} else {
|
||||||
await handleToggleEnvironmentOn();
|
await handleToggleEnvironmentOn();
|
||||||
}
|
}
|
||||||
},
|
};
|
||||||
[
|
|
||||||
isChangeRequestConfigured,
|
|
||||||
onChangeRequestToggle,
|
|
||||||
handleToggleEnvironmentOff,
|
|
||||||
setShowEnabledDialog,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
const onActivateStrategies = useCallback(async () => {
|
const onActivateStrategies = async () => {
|
||||||
if (isChangeRequestConfigured(environmentName)) {
|
if (isChangeRequestConfigured(environmentName)) {
|
||||||
onChangeRequestToggle(feature.name, environmentName, !value, true);
|
onChangeRequestToggle(feature.name, environmentName, !value, true);
|
||||||
} else {
|
} else {
|
||||||
await handleToggleEnvironmentOn(true);
|
await handleToggleEnvironmentOn(true);
|
||||||
}
|
}
|
||||||
setShowEnabledDialog(false);
|
setShowEnabledDialog(false);
|
||||||
}, [
|
};
|
||||||
handleToggleEnvironmentOn,
|
|
||||||
setShowEnabledDialog,
|
|
||||||
isChangeRequestConfigured,
|
|
||||||
onChangeRequestToggle,
|
|
||||||
]);
|
|
||||||
|
|
||||||
const onAddDefaultStrategy = useCallback(async () => {
|
const onAddDefaultStrategy = async () => {
|
||||||
if (isChangeRequestConfigured(environmentName)) {
|
if (isChangeRequestConfigured(environmentName)) {
|
||||||
onChangeRequestToggle(feature.name, environmentName, !value, false);
|
onChangeRequestToggle(feature.name, environmentName, !value, false);
|
||||||
} else {
|
} else {
|
||||||
await handleToggleEnvironmentOn();
|
await handleToggleEnvironmentOn();
|
||||||
}
|
}
|
||||||
setShowEnabledDialog(false);
|
setShowEnabledDialog(false);
|
||||||
}, [
|
};
|
||||||
isChangeRequestConfigured,
|
|
||||||
onChangeRequestToggle,
|
const featureHasOnlyDisabledStrategies = () => {
|
||||||
handleToggleEnvironmentOn,
|
const featureEnvironment = feature?.environments?.find(
|
||||||
]);
|
env => env.name === environmentName
|
||||||
|
);
|
||||||
|
return (
|
||||||
|
featureEnvironment?.strategies &&
|
||||||
|
featureEnvironment?.strategies?.length > 0 &&
|
||||||
|
featureEnvironment?.strategies?.every(strategy => strategy.disabled)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const key = `${feature.name}-${environmentName}`;
|
const key = `${feature.name}-${environmentName}`;
|
||||||
|
|
||||||
@ -219,7 +188,7 @@ export const FeatureToggleSwitch: VFC<IFeatureToggleSwitchProps> = ({
|
|||||||
? `Disable feature in ${environmentName}`
|
? `Disable feature in ${environmentName}`
|
||||||
: `Enable feature in ${environmentName}`
|
: `Enable feature in ${environmentName}`
|
||||||
}
|
}
|
||||||
checked={isChecked}
|
checked={value}
|
||||||
environmentId={environmentName}
|
environmentId={environmentName}
|
||||||
projectId={projectId}
|
projectId={projectId}
|
||||||
permission={UPDATE_FEATURE_ENVIRONMENT}
|
permission={UPDATE_FEATURE_ENVIRONMENT}
|
||||||
|
Loading…
Reference in New Issue
Block a user