From 6017a74706d5391eac48c2bb8d9b141ed599ddc2 Mon Sep 17 00:00:00 2001 From: yanguoyu <841185308@qq.com> Date: Fri, 8 Mar 2024 18:19:47 +0800 Subject: [PATCH] feat: Keep screen awake --- .../GeneralSetting/generalSetting.module.scss | 9 ++++-- .../src/components/GeneralSetting/index.tsx | 27 ++++++++++++++++-- .../components/Settings/settings.module.scss | 2 +- .../neuron-ui/src/containers/Main/index.tsx | 11 ++++++-- packages/neuron-ui/src/locales/en.json | 3 +- packages/neuron-ui/src/locales/es.json | 3 +- packages/neuron-ui/src/locales/fr.json | 3 +- packages/neuron-ui/src/locales/zh-tw.json | 3 +- packages/neuron-ui/src/locales/zh.json | 3 +- packages/neuron-ui/src/services/localCache.ts | 11 ++++++++ packages/neuron-ui/src/utils/index.ts | 1 + packages/neuron-ui/src/utils/wakeScreen.ts | 28 +++++++++++++++++++ 12 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 packages/neuron-ui/src/utils/wakeScreen.ts diff --git a/packages/neuron-ui/src/components/GeneralSetting/generalSetting.module.scss b/packages/neuron-ui/src/components/GeneralSetting/generalSetting.module.scss index e55142e967..bd41cc7b53 100644 --- a/packages/neuron-ui/src/components/GeneralSetting/generalSetting.module.scss +++ b/packages/neuron-ui/src/components/GeneralSetting/generalSetting.module.scss @@ -4,14 +4,19 @@ $action-button-width: 11.25rem; .container { display: flex; + flex-wrap: wrap; width: 100%; + gap: 16px; .content { width: 176px; padding: 16px; background: var(--input-disabled-color); border-radius: 8px; - margin-right: 16px; + display: flex; + flex-direction: column; + justify-content: space-between; + flex-shrink: 0; p { font-size: 14px; @@ -19,7 +24,7 @@ $action-button-width: 11.25rem; margin: 0 0 12px; color: var(--main-text-color); } - button { + button[data-button-type='text'] { font-size: 14px; line-height: 20px; border: none; diff --git a/packages/neuron-ui/src/components/GeneralSetting/index.tsx b/packages/neuron-ui/src/components/GeneralSetting/index.tsx index 7866c4eaaa..bc0dcc5ba0 100644 --- a/packages/neuron-ui/src/components/GeneralSetting/index.tsx +++ b/packages/neuron-ui/src/components/GeneralSetting/index.tsx @@ -8,8 +8,10 @@ import { ReactComponent as VersionLogo } from 'widgets/Icons/VersionLogo.svg' import { ReactComponent as ArrowNext } from 'widgets/Icons/ArrowNext.svg' import { ReactComponent as Update } from 'widgets/Icons/Update.svg' import { cancelCheckUpdates, downloadUpdate, installUpdate, getVersion } from 'services/remote' -import { uniformTimeFormatter, bytesFormatter, clsx } from 'utils' +import { uniformTimeFormatter, bytesFormatter, clsx, wakeScreen, releaseWakeLock } from 'utils' import { LanguageSelect } from 'widgets/Icons/icon' +import Switch from 'widgets/Switch' +import { keepScreenAwake } from 'services/localCache' import styles from './generalSetting.module.scss' import { useCheckUpdate, useUpdateDownloadStatus } from './hooks' @@ -173,13 +175,29 @@ const GeneralSetting = ({ updater }: GeneralSettingProps) => { } }, [updater.errorMsg, setErrorMsg]) + const [isScreenKeepAwake, setIsScreenKeepAwake] = useState(keepScreenAwake.get()) + const onChangeScreenKeepAwake = useCallback((v: boolean) => { + keepScreenAwake.save(v) + setIsScreenKeepAwake(v) + if (v) { + wakeScreen() + } else { + releaseWakeLock() + } + }, []) + return (
{t('settings.general.version')} v{newVersion || currentVersion}
-{t('settings.general.keep-awake')}
+