ConceptPortal-public/rsconcept/frontend/src/pages/ManualsPage/TopicsStatic.tsx

41 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-05-14 19:16:04 +03:00
import clsx from 'clsx';
import { useConceptOptions } from '@/context/OptionsContext';
import { HelpTopic } from '@/models/miscellaneous';
import TopicsTree from './TopicsTree';
interface TopicsStaticProps {
activeTopic: HelpTopic;
2024-05-15 02:51:50 +03:00
topicFolded: Map<HelpTopic, boolean>;
2024-05-14 19:16:04 +03:00
onChangeTopic: (newTopic: HelpTopic) => void;
2024-05-15 02:51:50 +03:00
onFoldTopic: (target: HelpTopic, showChildren: boolean) => void;
2024-05-14 19:16:04 +03:00
}
2024-05-15 02:51:50 +03:00
function TopicsStatic({ activeTopic, topicFolded, onChangeTopic, onFoldTopic }: TopicsStaticProps) {
2024-05-14 19:16:04 +03:00
const { calculateHeight } = useConceptOptions();
return (
<div
className={clsx(
'sticky top-0 left-0',
2024-05-15 02:51:50 +03:00
'w-[14.5rem] cc-scroll-y',
2024-05-14 19:16:04 +03:00
'self-start',
'border divide-y rounded-none',
'clr-controls',
'text-xs sm:text-sm',
'select-none'
)}
style={{ maxHeight: calculateHeight('2.25rem + 2px') }}
>
2024-05-15 02:51:50 +03:00
<TopicsTree
activeTopic={activeTopic}
onChangeTopic={onChangeTopic}
topicFolded={topicFolded}
onFoldTopic={onFoldTopic}
/>
2024-05-14 19:16:04 +03:00
</div>
);
}
export default TopicsStatic;