2022-06-01 17:04:29 +02:00
|
|
|
import { configs } from 'shared/designs/index.js'
|
|
|
|
import { useTranslation } from 'next-i18next'
|
|
|
|
import PageLink from 'shared/components/page-link.js'
|
2022-05-29 11:58:48 +02:00
|
|
|
|
2022-06-01 17:04:29 +02:00
|
|
|
const renderOptions = (groups, pattern, t) => {
|
|
|
|
const list = []
|
|
|
|
for (let l1 in groups) {
|
|
|
|
let children = []
|
|
|
|
for (let l2 of groups[l1]) {
|
|
|
|
if (typeof l2 === 'string') {
|
|
|
|
children.push(
|
|
|
|
<li key={pattern + l2}>
|
|
|
|
<PageLink
|
|
|
|
href={`/docs/patterns/${pattern}/options/${l2.toLowerCase()}`}
|
|
|
|
txt={t(`o_${pattern}:${l2}.t`)}
|
|
|
|
/>
|
|
|
|
</li>
|
|
|
|
)
|
|
|
|
} else {
|
|
|
|
for (let l3 in l2) {
|
|
|
|
let grandchildren = []
|
|
|
|
for (let l4 of l2[l3]) {
|
|
|
|
grandchildren.push(
|
|
|
|
<li key={pattern + l4}>
|
|
|
|
<PageLink
|
|
|
|
href={`/docs/patterns/${pattern}/options/${l4.toLowerCase()}`}
|
|
|
|
txt={t(`o_${pattern}:${l4}.t`)}
|
|
|
|
/>
|
2022-05-29 11:58:48 +02:00
|
|
|
</li>
|
|
|
|
)
|
|
|
|
}
|
2022-06-01 17:04:29 +02:00
|
|
|
children.push(
|
|
|
|
<li key={pattern + l3}>
|
|
|
|
<span className="capitalize font-bold">{t(`og:${l3}`)}</span>
|
|
|
|
<ul className="list list-disc list-inside ml-4">{grandchildren}</ul>
|
|
|
|
</li>
|
|
|
|
)
|
2022-05-29 11:58:48 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-06-01 17:04:29 +02:00
|
|
|
list.push(
|
|
|
|
<li key={pattern + l1}>
|
|
|
|
<span className="capitalize font-bold">{t(`og:${l1}`)}</span>
|
|
|
|
<ul className="list list-disc list-inside ml-4">{children}</ul>
|
|
|
|
</li>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
return <ul className="list list-disc list-inside ml-4">{list}</ul>
|
|
|
|
}
|
|
|
|
|
2023-01-29 16:44:02 +01:00
|
|
|
const PatternOptions = ({ pattern, before = null, after = null }) => {
|
2022-06-01 17:04:29 +02:00
|
|
|
const { t } = useTranslation([`o_${pattern}`, 'og'])
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div>
|
|
|
|
{before}
|
|
|
|
{renderOptions(configs[pattern].optionGroups, pattern, t)}
|
|
|
|
{after}
|
|
|
|
</div>
|
|
|
|
)
|
2022-05-29 11:58:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export default PatternOptions
|