import React from 'react'; import {SegmentedRadioGroup} from '@gravity-ui/uikit'; import {TableWithControlsLayout} from '../../components/TableWithControlsLayout/TableWithControlsLayout'; import { useBaseConfigAvailable, useFeatureFlagsAvailable, } from '../../store/reducers/capabilities/hooks'; import {cn} from '../../utils/cn'; import {Config} from './components/Config/Config'; import {FeatureFlags} from './components/FeatureFlags/FeatureFlags'; import {Startup} from './components/Startup/Startup'; import type {ConfigType} from './types'; import {ConfigTypeTitles, ConfigTypes} from './types'; import {useConfigQueryParams} from './useConfigsQueryParams'; import './Configs.scss'; interface ConfigsProps { database?: string; className?: string; scrollContainerRef?: React.RefObject; } const b = cn('ydb-configs'); export function Configs({database, className, scrollContainerRef}: ConfigsProps) { const {configType} = useConfigQueryParams(); const isFeaturesAvailable = useFeatureFlagsAvailable(); const isConfigsAvailable = useBaseConfigAvailable(); const options = React.useMemo(() => { const options: ConfigType[] = []; if (isFeaturesAvailable) { options.push(ConfigTypes.features); } if (isConfigsAvailable) { options.push(ConfigTypes.current); options.push(ConfigTypes.startup); } return options; }, [isFeaturesAvailable, isConfigsAvailable]); const renderContent = () => { switch (configType) { case ConfigTypes.current: return ; case ConfigTypes.startup: return ; case ConfigTypes.features: return ; } }; return ( {renderContent()} ); } function ConfigSelector({options}: {options: ConfigType[]}) { const {configType, handleConfigTypeChange} = useConfigQueryParams(); if (!options.length) { return null; } return ( {options.map((option) => ( {ConfigTypeTitles[option]} ))} ); }