Merge branch 'enh/refresh-search-list-result-after-modification'

This commit is contained in:
1ilit 2024-05-02 17:07:23 +03:00
commit 8fdb5790c2
2 changed files with 8 additions and 15 deletions

View File

@ -1,31 +1,24 @@
import { useState } from "react"; import { 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";
import { ObjectType } from "../../../data/constants"; import { ObjectType } from "../../../data/constants";
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

@ -14,7 +14,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)}>