/
githubmirror
/
ydb-embedded-ui
Обзор
Документация
Войти
/
githubmirror
/
ydb-embedded-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/containers/Configs/useConfigsQueryParams.ts
61 строка
2 KB
Hellen
feat(Configs): add info about full config (#2921)
29 сен 2025, 18:01
Не верифицирован
29 сен 2025, 18:01
097aabe
Код
Авторство
О чём код?
import React from 'react'; import {StringParam, createEnumParam, useQueryParams, withDefault} from 'use-query-params'; import { useBaseConfigAvailable, useFeatureFlagsAvailable, } from '../../store/reducers/capabilities/hooks'; import type {ConfigType} from './types'; import {ConfigTypes} from './types'; const configTypesArray: ConfigType[] = [ ConfigTypes.current, ConfigTypes.startup, ConfigTypes.features, ]; export const ConfigTypeValueEnum = createEnumParam(configTypesArray); export const ConfigTypeValueParam = withDefault<ConfigType | undefined | null, 'current'>( ConfigTypeValueEnum, 'current', ); export function useConfigQueryParams() { const isFeaturesAvailable = useFeatureFlagsAvailable(); const isConfigsAvailable = useBaseConfigAvailable(); const [{configType, search}, setQueryParams] = useQueryParams({ configType: ConfigTypeValueParam, search: StringParam, }); const handleConfigTypeChange = React.useCallback( (value?: ConfigType) => { setQueryParams({configType: value || undefined}, 'replaceIn'); }, [setQueryParams], ); const handleSearchChange = React.useCallback( (value?: string) => { setQueryParams({search: value || undefined}, 'replaceIn'); }, [setQueryParams], ); React.useEffect(() => { if (!isConfigsAvailable && !isFeaturesAvailable) { handleConfigTypeChange(undefined); } else if (!isFeaturesAvailable && configType === ConfigTypes.features) { handleConfigTypeChange(ConfigTypes.current); } else { handleConfigTypeChange(ConfigTypes.features); } }, [isFeaturesAvailable, isConfigsAvailable]); return { configType, handleConfigTypeChange, search, handleSearchChange, }; }