chore: Use
This commit is contained in:
		
							parent
							
								
									b8de863045
								
							
						
					
					
						commit
						76de9f2b9d
					
				| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
import { join } from 'path'
 | 
					import { join } from 'path'
 | 
				
			||||||
import { app, BrowserWindow } from 'electron'
 | 
					import { app, BrowserWindow, ipcMain } from 'electron'
 | 
				
			||||||
 | 
					import Store from 'electron-store'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
app.disableHardwareAcceleration()
 | 
					app.disableHardwareAcceleration()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,6 +27,7 @@ async function mainWin() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    win.loadURL(url)
 | 
					    win.loadURL(url)
 | 
				
			||||||
    win.maximize()
 | 
					    win.maximize()
 | 
				
			||||||
 | 
					    win.webContents.openDevTools()
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,8 +42,21 @@ app.on('window-all-closed', () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
app.on('second-instance', () => {
 | 
					app.on('second-instance', () => {
 | 
				
			||||||
  if (win) {
 | 
					  if (win) {
 | 
				
			||||||
    // someone tried to run a second instance, we should focus our window.
 | 
					    // Someone tried to run a second instance, we should focus our window.
 | 
				
			||||||
    if (win.isMinimized()) win.restore()
 | 
					    if (win.isMinimized()) win.restore()
 | 
				
			||||||
    win.focus()
 | 
					    win.focus()
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// -------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Expose 'electron-store' to renderer through 'ipcMain.handle'
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					const store = new Store
 | 
				
			||||||
 | 
					ipcMain.handle('electron-store', async (_evnet, methodSign: string, ...args: any[]) => {
 | 
				
			||||||
 | 
					  if (typeof (store as any)[methodSign] === 'function') {
 | 
				
			||||||
 | 
					    return (store as any)[methodSign](...args)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return (store as any)[methodSign]
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,8 +3,6 @@ import ReactDOM from 'react-dom'
 | 
				
			||||||
import './index.css'
 | 
					import './index.css'
 | 
				
			||||||
import App from './App'
 | 
					import App from './App'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log('contextBridge ->', window.bridge)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ReactDOM.render(
 | 
					ReactDOM.render(
 | 
				
			||||||
  <React.StrictMode>
 | 
					  <React.StrictMode>
 | 
				
			||||||
    <App />
 | 
					    <App />
 | 
				
			||||||
| 
						 | 
					@ -14,3 +12,35 @@ ReactDOM.render(
 | 
				
			||||||
    window.bridge.removeLoading()
 | 
					    window.bridge.removeLoading()
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// -----------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log('contextBridge ->', window.bridge)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Use 'electron-store'
 | 
				
			||||||
 | 
					const store = {
 | 
				
			||||||
 | 
					  async get(key: string) {
 | 
				
			||||||
 | 
					    const { invoke } = window.bridge.ipcRenderer
 | 
				
			||||||
 | 
					    let value = await invoke('electron-store', 'get', key)
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      value = JSON.parse(value)
 | 
				
			||||||
 | 
					    } finally {
 | 
				
			||||||
 | 
					      return value
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  async set(key: string, value: any) {
 | 
				
			||||||
 | 
					    const { invoke } = window.bridge.ipcRenderer
 | 
				
			||||||
 | 
					    let val = value
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      if (value && typeof value === 'object') {
 | 
				
			||||||
 | 
					        val = JSON.stringify(value)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    } finally {
 | 
				
			||||||
 | 
					      await invoke('electron-store', 'set', key, val)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await store.set('Date.now', Date.now())
 | 
				
			||||||
 | 
					console.log('electron-store ->', 'Date.now:', await store.get('Date.now'))
 | 
				
			||||||
 | 
					console.log('electron-store ->', 'path:', await window.bridge.ipcRenderer.invoke('electron-store', 'path'))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue