'use client'; import clsx from 'clsx'; import { motion } from 'framer-motion'; import { useCallback } from 'react'; import { IconMenuFold, IconMenuUnfold } from '@/components/Icons'; import Button from '@/components/ui/Button'; import SelectTree from '@/components/ui/SelectTree'; import { useConceptOptions } from '@/context/OptionsContext'; import useDropdown from '@/hooks/useDropdown'; import { HelpTopic, topicParent } from '@/models/miscellaneous'; import { animateSlideLeft } from '@/styling/animations'; import { 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, calculateHeight } = useConceptOptions(); const handleSelectTopic = useCallback( (topic: HelpTopic) => { menu.hide(); onChangeTopic(topic); }, [onChangeTopic, menu] ); return (