webapp/src/components/Nav/Topics.tsx

39 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-09-09 11:53:35 +00:00
import { For, Show } from 'solid-js'
import type { Topic } from '../../graphql/types.gen'
2022-09-22 09:37:49 +00:00
import { Icon } from './Icon'
2022-09-09 11:53:35 +00:00
import './Topics.scss'
import { t } from '../../utils/intl'
2022-09-23 23:42:19 +00:00
import { locale } from '../../stores/ui'
2022-09-09 11:53:35 +00:00
2022-09-22 09:37:49 +00:00
export const NavTopics = (props: { topics: Topic[] }) => {
2022-09-29 11:50:48 +00:00
const tag = (topic: Topic) =>
/[ЁА-яё]/.test(topic.title || '') && locale() !== 'ru' ? topic.slug : topic.title
2022-09-09 11:53:35 +00:00
// TODO: something about subtopics
return (
<nav class="subnavigation wide-container text-2xl">
<ul class="topics">
2022-09-22 09:37:49 +00:00
<Show when={props.topics.length > 0}>
2022-09-09 11:53:35 +00:00
<For each={props.topics}>
2022-09-29 11:50:48 +00:00
{(topic) => (
2022-09-09 11:53:35 +00:00
<li class="item">
2022-09-29 11:50:48 +00:00
<a href={`/topic/${topic.slug}`}>
<span>#{tag(topic)}</span>
2022-09-09 11:53:35 +00:00
</a>
</li>
)}
</For>
<li class="item right">
<a href={`/topics`}>
<span>
<Icon name="arrow-right-black" style={{ height: '12px', display: 'inline-block' }} />
<small style={{ margin: '4px' }}>{t('All topics')} </small>
</span>
</a>
</li>
</Show>
</ul>
</nav>
)
}