|
1 | 1 | import styled from "styled-components"; |
2 | 2 | import { EditPopover, PointIcon, Search, TacoButton } from "lowcoder-design"; |
3 | | -import {useEffect, useState} from "react"; |
| 3 | +import { useState, useEffect } from "react"; |
| 4 | +import { useDebouncedValue } from "util/hooks"; |
4 | 5 | import { useDispatch, useSelector } from "react-redux"; |
5 | 6 | import { getDataSourceTypesMap } from "../../redux/selectors/datasourceSelectors"; |
6 | 7 | import { deleteDatasource } from "../../redux/reduxActions/datasourceActions"; |
@@ -124,13 +125,13 @@ export const DatasourceList = () => { |
124 | 125 | const [pageSize, setPageSize] = useState(10); |
125 | 126 | const [paginationLoading, setPaginationLoading] = useState(false); |
126 | 127 |
|
127 | | - useEffect(()=> { |
128 | | - const timer = setTimeout(() => { |
129 | | - if (searchValue.length > 2 || searchValue === "") |
130 | | - setSearchValues(searchValue) |
131 | | - }, 500); |
132 | | - return () => clearTimeout(timer); |
133 | | - }, [searchValue]) |
| 128 | + const debouncedSearchValue = useDebouncedValue(searchValue, 500); |
| 129 | + |
| 130 | + useEffect(() => { |
| 131 | + if (debouncedSearchValue.trim().length > 0 || debouncedSearchValue === "") { |
| 132 | + setSearchValues(debouncedSearchValue); |
| 133 | + } |
| 134 | + }, [debouncedSearchValue]); |
134 | 135 |
|
135 | 136 | useEffect( () => { |
136 | 137 | setPaginationLoading(true); |
|
0 commit comments