1
0
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:
Gastón Fournier 2023-05-19 16:55:14 +02:00 committed by GitHub
parent 0c538f070a
commit 6e847d0015
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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}