diff --git a/web/src/components/overlay/detail/SearchDetailDialog.tsx b/web/src/components/overlay/detail/SearchDetailDialog.tsx index 3b978bbe1..68e3e8a90 100644 --- a/web/src/components/overlay/detail/SearchDetailDialog.tsx +++ b/web/src/components/overlay/detail/SearchDetailDialog.tsx @@ -1078,12 +1078,31 @@ function ObjectDetailsTab({ }); setState("submitted"); - setSearch({ - ...search, - plus_id: "new_upload", - }); + mutate( + (key) => + typeof key === "string" && + (key.includes("events") || + key.includes("events/search") || + key.includes("events/explore")), + (currentData: SearchResult[][] | SearchResult[] | undefined) => { + if (!currentData) return currentData; + // optimistic update + return currentData + .flat() + .map((event) => + event.id === search.id + ? { ...event, plus_id: "new_upload" } + : event, + ); + }, + { + optimisticData: true, + rollbackOnError: true, + revalidate: false, + }, + ); }, - [search, setSearch], + [search, mutate], ); const popoverContainerRef = useRef(null); @@ -1243,7 +1262,6 @@ function ObjectDetailsTab({ {search.data.type === "object" && - !search.plus_id && config?.plus?.enabled && search.has_snapshot && (