mirror of
https://github.com/yuruotong1/autoMate.git
synced 2026-03-22 13:07:17 +08:00
✨ 添加(Search/index.tsx):使用useStore替换useSearch中的状态管理
✨ 添加(hooks/useCodeSelect.ts):使用useStore替换useCode中的状态管理,并调用新的setSearch函数 ✨ 添加(hooks/useSearch.ts):使用useStore替换useCode中的状态管理 📝 添加(store/useStore.ts):添加全局状态管理器useStore,用于管理data和search状态
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import { useStore } from "@renderer/store/useStore"
|
||||
import useSearch from "@renderer/hooks/useSearch"
|
||||
|
||||
|
||||
export default function Search(): JSX.Element {
|
||||
const {search, handleSearch} = useSearch()
|
||||
const search = useStore((state)=>state.search)
|
||||
const {handleSearch} = useSearch()
|
||||
return (
|
||||
<div className="bg-slate-50 p-3 rounded-lg drag" >
|
||||
<section className="bg-slate-200 p-3 rounded-lg">
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import useCode from "@renderer/hooks/useCode"
|
||||
import {useStore} from "@renderer/store/useStore"
|
||||
import { useCallback, useEffect, useState } from "react"
|
||||
export default()=>{
|
||||
const {data, setData} = useCode()
|
||||
const data = useStore((state)=>state.data)
|
||||
const setData = useStore((state)=>state.setData)
|
||||
const setSearch = useStore((state)=>state.setSearch)
|
||||
const [id, setId] = useState(0)
|
||||
const handleKeyEvent = useCallback((e: KeyboardEvent) => {
|
||||
// 初始没有数据,所以data.length为0 ,防止向上箭头,将数据变为-1
|
||||
@@ -33,6 +35,7 @@ export default()=>{
|
||||
async function select(id: Number){
|
||||
const content = data.find((item)=>item.id == id)?.content
|
||||
setData([])
|
||||
setSearch('')
|
||||
if (content) await navigator.clipboard.writeText(content)
|
||||
window.api.hideWindow()
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
import useCode from "@renderer/hooks/useCode"
|
||||
import { ChangeEvent, useState } from "react"
|
||||
// import useCode from "@renderer/hooks/useCode"
|
||||
import { ChangeEvent } from "react"
|
||||
import { codes } from "@renderer/data"
|
||||
import { useStore } from "@renderer/store/useStore"
|
||||
export default()=>{
|
||||
const {setData} = useCode()
|
||||
const [search, setSearch] = useState('')
|
||||
// const {setData} = useCode()
|
||||
const setData = useStore((state)=>state.setData)
|
||||
// const [search, setSearch] = useState('')
|
||||
const search = useStore((state)=>state.search)
|
||||
const setSearch = useStore((state)=>state.setSearch)
|
||||
const handleSearch = (e: ChangeEvent<HTMLInputElement>) => {
|
||||
setSearch(e.target.value)
|
||||
setData(
|
||||
|
||||
15
ui/autoMate/src/renderer/src/store/useStore.ts
Normal file
15
ui/autoMate/src/renderer/src/store/useStore.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { DataType } from "@renderer/data";
|
||||
import { create } from "zustand";
|
||||
interface StateProps{
|
||||
data: DataType[],
|
||||
setData: (data: DataType[]) => void,
|
||||
search: string,
|
||||
setSearch: (search: string) => void
|
||||
}
|
||||
export const useStore = create<StateProps>((set) => ({
|
||||
data: [],
|
||||
setData: (data) => set({data}),
|
||||
search: "",
|
||||
setSearch: (search) => set({search})
|
||||
}))
|
||||
|
||||
Reference in New Issue
Block a user