feat: 更新自动检查更新功能易读性
将手动检查更新的设置更改为自动检查更新,更新相关的状态管理和界面文本,以提升用户体验。
This commit is contained in:
parent
8d48824981
commit
e2d8b89ffd
@ -18,7 +18,7 @@ import useUpdateHandler from './useUpdateHandler'
|
|||||||
|
|
||||||
export function useAppInit() {
|
export function useAppInit() {
|
||||||
const dispatch = useAppDispatch()
|
const dispatch = useAppDispatch()
|
||||||
const { proxyUrl, language, windowStyle, manualUpdateCheck, proxyMode, customCss } = useSettings()
|
const { proxyUrl, language, windowStyle, autoCheckUpdate, proxyMode, customCss } = useSettings()
|
||||||
const { minappShow } = useRuntime()
|
const { minappShow } = useRuntime()
|
||||||
const { setDefaultModel, setTopicNamingModel, setTranslateModel } = useDefaultModel()
|
const { setDefaultModel, setTopicNamingModel, setTranslateModel } = useDefaultModel()
|
||||||
const avatar = useLiveQuery(() => db.settings.get('image://avatar'))
|
const avatar = useLiveQuery(() => db.settings.get('image://avatar'))
|
||||||
@ -36,13 +36,13 @@ export function useAppInit() {
|
|||||||
document.getElementById('spinner')?.remove()
|
document.getElementById('spinner')?.remove()
|
||||||
runAsyncFunction(async () => {
|
runAsyncFunction(async () => {
|
||||||
const { isPackaged } = await window.api.getAppInfo()
|
const { isPackaged } = await window.api.getAppInfo()
|
||||||
if (isPackaged && !manualUpdateCheck) {
|
if (isPackaged && autoCheckUpdate) {
|
||||||
await delay(2)
|
await delay(2)
|
||||||
const { updateInfo } = await window.api.checkForUpdate()
|
const { updateInfo } = await window.api.checkForUpdate()
|
||||||
dispatch(setUpdateState({ info: updateInfo }))
|
dispatch(setUpdateState({ info: updateInfo }))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, [dispatch, manualUpdateCheck])
|
}, [dispatch, autoCheckUpdate])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (proxyMode === 'system') {
|
if (proxyMode === 'system') {
|
||||||
|
|||||||
@ -921,7 +921,7 @@
|
|||||||
"general.display.title": "Display Settings",
|
"general.display.title": "Display Settings",
|
||||||
"general.emoji_picker": "Emoji Picker",
|
"general.emoji_picker": "Emoji Picker",
|
||||||
"general.image_upload": "Image Upload",
|
"general.image_upload": "Image Upload",
|
||||||
"general.manually_check_update.title": "Turn off update checking",
|
"general.auto_check_update.title": "Auto update checking",
|
||||||
"general.reset.button": "Reset",
|
"general.reset.button": "Reset",
|
||||||
"general.reset.title": "Data Reset",
|
"general.reset.title": "Data Reset",
|
||||||
"general.restore.button": "Restore",
|
"general.restore.button": "Restore",
|
||||||
|
|||||||
@ -921,7 +921,7 @@
|
|||||||
"general.display.title": "显示设置",
|
"general.display.title": "显示设置",
|
||||||
"general.emoji_picker": "表情选择器",
|
"general.emoji_picker": "表情选择器",
|
||||||
"general.image_upload": "图片上传",
|
"general.image_upload": "图片上传",
|
||||||
"general.manually_check_update.title": "关闭更新检测",
|
"general.auto_check_update.title": "自动检测更新",
|
||||||
"general.reset.button": "重置",
|
"general.reset.button": "重置",
|
||||||
"general.reset.title": "重置数据",
|
"general.reset.title": "重置数据",
|
||||||
"general.restore.button": "恢复",
|
"general.restore.button": "恢复",
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import { useRuntime } from '@renderer/hooks/useRuntime'
|
|||||||
import { useSettings } from '@renderer/hooks/useSettings'
|
import { useSettings } from '@renderer/hooks/useSettings'
|
||||||
import { useAppDispatch } from '@renderer/store'
|
import { useAppDispatch } from '@renderer/store'
|
||||||
import { setUpdateState } from '@renderer/store/runtime'
|
import { setUpdateState } from '@renderer/store/runtime'
|
||||||
import { setManualUpdateCheck } from '@renderer/store/settings'
|
import { setAutoCheckUpdate } from '@renderer/store/settings'
|
||||||
import { ThemeMode } from '@renderer/types'
|
import { ThemeMode } from '@renderer/types'
|
||||||
import { compareVersions, runAsyncFunction } from '@renderer/utils'
|
import { compareVersions, runAsyncFunction } from '@renderer/utils'
|
||||||
import { Avatar, Button, Progress, Row, Switch, Tag } from 'antd'
|
import { Avatar, Button, Progress, Row, Switch, Tag } from 'antd'
|
||||||
@ -25,7 +25,7 @@ import { SettingContainer, SettingDivider, SettingGroup, SettingRow, SettingTitl
|
|||||||
const AboutSettings: FC = () => {
|
const AboutSettings: FC = () => {
|
||||||
const [version, setVersion] = useState('')
|
const [version, setVersion] = useState('')
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const { manualUpdateCheck } = useSettings()
|
const { autoCheckUpdate } = useSettings()
|
||||||
const { theme } = useTheme()
|
const { theme } = useTheme()
|
||||||
const dispatch = useAppDispatch()
|
const dispatch = useAppDispatch()
|
||||||
const { update } = useRuntime()
|
const { update } = useRuntime()
|
||||||
@ -146,8 +146,8 @@ const AboutSettings: FC = () => {
|
|||||||
</AboutHeader>
|
</AboutHeader>
|
||||||
<SettingDivider />
|
<SettingDivider />
|
||||||
<SettingRow>
|
<SettingRow>
|
||||||
<SettingRowTitle>{t('settings.general.manually_check_update.title')}</SettingRowTitle>
|
<SettingRowTitle>{t('settings.general.auto_check_update.title')}</SettingRowTitle>
|
||||||
<Switch value={manualUpdateCheck} onChange={(v) => dispatch(setManualUpdateCheck(v))} />
|
<Switch value={autoCheckUpdate} onChange={(v) => dispatch(setAutoCheckUpdate(v))} />
|
||||||
</SettingRow>
|
</SettingRow>
|
||||||
</SettingGroup>
|
</SettingGroup>
|
||||||
{hasNewVersion && update.info && (
|
{hasNewVersion && update.info && (
|
||||||
@ -161,7 +161,7 @@ const AboutSettings: FC = () => {
|
|||||||
<UpdateNotesWrapper>
|
<UpdateNotesWrapper>
|
||||||
<Markdown>
|
<Markdown>
|
||||||
{typeof update.info.releaseNotes === 'string'
|
{typeof update.info.releaseNotes === 'string'
|
||||||
? update.info.releaseNotes.replaceAll('\n', '\n\n')
|
? update.info.releaseNotes.replace(/\n/g, '\n\n')
|
||||||
: update.info.releaseNotes?.map((note) => note.note).join('\n')}
|
: update.info.releaseNotes?.map((note) => note.note).join('\n')}
|
||||||
</Markdown>
|
</Markdown>
|
||||||
</UpdateNotesWrapper>
|
</UpdateNotesWrapper>
|
||||||
|
|||||||
@ -45,7 +45,7 @@ export interface SettingsState {
|
|||||||
pasteLongTextAsFile: boolean
|
pasteLongTextAsFile: boolean
|
||||||
pasteLongTextThreshold: number
|
pasteLongTextThreshold: number
|
||||||
clickAssistantToShowTopic: boolean
|
clickAssistantToShowTopic: boolean
|
||||||
manualUpdateCheck: boolean
|
autoCheckUpdate: boolean
|
||||||
renderInputMessageAsMarkdown: boolean
|
renderInputMessageAsMarkdown: boolean
|
||||||
codeShowLineNumbers: boolean
|
codeShowLineNumbers: boolean
|
||||||
codeCollapsible: boolean
|
codeCollapsible: boolean
|
||||||
@ -130,7 +130,7 @@ const initialState: SettingsState = {
|
|||||||
pasteLongTextAsFile: false,
|
pasteLongTextAsFile: false,
|
||||||
pasteLongTextThreshold: 1500,
|
pasteLongTextThreshold: 1500,
|
||||||
clickAssistantToShowTopic: false,
|
clickAssistantToShowTopic: false,
|
||||||
manualUpdateCheck: false,
|
autoCheckUpdate: true,
|
||||||
renderInputMessageAsMarkdown: false,
|
renderInputMessageAsMarkdown: false,
|
||||||
codeShowLineNumbers: false,
|
codeShowLineNumbers: false,
|
||||||
codeCollapsible: false,
|
codeCollapsible: false,
|
||||||
@ -261,15 +261,15 @@ const settingsSlice = createSlice({
|
|||||||
setPasteLongTextAsFile: (state, action: PayloadAction<boolean>) => {
|
setPasteLongTextAsFile: (state, action: PayloadAction<boolean>) => {
|
||||||
state.pasteLongTextAsFile = action.payload
|
state.pasteLongTextAsFile = action.payload
|
||||||
},
|
},
|
||||||
|
setAutoCheckUpdate: (state, action: PayloadAction<boolean>) => {
|
||||||
|
state.autoCheckUpdate = action.payload
|
||||||
|
},
|
||||||
setRenderInputMessageAsMarkdown: (state, action: PayloadAction<boolean>) => {
|
setRenderInputMessageAsMarkdown: (state, action: PayloadAction<boolean>) => {
|
||||||
state.renderInputMessageAsMarkdown = action.payload
|
state.renderInputMessageAsMarkdown = action.payload
|
||||||
},
|
},
|
||||||
setClickAssistantToShowTopic: (state, action: PayloadAction<boolean>) => {
|
setClickAssistantToShowTopic: (state, action: PayloadAction<boolean>) => {
|
||||||
state.clickAssistantToShowTopic = action.payload
|
state.clickAssistantToShowTopic = action.payload
|
||||||
},
|
},
|
||||||
setManualUpdateCheck: (state, action: PayloadAction<boolean>) => {
|
|
||||||
state.manualUpdateCheck = action.payload
|
|
||||||
},
|
|
||||||
setWebdavHost: (state, action: PayloadAction<string>) => {
|
setWebdavHost: (state, action: PayloadAction<string>) => {
|
||||||
state.webdavHost = action.payload
|
state.webdavHost = action.payload
|
||||||
},
|
},
|
||||||
@ -444,9 +444,9 @@ export const {
|
|||||||
setShowTopicTime,
|
setShowTopicTime,
|
||||||
setShowAssistantIcon,
|
setShowAssistantIcon,
|
||||||
setPasteLongTextAsFile,
|
setPasteLongTextAsFile,
|
||||||
|
setAutoCheckUpdate,
|
||||||
setRenderInputMessageAsMarkdown,
|
setRenderInputMessageAsMarkdown,
|
||||||
setClickAssistantToShowTopic,
|
setClickAssistantToShowTopic,
|
||||||
setManualUpdateCheck,
|
|
||||||
setWebdavHost,
|
setWebdavHost,
|
||||||
setWebdavUser,
|
setWebdavUser,
|
||||||
setWebdavPass,
|
setWebdavPass,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user