mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2026-03-13 09:02:05 +08:00
style:electron bar
This commit is contained in:
@@ -83,7 +83,7 @@ export default defineConfig({
|
||||
localStorage.clear();
|
||||
localStorage.setItem('app-local-storage-versions', 'v4');
|
||||
}`,
|
||||
`if (window.electronApi) { window.electronApi.startServerForSpawn() }`,
|
||||
// `if (window.electronApi) { window.electronApi.startServerForSpawn() }`,
|
||||
// `if ("serviceWorker" in navigator) {
|
||||
// window.addEventListener("load", function () {
|
||||
// navigator.serviceWorker
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { memo, useMemo } from 'react';
|
||||
import React, { memo, useState } from 'react';
|
||||
import styles from './index.less';
|
||||
import classnames from 'classnames';
|
||||
import { useCommonStore } from '@/store/common';
|
||||
@@ -10,6 +10,7 @@ interface IProps {
|
||||
|
||||
export default memo<IProps>((props) => {
|
||||
const { className } = props;
|
||||
const [isMaximized, setIsMaximize] = useState(window.electronApi?.isMaximized());
|
||||
|
||||
const { appTitleBarRightComponent } = useCommonStore((state) => {
|
||||
return {
|
||||
@@ -27,9 +28,21 @@ export default memo<IProps>((props) => {
|
||||
window.electronApi?.setMaximize();
|
||||
};
|
||||
|
||||
const handelMaximize = () => {
|
||||
const handelMinimizeWindow = (e) => {
|
||||
e.stopPropagation();
|
||||
window.electronApi?.minimizeWindow();
|
||||
};
|
||||
|
||||
const handelMaximize = (e) => {
|
||||
e.stopPropagation();
|
||||
window.electronApi?.setMaximize();
|
||||
}
|
||||
setIsMaximize(!isMaximized);
|
||||
};
|
||||
|
||||
const handelCloseWindow = (e) => {
|
||||
e.stopPropagation();
|
||||
window.electronApi?.closeWindow();
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={classnames(styles.appTitleBar, className)} onDoubleClick={handleDoubleClick}>
|
||||
@@ -40,14 +53,14 @@ export default memo<IProps>((props) => {
|
||||
</div>
|
||||
{isWin && (
|
||||
<div className={styles.windowsCloseBar}>
|
||||
<div className={styles.windowsCloseBarItem}>
|
||||
<Iconfont code="" />
|
||||
<div className={styles.windowsCloseBarItem} onClick={handelMinimizeWindow}>
|
||||
<Iconfont code="" />
|
||||
</div>
|
||||
<div className={styles.windowsCloseBarItem} onClick={handelMaximize}>
|
||||
<Iconfont code="" />
|
||||
{isMaximized ? <Iconfont code="" /> : <Iconfont code="" />}
|
||||
</div>
|
||||
<div className={styles.windowsCloseBarItem}>
|
||||
<Iconfont code="" />
|
||||
<div className={styles.windowsCloseBarItem} onClick={handelCloseWindow}>
|
||||
<Iconfont code="" />
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -9,9 +9,9 @@ if (__ENV__ === 'local') {
|
||||
/* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */
|
||||
@font-face {
|
||||
font-family: 'iconfont'; /* Project id 3633546 */
|
||||
src: url('//at.alicdn.com/t/c/font_3633546_yr9ay65j0fs.woff2?t=1703837870848') format('woff2'),
|
||||
url('//at.alicdn.com/t/c/font_3633546_yr9ay65j0fs.woff?t=1703837870848') format('woff'),
|
||||
url('//at.alicdn.com/t/c/font_3633546_yr9ay65j0fs.ttf?t=1703837870848') format('truetype');
|
||||
src: url('//at.alicdn.com/t/c/font_3633546_vmsq4yq8hw9.woff2?t=1704769259060') format('woff2'),
|
||||
url('//at.alicdn.com/t/c/font_3633546_vmsq4yq8hw9.woff?t=1704769259060') format('woff'),
|
||||
url('//at.alicdn.com/t/c/font_3633546_vmsq4yq8hw9.ttf?t=1704769259060') format('truetype');
|
||||
}
|
||||
`;
|
||||
const style = document.createElement('style');
|
||||
|
||||
@@ -45,6 +45,10 @@ const usePollRequestService = ({ maxAttempts = 200, interval = 200, loopService
|
||||
serviceFn();
|
||||
|
||||
if (serviceStatus !== ServiceStatus.SUCCESS) {
|
||||
// 第一次请求失败,启动服务
|
||||
if (attempts === 1) {
|
||||
window.electronApi?.startServerForSpawn();
|
||||
}
|
||||
intervalId = setInterval(serviceFn, interval);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const { app, BrowserWindow, shell, net, ipcMain } = require('electron');
|
||||
const { app, BrowserWindow, shell, net, ipcMain, globalShortcut } = require('electron');
|
||||
const path = require('path');
|
||||
const registerAppMenu = require('./menu');
|
||||
const registerAnalysis = require('./analysis');
|
||||
@@ -54,6 +54,11 @@ function createWindow() {
|
||||
mainWindow.on('move', () => {
|
||||
store.set('windowBounds', mainWindow.getBounds());
|
||||
});
|
||||
|
||||
// 注册快捷键Ctrl+Shift+I打开开发者工具
|
||||
globalShortcut.register('CommandOrControl+Shift+I', () => {
|
||||
mainWindow.webContents.openDevTools()
|
||||
})
|
||||
}
|
||||
|
||||
// const menu = Menu.buildFromTemplate(menuBar);
|
||||
@@ -68,7 +73,7 @@ app.on('ready', () => {
|
||||
});
|
||||
|
||||
app.on('activate', () => {
|
||||
if (!!mainWindow) {
|
||||
if (!mainWindow) {
|
||||
createWindow();
|
||||
} else {
|
||||
if (mainWindow.isMinimized()) {
|
||||
@@ -83,6 +88,7 @@ app.on('activate', () => {
|
||||
});
|
||||
|
||||
app.on('window-all-closed', (e) => {
|
||||
mainWindow = null
|
||||
if (isMac) return;
|
||||
app.quit();
|
||||
});
|
||||
@@ -134,3 +140,17 @@ ipcMain.on('set-base-url', (event, _baseUrl) => {
|
||||
ipcMain.on('set-force-quit-code', (event, _forceQuitCode) => {
|
||||
forceQuitCode = _forceQuitCode;
|
||||
});
|
||||
|
||||
ipcMain.on('close-window', () => {
|
||||
mainWindow.close();
|
||||
});
|
||||
|
||||
// 最小化窗口
|
||||
ipcMain.on('minimize-window', () => {
|
||||
mainWindow.minimize();
|
||||
});
|
||||
|
||||
// 获取当前窗口是否是最大化
|
||||
ipcMain.on('is-maximized', () => {
|
||||
return mainWindow.isMaximized();
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
|
||||
@@ -58,6 +58,17 @@ contextBridge.exposeInMainWorld('electronApi', {
|
||||
setMaximize: () => {
|
||||
ipcRenderer.send('set-maximize');
|
||||
},
|
||||
// 获取当前窗口是否是最大化
|
||||
isMaximized: () => {
|
||||
ipcRenderer.send('is-maximized');
|
||||
},
|
||||
closeWindow: () => {
|
||||
ipcRenderer.send('close-window');
|
||||
},
|
||||
// 最小化窗口
|
||||
minimizeWindow: () => {
|
||||
ipcRenderer.send('minimize-window');
|
||||
},
|
||||
// 获取环境是mac还是windows还是linux
|
||||
getPlatform: () => {
|
||||
return {
|
||||
|
||||
3
chat2db-client/typings.d.ts
vendored
3
chat2db-client/typings.d.ts
vendored
@@ -34,6 +34,9 @@ declare global {
|
||||
isWin: boolean,
|
||||
isLinux: boolean,
|
||||
};
|
||||
minimizeWindow: () => void;
|
||||
closeWindow: () => void;
|
||||
isMaximized: () => boolean;
|
||||
};
|
||||
}
|
||||
const __APP_VERSION__: string;
|
||||
|
||||
Reference in New Issue
Block a user