fix api filter from matching event id as timestamp

This commit is contained in:
Josh Hawkins 2024-11-05 07:30:56 -06:00
parent 1fc4af9c86
commit ca339f14c7
2 changed files with 17 additions and 7 deletions

View File

@ -463,9 +463,13 @@ export default function InputWithTags({
}, [setFilters, resetSuggestions, setSearch, setInputFocused]); }, [setFilters, resetSuggestions, setSearch, setInputFocused]);
const handleClearSimilarity = useCallback(() => { const handleClearSimilarity = useCallback(() => {
removeFilter("event_id", filters.event_id!); const newFilters = { ...filters };
removeFilter("search_type", "similarity"); if (newFilters.event_id === filters.event_id) {
}, [removeFilter, filters]); delete newFilters.event_id;
}
delete newFilters.search_type;
setFilters(newFilters);
}, [setFilters, filters]);
const handleInputBlur = useCallback( const handleInputBlur = useCallback(
(e: React.FocusEvent) => { (e: React.FocusEvent) => {
@ -763,13 +767,15 @@ export default function InputWithTags({
</button> </button>
</span> </span>
)) ))
: filterType !== "event_id" && ( : !(filterType == "event_id" && isSimilaritySearch) && (
<span <span
key={filterType} key={filterType}
className="inline-flex items-center whitespace-nowrap rounded-full bg-green-100 px-2 py-0.5 text-sm capitalize text-green-800" className="inline-flex items-center whitespace-nowrap rounded-full bg-green-100 px-2 py-0.5 text-sm capitalize text-green-800"
> >
{filterType.replaceAll("_", " ")}:{" "} {filterType === "event_id"
{formatFilterValues(filterType, filterValues)} ? "Tracked Object ID"
: filterType.replaceAll("_", " ")}
: {formatFilterValues(filterType, filterValues)}
<button <button
onClick={() => onClick={() =>
removeFilter( removeFilter(

View File

@ -65,10 +65,14 @@ export function useApiFilterArgs<
const filter: { [key: string]: unknown } = {}; const filter: { [key: string]: unknown } = {};
rawParams.forEach((value, key) => { rawParams.forEach((value, key) => {
const isValidNumber = /^-?\d+(\.\d+)?(?!.)/.test(value);
const isValidEventID = /^\d+\.\d+-[a-zA-Z0-9]+$/.test(value);
if ( if (
value != "true" && value != "true" &&
value != "false" && value != "false" &&
(/[^0-9,]/.test(value) || isNaN(parseFloat(value))) !isValidNumber &&
!isValidEventID
) { ) {
filter[key] = value.includes(",") ? value.split(",") : [value]; filter[key] = value.includes(",") ? value.split(",") : [value];
} else { } else {