import * as React from 'react'; import { useRef, useEffect, useState } from 'react'; import { IDynamicCustomResultRendererProps } from './interfaces/CustomSearchInterfaces'; import { SearchResultType } from './enums/CustomSearchEnums'; import { SingleSelectSearchResult } from './SearchResults/SingleSelectSearchResult/SingleSelectSearchResult'; import { DatePicker } from '../../core'; import moment from 'moment'; export const DynamicCustomResultRenderer = ({ searchResultType, searchResults, onOptionClick = () => { }, highlight, setShowResults, datePickerPosition, isLoading, showEmptyOption, activeSuggestion }: IDynamicCustomResultRendererProps) => { const dateRef: any = useRef(null); const [datePicker, toggleDatePicker] = useState(false); useEffect(() => { if (dateRef.current && searchResultType === SearchResultType.datePicker) { dateRef.current.flatpickr.open(); toggleDatePicker(!datePicker); } else toggleDatePicker(!datePicker); }, [datePickerPosition]); useEffect(() => { if (datePickerPosition && searchResultType === SearchResultType.datePicker && dateRef.current) { const newLeftValue = parseInt(datePickerPosition.left, 10); dateRef.current.flatpickr.calendarContainer.style.left = (newLeftValue > datePickerPosition.inputLeft ? datePickerPosition.inputLeft - 50 : newLeftValue) + 'px'; dateRef.current.flatpickr.open(); } }, [datePicker]); if (searchResultType === SearchResultType.singleSelect) return ( ); if (searchResultType === SearchResultType.datePicker) return ( onOptionClick(moment(selectedDate).format('MM-DD-YYYY'))} /> ); return <>; };