Skip to content

Commit 239bf2f

Browse files
authored
refactor: adjust tauri codes (#4332)
* fix: some bugs * refactor: delete code that is no longer needed
1 parent a6baabb commit 239bf2f

File tree

349 files changed

+1116
-12185
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

349 files changed

+1116
-12185
lines changed

frontend/.vscode/tasks.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@
257257
"label": "AF: Tauri UI Dev",
258258
"type": "shell",
259259
"isBackground": true,
260-
"command": "pnpm sync:i18n && pnpm run dev",
260+
"command": "pnpm run tauri:dev",
261261
"options": {
262262
"cwd": "${workspaceFolder}/appflowy_tauri"
263263
}
@@ -297,6 +297,6 @@
297297
"options": {
298298
"cwd": "${workspaceFolder}/appflowy_flutter"
299299
}
300-
},
300+
}
301301
]
302302
}

frontend/appflowy_tauri/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"quill-delta": "^5.1.0",
5252
"react": "^18.2.0",
5353
"react-beautiful-dnd": "^13.1.1",
54-
"react-calendar": "^4.1.0",
54+
"react-big-calendar": "^1.8.5",
5555
"react-color": "^2.19.3",
5656
"react-datepicker": "^4.23.0",
5757
"react-dom": "^18.2.0",

frontend/appflowy_tauri/pnpm-lock.yaml

Lines changed: 112 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,39 @@
11
import { useAppDispatch, useAppSelector } from '$app/stores/store';
22
import { useCallback, useEffect, useMemo } from 'react';
3-
import { UserSettingController } from '$app/stores/effects/user/user_setting_controller';
43
import { currentUserActions } from '$app_reducers/current-user/slice';
54
import { Theme as ThemeType, ThemeMode } from '$app/stores/reducers/current-user/slice';
65
import { createTheme } from '@mui/material/styles';
76
import { getDesignTokens } from '$app/utils/mui';
87
import { useTranslation } from 'react-i18next';
8+
import { ThemeModePB } from '@/services/backend';
9+
import { UserService } from '$app/application/user/user.service';
910

1011
export function useUserSetting() {
1112
const dispatch = useAppDispatch();
1213
const { i18n } = useTranslation();
13-
const currentUser = useAppSelector((state) => state.currentUser);
14-
const userSettingController = useMemo(() => {
15-
if (!currentUser?.id) return;
16-
const controller = new UserSettingController(currentUser.id);
1714

18-
return controller;
19-
}, [currentUser?.id]);
15+
const handleSystemThemeChange = useCallback(() => {
16+
const mode = window.matchMedia('(prefers-color-scheme: dark)').matches ? ThemeMode.Dark : ThemeMode.Light;
17+
18+
dispatch(currentUserActions.setUserSetting({ themeMode: mode }));
19+
}, [dispatch]);
2020

2121
const loadUserSetting = useCallback(async () => {
22-
if (!userSettingController) return;
23-
const settings = await userSettingController.getAppearanceSetting();
22+
const settings = await UserService.getAppearanceSetting();
2423

2524
if (!settings) return;
2625
dispatch(currentUserActions.setUserSetting(settings));
26+
27+
if (settings.themeMode === ThemeModePB.System) {
28+
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
29+
30+
handleSystemThemeChange();
31+
32+
mediaQuery.addEventListener('change', handleSystemThemeChange);
33+
}
34+
2735
await i18n.changeLanguage(settings.language);
28-
}, [dispatch, i18n, userSettingController]);
36+
}, [dispatch, handleSystemThemeChange, i18n]);
2937

3038
useEffect(() => {
3139
void loadUserSetting();
@@ -35,12 +43,26 @@ export function useUserSetting() {
3543
return state.currentUser.userSetting || {};
3644
});
3745

46+
useEffect(() => {
47+
const html = document.documentElement;
48+
49+
html?.setAttribute('data-dark-mode', String(themeMode === ThemeMode.Dark));
50+
html?.setAttribute('data-theme', themeType);
51+
}, [themeType, themeMode]);
52+
53+
useEffect(() => {
54+
return () => {
55+
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
56+
57+
mediaQuery.removeEventListener('change', handleSystemThemeChange);
58+
};
59+
}, [dispatch, handleSystemThemeChange]);
60+
3861
const muiTheme = useMemo(() => createTheme(getDesignTokens(themeMode)), [themeMode]);
3962

4063
return {
4164
muiTheme,
4265
themeMode,
4366
themeType,
44-
userSettingController,
4567
};
4668
}

0 commit comments

Comments
 (0)