'use client'; import clsx from 'clsx'; import { useCallback } from 'react'; import { IconMenuFold, IconMenuUnfold } from '@/components/Icons'; import Button from '@/components/ui/Button'; import SelectTree from '@/components/ui/SelectTree'; import useDropdown from '@/hooks/useDropdown'; import { HelpTopic, topicParent } from '@/models/miscellaneous'; import { useAppLayoutStore, useFitHeight } from '@/stores/appLayout'; import { PARAMETER, prefixes } from '@/utils/constants'; import { describeHelpTopic, labelHelpTopic } from '@/utils/labels'; interface TopicsDropdownProps { activeTopic: HelpTopic; onChangeTopic: (newTopic: HelpTopic) => void; } function TopicsDropdown({ activeTopic, onChangeTopic }: TopicsDropdownProps) { const menu = useDropdown(); const noNavigation = useAppLayoutStore(state => state.noNavigation); const treeHeight = useFitHeight('4rem + 2px'); const handleSelectTopic = useCallback( (topic: HelpTopic) => { menu.hide(); onChangeTopic(topic); }, [onChangeTopic, menu] ); return (