book_manage/apps/web/src/app/admin/code-manage/CodeManageSearchBase.tsx

42 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Button, Form, Input } from 'antd';
import { useCodeManageContext } from './CodeManageContext';
import { ChangeEvent, useRef } from 'react';
export default function CodeManageSearchBase() {
const { setCurrentPage, searchRefetch, setSearchKeyword } = useCodeManageContext();
const debounceTimer = useRef<NodeJS.Timeout | null>(null);
const onSearch = (value: string) => {
console.log(value);
setSearchKeyword(value);
setCurrentPage(1)
searchRefetch()
};
const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
// 设置表单值
setSearchKeyword(e.target.value);
// 设置页码为1确保从第一页开始显示搜索结果
setCurrentPage(1);
// 使用防抖处理,避免频繁发送请求
if (debounceTimer.current) {
clearTimeout(debounceTimer.current);
}
debounceTimer.current = setTimeout(() => {
// 触发查询
searchRefetch();
}, 300); // 300毫秒的防抖延迟
};
return <>
<div className="py-4 mt-10 w-2/3 mx-auto">
<Form>
<Form.Item name="search" label="关键字搜索">
<Input.Search
placeholder="输入分享码或文件名"
enterButton
onSearch={onSearch}
onChange={onChange}
/>
</Form.Item>
</Form>
</div>
</>
}