mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	refactor: wait for UI config for CO flag (#781)
This commit is contained in:
		
							parent
							
								
									5646d0cd96
								
							
						
					
					
						commit
						f0aa764d3e
					
				@ -52,9 +52,14 @@ export const FeatureStrategyForm = ({
 | 
			
		||||
    const StrategyIcon = getFeatureStrategyIcon(strategy.name ?? '');
 | 
			
		||||
    const strategyName = formatStrategyName(strategy.name ?? '');
 | 
			
		||||
    const { hasAccess } = useContext(AccessContext);
 | 
			
		||||
    const { uiConfig } = useUiConfig();
 | 
			
		||||
    const { push } = useHistory();
 | 
			
		||||
 | 
			
		||||
    const {
 | 
			
		||||
        uiConfig,
 | 
			
		||||
        error: uiConfigError,
 | 
			
		||||
        loading: uiConfigLoading,
 | 
			
		||||
    } = useUiConfig();
 | 
			
		||||
 | 
			
		||||
    const onCancel = () => {
 | 
			
		||||
        push(formatFeaturePath(feature.project, feature.name));
 | 
			
		||||
    };
 | 
			
		||||
@ -74,6 +79,15 @@ export const FeatureStrategyForm = ({
 | 
			
		||||
        strategy.constraints
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    if (uiConfigError) {
 | 
			
		||||
        throw uiConfigError;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Wait for uiConfig to load for the correct uiConfig.flags.CO value.
 | 
			
		||||
    if (uiConfigLoading) {
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TODO(olav): Remove uiConfig.flags.CO when new constraints are released.
 | 
			
		||||
    const FeatureStrategyConstraintsImplementation = uiConfig.flags.CO
 | 
			
		||||
        ? FeatureStrategyConstraints2
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,4 @@
 | 
			
		||||
import useSWR, { mutate, SWRConfiguration } from 'swr';
 | 
			
		||||
import { useState, useEffect } from 'react';
 | 
			
		||||
import { formatApiPath } from '../../../../utils/format-path';
 | 
			
		||||
import { defaultValue } from './defaultValue';
 | 
			
		||||
import { IUiConfig } from '../../../../interfaces/uiConfig';
 | 
			
		||||
@ -20,7 +19,6 @@ const useUiConfig = (options: SWRConfiguration = {}) => {
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const { data, error } = useSWR<IUiConfig>(REQUEST_KEY, fetcher, options);
 | 
			
		||||
    const [loading, setLoading] = useState(!error && !data);
 | 
			
		||||
 | 
			
		||||
    const refetch = () => {
 | 
			
		||||
        mutate(REQUEST_KEY);
 | 
			
		||||
@ -35,14 +33,10 @@ const useUiConfig = (options: SWRConfiguration = {}) => {
 | 
			
		||||
        return true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    useEffect(() => {
 | 
			
		||||
        setLoading(!error && !data);
 | 
			
		||||
    }, [data, error]);
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
        uiConfig: { ...defaultValue, ...data },
 | 
			
		||||
        loading: !error && !data,
 | 
			
		||||
        error,
 | 
			
		||||
        loading,
 | 
			
		||||
        refetch,
 | 
			
		||||
        isOss,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user