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

30 lines
1.0 KiB
TypeScript
Raw Normal View History

2023-09-11 20:31:54 +03:00
import { HelpTopic } from '../../models/miscelanious';
2023-08-23 18:11:42 +03:00
import { prefixes } from '../../utils/constants';
2023-09-21 14:58:01 +03:00
import { describeHelpTopic, labelHelpTopic } from '../../utils/labels';
2023-08-23 18:11:42 +03:00
interface TopicsListProps {
activeTopic: HelpTopic
onChangeTopic: (newTopic: HelpTopic) => void
}
function TopicsList({ activeTopic, onChangeTopic }: TopicsListProps) {
return (
<div className='sticky top-0 left-0 border-r border-b min-w-[13rem] pt-2 select-none flex flex-col clr-controls'>
<div className='mb-2 font-semibold text-center'>Справка</div>
2023-09-21 14:58:01 +03:00
{ Object.values(HelpTopic).map(
(topic, index) => {
2023-08-23 18:11:42 +03:00
return (
<div key={`${prefixes.topic_list}${index}`}
className={`px-3 py-1 border-y cursor-pointer clr-hover ${activeTopic === topic ? 'font-semibold clr-selected ' : ''}`}
2023-09-21 14:58:01 +03:00
title={describeHelpTopic(topic)}
2023-08-23 18:11:42 +03:00
onClick={() => onChangeTopic(topic)}
>
2023-09-21 14:58:01 +03:00
{labelHelpTopic(topic)}
2023-08-23 18:11:42 +03:00
</div>)
})}
</div>
);
}
export default TopicsList;