2023-12-15 17:34:50 +03:00
|
|
|
|
import clsx from 'clsx';
|
|
|
|
|
|
2023-12-26 14:23:51 +03:00
|
|
|
|
import { HelpTopic } from '@/models/miscellaneous';
|
2023-12-13 14:32:57 +03:00
|
|
|
|
import { prefixes } from '@/utils/constants';
|
|
|
|
|
import { describeHelpTopic, labelHelpTopic } from '@/utils/labels';
|
2023-08-23 18:11:42 +03:00
|
|
|
|
|
|
|
|
|
interface TopicsListProps {
|
2023-12-28 14:04:44 +03:00
|
|
|
|
activeTopic: HelpTopic;
|
|
|
|
|
onChangeTopic: (newTopic: HelpTopic) => void;
|
2023-08-23 18:11:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function TopicsList({ activeTopic, onChangeTopic }: TopicsListProps) {
|
|
|
|
|
return (
|
2023-12-28 14:04:44 +03:00
|
|
|
|
<div
|
|
|
|
|
className={clsx(
|
|
|
|
|
'sticky top-0 left-0',
|
|
|
|
|
'min-w-[13rem] self-start',
|
|
|
|
|
'border-x',
|
|
|
|
|
'clr-controls',
|
|
|
|
|
'small-caps',
|
|
|
|
|
'select-none'
|
|
|
|
|
)}
|
|
|
|
|
>
|
|
|
|
|
<h1 className='my-1'>Справка</h1>
|
|
|
|
|
{Object.values(HelpTopic).map((topic, index) => (
|
|
|
|
|
<div
|
|
|
|
|
key={`${prefixes.topic_list}${index}`}
|
2023-12-15 17:34:50 +03:00
|
|
|
|
className={clsx(
|
|
|
|
|
'px-3 py-1',
|
|
|
|
|
'border-y',
|
|
|
|
|
'clr-hover',
|
|
|
|
|
'cursor-pointer',
|
|
|
|
|
activeTopic === topic && 'clr-selected'
|
|
|
|
|
)}
|
2023-12-05 01:22:44 +03:00
|
|
|
|
title={describeHelpTopic(topic)}
|
|
|
|
|
onClick={() => onChangeTopic(topic)}
|
|
|
|
|
>
|
|
|
|
|
{labelHelpTopic(topic)}
|
2023-12-15 17:34:50 +03:00
|
|
|
|
</div>
|
2023-12-28 14:04:44 +03:00
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
);
|
2023-08-23 18:11:42 +03:00
|
|
|
|
}
|
|
|
|
|
|
2023-12-28 14:04:44 +03:00
|
|
|
|
export default TopicsList;
|