import { LoadingOutlined } from "@ant-design/icons"; import { useLazyQuery } from "@apollo/client"; import { Empty, Select } from "antd"; import _ from "lodash"; import React, { forwardRef, useEffect, useState } from "react"; import { SEARCH_OWNERS_BY_ID_FOR_AUTOCOMPLETE, SEARCH_OWNERS_FOR_AUTOCOMPLETE, } from "../../graphql/owners.queries"; import AlertComponent from "../alert/alert.component"; import { OwnerNameDisplayFunction } from "../owner-name-display/owner-name-display.component"; const { Option } = Select; const OwnerSearchSelect = ({ value, onChange, onBlur, disabled }, ref) => { const [callSearch, { loading, error, data }] = useLazyQuery( SEARCH_OWNERS_FOR_AUTOCOMPLETE ); const [callIdSearch, { loading: idLoading, error: idError, data: idData }] = useLazyQuery(SEARCH_OWNERS_BY_ID_FOR_AUTOCOMPLETE); const executeSearch = (v) => { if (v && v.variables?.search !== "" && v.variables.search.length >= 2) callSearch(v); }; const debouncedExecuteSearch = _.debounce(executeSearch, 500); const handleSearch = (value) => { debouncedExecuteSearch({ variables: { search: value } }); }; const [option, setOption] = useState(value); useEffect(() => { if (value === option && value) { callIdSearch({ variables: { id: value } }); } }, [value, option, callIdSearch]); // useEffect(() => { // if (value !== option && onChange) { // onChange(option); // } // }, [value, option, onChange]); const handleSelect = (value) => { setOption(value); if (value !== option && onChange) { onChange(value); } }; const theOptions = [ ...(idData && idData.owners_by_pk ? [idData.owners_by_pk] : []), ...(data && data.search_owners ? data.search_owners : []), ]; return (