import { User } from 'lemmy-js-client';
import { Helmet } from 'inferno-helmet';
+import { Component } from 'inferno';
-export const Theme = (props: { user: User | undefined }) => {
- const user = props.user;
- const userTheme = user && user.theme && (
- <link
- rel="stylesheet"
- type="text/css"
- href={`/static/assets/css/themes/${user.theme}.min.css`}
- />
- );
+interface Props {
+ user: User | undefined;
+}
- return (
- <Helmet>
- {userTheme ?? (
- <>
- <link
- rel="stylesheet"
- type="text/css"
- href="/static/assets/css/themes/litely.min.css"
- id="default-light"
- media="(prefers-color-scheme: light)"
- />
- <link
- rel="stylesheet"
- type="text/css"
- href="/static/assets/css/themes/darkly.min.css"
- id="default-dark"
- media="(prefers-color-scheme: no-preference), (prefers-color-scheme: dark)"
- />
- </>
- )}
- </Helmet>
- );
-};
+export class Theme extends Component<Props> {
+ render() {
+ const { user } = this.props;
+ const userTheme = user && user.theme && (
+ <link
+ rel="stylesheet"
+ type="text/css"
+ href={`/static/assets/css/themes/${user.theme}.min.css`}
+ />
+ );
+
+ return (
+ <Helmet>
+ {userTheme ?? (
+ <>
+ <link
+ rel="stylesheet"
+ type="text/css"
+ href="/static/assets/css/themes/litely.min.css"
+ id="default-light"
+ media="(prefers-color-scheme: light)"
+ />
+ <link
+ rel="stylesheet"
+ type="text/css"
+ href="/static/assets/css/themes/darkly.min.css"
+ id="default-dark"
+ media="(prefers-color-scheme: no-preference), (prefers-color-scheme: dark)"
+ />
+ </>
+ )}
+ </Helmet>
+ );
+ }
+}
import { i18n } from './i18next';
import { getLanguage } from './utils';
-export const initializeSite = (site: GetSiteResponse) => {
+export function initializeSite(site: GetSiteResponse) {
UserService.Instance.user = site.my_user;
i18n.changeLanguage(getLanguage());
-};
+}