-
-
Notifications
You must be signed in to change notification settings - Fork 503
Expand file tree
/
Copy pathThemeToggle.jsx
More file actions
30 lines (25 loc) · 681 Bytes
/
ThemeToggle.jsx
File metadata and controls
30 lines (25 loc) · 681 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Component } from "preact";
import { observer } from "mobx-react";
import * as s from "./ThemeToggle.css";
import Button from "./Button";
import Icon from "./Icon";
import { store } from "../store";
class ThemeToggle extends Component {
render() {
const { darkMode } = store;
return (
<Button
type="button"
title={darkMode ? "Switch to Light Mode" : "Switch to Dark Mode"}
className={s.themeToggle}
onClick={this.handleToggle}
>
<Icon name={darkMode ? "sun" : "moon"} size={16} />
</Button>
);
}
handleToggle = () => {
store.toggleDarkMode();
};
}
export default observer(ThemeToggle);