]> Untitled Git - lemmy-ui.git/blob - src/shared/components/home/legal.tsx
merge
[lemmy-ui.git] / src / shared / components / home / legal.tsx
1 import { None } from "@sniptt/monads";
2 import { Component } from "inferno";
3 import { GetSiteResponse } from "lemmy-js-client";
4 import { i18n } from "../../i18next";
5 import { mdToHtml, setIsoData } from "../../utils";
6 import { HtmlTags } from "../common/html-tags";
7
8 interface LegalState {
9   siteRes: GetSiteResponse;
10 }
11
12 export class Legal extends Component<any, LegalState> {
13   private isoData = setIsoData(this.context);
14   private emptyState: LegalState = {
15     siteRes: this.isoData.site_res,
16   };
17
18   constructor(props: any, context: any) {
19     super(props, context);
20     this.state = this.emptyState;
21   }
22
23   get documentTitle(): string {
24     return i18n.t("legal_information");
25   }
26
27   render() {
28     return (
29       <div class="container">
30         <HtmlTags
31           title={this.documentTitle}
32           path={this.context.router.route.match.url}
33           description={None}
34           image={None}
35         />
36         {this.state.siteRes.site_view.match({
37           some: siteView =>
38             siteView.site.legal_information.match({
39               some: legal => (
40                 <div
41                   className="md-div"
42                   dangerouslySetInnerHTML={mdToHtml(legal)}
43                 />
44               ),
45               none: <></>,
46             }),
47           none: <></>,
48         })}
49       </div>
50     );
51   }
52 }