Skip to content

Commit ae940de

Browse files
committed
Prettier light mode button
1 parent 665347f commit ae940de

File tree

3 files changed

+29
-12
lines changed

3 files changed

+29
-12
lines changed

src/containers/PageRoot.tsx

+17-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
FileTextOutlined,
77
GiftTwoTone,
88
GithubOutlined,
9+
GlobalOutlined,
910
LaptopOutlined,
1011
LogoutOutlined,
1112
SettingOutlined,
@@ -49,6 +50,7 @@ class PageRoot extends ApiComponent<
4950
{
5051
versionInfo: IVersionInfo | undefined
5152
collapsed: boolean
53+
showLanguageSelector: boolean
5254
}
5355
> {
5456
private mainContainer: RefObject<HTMLDivElement>
@@ -59,6 +61,7 @@ class PageRoot extends ApiComponent<
5961
this.state = {
6062
versionInfo: undefined,
6163
collapsed: false,
64+
showLanguageSelector: false,
6265
}
6366
}
6467

@@ -248,7 +251,7 @@ class PageRoot extends ApiComponent<
248251
</span>
249252
<span
250253
style={{
251-
marginInlineEnd: 50,
254+
marginInlineEnd: 20,
252255
}}
253256
>
254257
<DarkModeSwitch />
@@ -258,7 +261,7 @@ class PageRoot extends ApiComponent<
258261
marginInlineEnd: 50,
259262
}}
260263
>
261-
<LanguageSelector />
264+
{self.createLanguageSelector()}
262265
</span>
263266
<span>
264267
<Button
@@ -444,6 +447,18 @@ class PageRoot extends ApiComponent<
444447
</Layout>
445448
)
446449
}
450+
createLanguageSelector(): React.ReactNode {
451+
const self = this
452+
return self.state.showLanguageSelector ? (
453+
<LanguageSelector />
454+
) : (
455+
<Button
456+
onClick={() => self.setState({ showLanguageSelector: true })}
457+
shape="circle"
458+
icon={<GlobalOutlined />}
459+
/>
460+
)
461+
}
447462
}
448463

449464
function mapStateToProps(state: any) {

src/containers/global/DarkModeSwitch.tsx

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
import { BulbFilled, BulbOutlined } from '@ant-design/icons'
2-
import { Switch } from 'antd'
1+
import { SunFilled, SunOutlined } from '@ant-design/icons'
2+
import { Button } from 'antd'
33
import { useContext } from 'react'
44
import DarkModeContext from '../../contexts/DarkModeContext'
55

66
const DarkModeSwitch = () => {
77
const { isDarkMode, setIsDarkMode } = useContext(DarkModeContext)
88

99
return (
10-
<Switch
11-
checkedChildren={<BulbOutlined />}
12-
unCheckedChildren={<BulbFilled />}
13-
checked={isDarkMode}
14-
onChange={(checked) => {
15-
setIsDarkMode(checked)
10+
<Button
11+
onClick={() => {
12+
setIsDarkMode(!isDarkMode)
1613
}}
14+
shape="circle"
15+
icon={isDarkMode ? <SunOutlined /> : <SunFilled />}
1716
/>
1817
)
1918
}

src/utils/StorageHelper.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,11 @@ class StorageHelper {
5959
// If not preference exists, return DarkMode based on users colorScheme
6060
return isDarkMode
6161
? JSON.parse(isDarkMode)
62-
: window.matchMedia &&
63-
window.matchMedia('(prefers-color-scheme: dark)').matches
62+
: // default to dark mode
63+
!(
64+
window.matchMedia &&
65+
window.matchMedia('(prefers-color-scheme: light)').matches
66+
)
6467
}
6568

6669
setLanguageInLocalStorage(language: string) {

0 commit comments

Comments
 (0)