lemmy-ui/src/shared/components/theme.tsx

44 lines
1.2 KiB
TypeScript
Raw Normal View History

2021-03-15 18:09:31 +00:00
import { LocalUserSettingsView } from "lemmy-js-client";
2021-02-22 02:39:04 +00:00
import { Helmet } from "inferno-helmet";
import { Component } from "inferno";
2020-10-26 14:28:17 +00:00
2020-10-26 18:42:07 +00:00
interface Props {
2021-03-15 18:09:31 +00:00
localUserView: LocalUserSettingsView | undefined;
2020-10-26 18:42:07 +00:00
}
2020-10-26 14:28:17 +00:00
2020-10-26 18:42:07 +00:00
export class Theme extends Component<Props> {
render() {
2021-03-15 18:09:31 +00:00
let user = this.props.localUserView;
let hasTheme = user && user.local_user.theme !== "browser";
2020-10-26 18:42:07 +00:00
return (
<Helmet>
2021-03-15 18:09:31 +00:00
{hasTheme ? (
2020-10-27 00:52:50 +00:00
<link
rel="stylesheet"
type="text/css"
2021-03-15 18:09:31 +00:00
href={`/static/assets/css/themes/${user.local_user.theme}.min.css`}
2020-10-27 00:52:50 +00:00
/>
) : (
[
2020-10-26 18:42:07 +00:00
<link
rel="stylesheet"
type="text/css"
href="/static/assets/css/themes/litely.min.css"
id="default-light"
media="(prefers-color-scheme: light)"
2020-10-27 00:52:50 +00:00
/>,
2020-10-26 18:42:07 +00:00
<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)"
2020-10-27 00:52:50 +00:00
/>,
]
2020-10-26 18:42:07 +00:00
)}
</Helmet>
);
}
}