Add button in settings menu to manually check for updates (#5607)
* Expose an electron handler for checking for updates * Add "Check for updates" button to settings
This commit is contained in:
1
interface.d.ts
vendored
1
interface.d.ts
vendored
@ -88,6 +88,7 @@ export interface IElectronAPI {
|
||||
) => Electron.IpcRenderer
|
||||
onUpdateError: (callback: (value: { error: Error }) => void) => Electron
|
||||
appRestart: () => void
|
||||
appCheckForUpdates: () => Promise<unknown>
|
||||
getArgvParsed: () => any
|
||||
getAppTestProperty: (propertyName: string) => any
|
||||
}
|
||||
|
@ -252,15 +252,29 @@ export const AllSettingsFields = forwardRef(
|
||||
{/* This uses a Vite plugin, set in vite.config.ts
|
||||
to inject the version from package.json */}
|
||||
App version {APP_VERSION}.{' '}
|
||||
<a
|
||||
onClick={openExternalBrowserIfDesktop(getReleaseUrl())}
|
||||
href={getReleaseUrl()}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
</p>
|
||||
<div className="flex gap-2 flex-wrap my-4">
|
||||
<ActionButton
|
||||
Element="externalLink"
|
||||
to={getReleaseUrl()}
|
||||
iconStart={{ icon: 'file', className: 'p-1' }}
|
||||
>
|
||||
View release on GitHub
|
||||
</a>
|
||||
</p>
|
||||
</ActionButton>
|
||||
<ActionButton
|
||||
Element="button"
|
||||
onClick={() => {
|
||||
window.electron.appCheckForUpdates().catch(reportRejection)
|
||||
}}
|
||||
iconStart={{
|
||||
icon: 'refresh',
|
||||
size: 'sm',
|
||||
className: 'p-1',
|
||||
}}
|
||||
>
|
||||
Check for updates
|
||||
</ActionButton>
|
||||
</div>
|
||||
<p className="max-w-2xl mt-6">
|
||||
Don't see the feature you want? Check to see if it's on{' '}
|
||||
<a
|
||||
|
@ -430,6 +430,9 @@ app.on('ready', () => {
|
||||
ipcMain.handle('app.restart', () => {
|
||||
autoUpdater.quitAndInstall()
|
||||
})
|
||||
ipcMain.handle('app.checkForUpdates', () => {
|
||||
return autoUpdater.checkForUpdates()
|
||||
})
|
||||
})
|
||||
|
||||
const getProjectPathAtStartup = async (
|
||||
|
@ -38,6 +38,7 @@ const onUpdateDownloadStart = (
|
||||
const onUpdateError = (callback: (value: Error) => void) =>
|
||||
ipcRenderer.on('update-error', (_event: any, value) => callback(value))
|
||||
const appRestart = () => ipcRenderer.invoke('app.restart')
|
||||
const appCheckForUpdates = () => ipcRenderer.invoke('app.checkForUpdates')
|
||||
const getAppTestProperty = (propertyName: string) =>
|
||||
ipcRenderer.invoke('app.testProperty', propertyName)
|
||||
|
||||
@ -207,6 +208,7 @@ contextBridge.exposeInMainWorld('electron', {
|
||||
onUpdateDownloaded,
|
||||
onUpdateError,
|
||||
appRestart,
|
||||
appCheckForUpdates,
|
||||
getArgvParsed,
|
||||
resizeWindow,
|
||||
})
|
||||
|
Reference in New Issue
Block a user