Fixed wiki pages with a body
This commit is contained in:
parent
e39eb316de
commit
113c6566d9
|
@ -22,9 +22,11 @@ import { cIf, cJoin } from "helpers/className";
|
||||||
import { Terminal } from "components/Cli/Terminal";
|
import { Terminal } from "components/Cli/Terminal";
|
||||||
import { prettyTerminalBoxedTitle, prettyTerminalUnderlinedTitle } from "helpers/terminal";
|
import { prettyTerminalBoxedTitle, prettyTerminalUnderlinedTitle } from "helpers/terminal";
|
||||||
import { atoms } from "contexts/atoms";
|
import { atoms } from "contexts/atoms";
|
||||||
import { useAtomGetter } from "helpers/atoms";
|
import { useAtomGetter, useAtomSetter } from "helpers/atoms";
|
||||||
import { useFormat } from "hooks/useFormat";
|
import { useFormat } from "hooks/useFormat";
|
||||||
import { getFormat } from "helpers/i18n";
|
import { getFormat } from "helpers/i18n";
|
||||||
|
import { getTocFromMarkdawn, Markdawn, TableOfContents } from "components/Markdown/Markdawn";
|
||||||
|
import { ElementsSeparator } from "helpers/component";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ╭────────╮
|
* ╭────────╮
|
||||||
|
@ -39,6 +41,7 @@ const WikiPage = ({ page, ...otherProps }: Props): JSX.Element => {
|
||||||
const { format } = useFormat();
|
const { format } = useFormat();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const isTerminalMode = useAtomGetter(atoms.layout.terminalMode);
|
const isTerminalMode = useAtomGetter(atoms.layout.terminalMode);
|
||||||
|
const setSubPanelOpened = useAtomSetter(atoms.layout.subPanelOpened);
|
||||||
const { showLightBox } = useAtomGetter(atoms.lightBox);
|
const { showLightBox } = useAtomGetter(atoms.lightBox);
|
||||||
const [selectedTranslation, LanguageSwitcher, languageSwitcherProps] = useSmartLanguage({
|
const [selectedTranslation, LanguageSwitcher, languageSwitcherProps] = useSmartLanguage({
|
||||||
items: page.translations,
|
items: page.translations,
|
||||||
|
@ -50,9 +53,27 @@ const WikiPage = ({ page, ...otherProps }: Props): JSX.Element => {
|
||||||
});
|
});
|
||||||
const is3ColumnsLayout = useAtomGetter(atoms.containerQueries.is3ColumnsLayout);
|
const is3ColumnsLayout = useAtomGetter(atoms.containerQueries.is3ColumnsLayout);
|
||||||
|
|
||||||
|
const toc = getTocFromMarkdawn(selectedTranslation?.body?.body, selectedTranslation?.title);
|
||||||
|
|
||||||
const subPanel = is3ColumnsLayout ? (
|
const subPanel = is3ColumnsLayout ? (
|
||||||
<SubPanel>
|
<SubPanel>
|
||||||
<ReturnButton href={`/wiki`} title={format("wiki")} displayOnlyOn={"3ColumnsLayout"} />
|
<ElementsSeparator>
|
||||||
|
{[
|
||||||
|
<ReturnButton
|
||||||
|
key="return"
|
||||||
|
href={`/wiki`}
|
||||||
|
title={format("wiki")}
|
||||||
|
displayOnlyOn={"3ColumnsLayout"}
|
||||||
|
/>,
|
||||||
|
toc && (
|
||||||
|
<TableOfContents
|
||||||
|
key="toc"
|
||||||
|
toc={toc}
|
||||||
|
onContentClicked={() => setSubPanelOpened(false)}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
]}
|
||||||
|
</ElementsSeparator>
|
||||||
</SubPanel>
|
</SubPanel>
|
||||||
) : undefined;
|
) : undefined;
|
||||||
|
|
||||||
|
@ -170,7 +191,9 @@ const WikiPage = ({ page, ...otherProps }: Props): JSX.Element => {
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{isDefined(selectedTranslation.body) && (
|
{isDefined(selectedTranslation.body) && (
|
||||||
<div className="whitespace-pre-line">{selectedTranslation.body.body}</div>
|
<div>
|
||||||
|
<Markdawn text={selectedTranslation.body.body} />
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|
Loading…
Reference in New Issue