mirror of
https://github.com/yuruotong1/autoMate.git
synced 2026-03-22 04:57:18 +08:00
添加数据库
This commit is contained in:
1507
ui/autoMate/package-lock.json
generated
1507
ui/autoMate/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -24,8 +24,14 @@
|
||||
"@electron-toolkit/preload": "^3.0.0",
|
||||
"@electron-toolkit/utils": "^3.0.0",
|
||||
"@icon-park/react": "^1.4.2",
|
||||
"@types/better-sqlite3": "^7.6.10",
|
||||
"antd": "^5.18.0",
|
||||
"better-sqlite3": "^11.0.0",
|
||||
"electron-updater": "^6.1.7",
|
||||
"localforage": "^1.10.0",
|
||||
"match-sorter": "^6.3.4",
|
||||
"react-router-dom": "^6.23.1",
|
||||
"sort-by": "^0.0.2",
|
||||
"zustand": "^4.5.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -39,6 +45,7 @@
|
||||
"autoprefixer": "^10.4.19",
|
||||
"electron": "^28.2.0",
|
||||
"electron-builder": "^24.9.1",
|
||||
"electron-rebuild": "^3.2.9",
|
||||
"electron-vite": "^2.0.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
import { BrowserWindow } from "electron"
|
||||
import { createWindow } from "./window"
|
||||
let win = null as null|BrowserWindow
|
||||
const createConfigWindow=()=>{
|
||||
createWindow()
|
||||
// 解决重复创建窗口
|
||||
if(!win) win = createWindow()
|
||||
// 窗口关闭时,将win置为null,可再次打开
|
||||
win.on("closed", ()=>{
|
||||
win = null
|
||||
})
|
||||
}
|
||||
|
||||
export { createConfigWindow }
|
||||
|
||||
@@ -3,10 +3,11 @@ import { BrowserWindow, shell } from 'electron'
|
||||
import { is } from '@electron-toolkit/utils'
|
||||
import icon from '../../../resources/icon.png?asset'
|
||||
import { join } from 'path'
|
||||
import url from 'node:url'
|
||||
|
||||
export function createWindow(): BrowserWindow { // Create the browser window.
|
||||
const win = new BrowserWindow({
|
||||
width: 800,
|
||||
width: 600,
|
||||
height: 500,
|
||||
center: true,
|
||||
show: false,
|
||||
@@ -34,9 +35,16 @@ export function createWindow(): BrowserWindow { // Create the browser window.
|
||||
// HMR for renderer base on electron-vite cli.
|
||||
// Load the remote URL for development or the local html file for production.
|
||||
if (is.dev && process.env['ELECTRON_RENDERER_URL']) {
|
||||
win.loadURL(process.env['ELECTRON_RENDERER_URL'])
|
||||
win.loadURL(process.env['ELECTRON_RENDERER_URL'] + "/#config")
|
||||
} else {
|
||||
win.loadFile(join(__dirname, '../renderer/index.html'))
|
||||
win.loadURL(
|
||||
url.format({
|
||||
pathname: join(__dirname, '../renderer/index.html'),
|
||||
protocol: 'file',
|
||||
slashes: true,
|
||||
hash: 'config'
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
return win
|
||||
|
||||
7
ui/autoMate/src/main/db/index.ts
Normal file
7
ui/autoMate/src/main/db/index.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import Database, * as BetterSqlite3 from 'better-sqlite3';
|
||||
import { app } from 'electron';
|
||||
import {resolve} from 'node:path'
|
||||
const file = resolve(app.getPath('home'), "Desktop", 'hd.db')
|
||||
const db: BetterSqlite3.Database = new Database(file, {});
|
||||
db.pragma('journal_mode = WAL');
|
||||
export {db};
|
||||
@@ -1,6 +1,7 @@
|
||||
import { app, BrowserWindow, ipcMain } from 'electron'
|
||||
import { electronApp, optimizer } from '@electron-toolkit/utils'
|
||||
import "./code"
|
||||
import "./db"
|
||||
// This method will be called when Electron has finished
|
||||
// initialization and is ready to create browser windows.
|
||||
// Some APIs can only be used after this event occurs.
|
||||
|
||||
@@ -6,18 +6,16 @@ export default function Search(): JSX.Element {
|
||||
const search = useStore((state)=>state.search)
|
||||
const {handleSearch} = useSearch()
|
||||
return (
|
||||
<main className="bg-slate-50 p-3 rounded-lg drag" >
|
||||
<section className="bg-slate-200 p-3 rounded-lg flex items-center gap-1 nodrag">
|
||||
<main className="bg-slate-50 p-3 rounded-lg" >
|
||||
<section className="bg-slate-200 p-3 rounded-lg flex items-center gap-1">
|
||||
<SettingOne
|
||||
theme="outline"
|
||||
size="22"
|
||||
fill="#2f3542"
|
||||
fill="#34495e"
|
||||
strokeWidth={4}
|
||||
className="cursor-pointer"
|
||||
onClick={()=>{
|
||||
alert("设置")
|
||||
console.log("点击了设置")
|
||||
window.api.openConfigWindow()}}
|
||||
onClick={()=>window.api.openConfigWindow()
|
||||
}
|
||||
/>
|
||||
<Input
|
||||
placeholder="请输入内容"
|
||||
@@ -25,11 +23,6 @@ export default function Search(): JSX.Element {
|
||||
onChange={handleSearch}
|
||||
autoFocus
|
||||
/>
|
||||
{/* <input
|
||||
value={search}
|
||||
onChange={handleSearch}
|
||||
className="w-full outline-none text-2xl text-slate-600 bg-slate-200"
|
||||
autoFocus/> */}
|
||||
</section>
|
||||
<section className="text-center text-slate-600 text-xs mt-2">autoMate</section>
|
||||
</main>
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import React from 'react'
|
||||
import ReactDOM from 'react-dom/client'
|
||||
import App from './App'
|
||||
import '@renderer/assets/tailwind.css'
|
||||
import '@renderer/assets/global.scss'
|
||||
import { RouterProvider } from 'react-router-dom'
|
||||
import router from './router'
|
||||
|
||||
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
|
||||
<React.StrictMode>
|
||||
<App />
|
||||
<RouterProvider router={router} />
|
||||
</React.StrictMode>
|
||||
)
|
||||
|
||||
8
ui/autoMate/src/renderer/src/pages/Config.tsx
Normal file
8
ui/autoMate/src/renderer/src/pages/Config.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
export default function Config(){
|
||||
return (
|
||||
<div>
|
||||
Config
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
30
ui/autoMate/src/renderer/src/pages/Home.tsx
Normal file
30
ui/autoMate/src/renderer/src/pages/Home.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
import Result from "@renderer/components/Result"
|
||||
import Search from "@renderer/components/Search"
|
||||
import { CodeProvider } from "@renderer/context/CodeContext"
|
||||
import useShortCut from "@renderer/hooks/useShortCut"
|
||||
import Error from "@renderer/components/Error"
|
||||
import { MutableRefObject, useEffect, useRef } from "react"
|
||||
import useIgnoreMouseEvents from "@renderer/hooks/useIgnoreMouseEvents"
|
||||
|
||||
|
||||
function Home(): JSX.Element {
|
||||
const mainRef = useRef<HTMLDivElement>(null)
|
||||
const {setIgnoreMouseEvents} = useIgnoreMouseEvents()
|
||||
useEffect(()=>{
|
||||
setIgnoreMouseEvents(mainRef as MutableRefObject<HTMLDivElement>)
|
||||
}, [])
|
||||
const shortCut = useShortCut()
|
||||
shortCut.register("search", "CommandOrControl+n")
|
||||
return (
|
||||
<CodeProvider>
|
||||
<main className="relative" ref={mainRef}>
|
||||
<Error/>
|
||||
<Search />
|
||||
<Result />
|
||||
</main>
|
||||
</CodeProvider>
|
||||
)
|
||||
}
|
||||
|
||||
export default Home
|
||||
|
||||
15
ui/autoMate/src/renderer/src/router/index.tsx
Normal file
15
ui/autoMate/src/renderer/src/router/index.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import Config from "@renderer/pages/Config";
|
||||
import Home from "@renderer/pages/Home";
|
||||
import { createHashRouter } from "react-router-dom";
|
||||
|
||||
const router = createHashRouter([
|
||||
{
|
||||
path: "/",
|
||||
element: <Home />
|
||||
},
|
||||
{
|
||||
path: "config",
|
||||
element: <Config />
|
||||
}
|
||||
])
|
||||
export default router
|
||||
Reference in New Issue
Block a user