Refresh search list after modification

This commit is contained in:
haecheonlee 2024-04-16 02:52:21 -04:00
parent 38534551fc
commit 7f9b760b58
2 changed files with 8 additions and 15 deletions

View File

@ -1,30 +1,23 @@
import { useState } from "react"; import { useEffect, useMemo, useState } from "react";
import { useSelect, useTables } from "../../../hooks"; import { useSelect } from "../../../hooks";
import { AutoComplete } from "@douyinfe/semi-ui"; import { AutoComplete } from "@douyinfe/semi-ui";
import { IconSearch } from "@douyinfe/semi-icons"; import { IconSearch } from "@douyinfe/semi-icons";
export default function SearchBar() { export default function SearchBar({ tables }) {
const { tables } = useTables();
const { setSelectedElement } = useSelect(); const { setSelectedElement } = useSelect();
const [searchText, setSearchText] = useState(""); const [searchText, setSearchText] = useState("");
const [filteredResult, setFilteredResult] = useState( const filteredTable = useMemo(
tables.map((t) => t.name) () => tables.map((t) => t.name).filter((i) => i.includes(searchText)),
[tables, searchText],
); );
const handleStringSearch = (value) => {
setFilteredResult(
tables.map((t) => t.name).filter((i) => i.includes(value))
);
};
return ( return (
<AutoComplete <AutoComplete
data={filteredResult} data={filteredTable}
value={searchText} value={searchText}
showClear showClear
prefix={<IconSearch />} prefix={<IconSearch />}
placeholder="Search..." placeholder="Search..."
onSearch={(v) => handleStringSearch(v)}
emptyContent={<div className="p-3 popover-theme">No tables found</div>} emptyContent={<div className="p-3 popover-theme">No tables found</div>}
onChange={(v) => setSearchText(v)} onChange={(v) => setSearchText(v)}
onSelect={(v) => { onSelect={(v) => {

View File

@ -13,7 +13,7 @@ export default function TablesTab() {
<> <>
<Row gutter={6}> <Row gutter={6}>
<Col span={16}> <Col span={16}>
<SearchBar /> <SearchBar tables={tables} />
</Col> </Col>
<Col span={8}> <Col span={8}>
<Button icon={<IconPlus />} block onClick={() => addTable(true)}> <Button icon={<IconPlus />} block onClick={() => addTable(true)}>