fix: cancel marketplace debounced search when clear search keywords (#16614)

This commit is contained in:
zxhlyh 2025-03-24 15:17:12 +08:00 committed by GitHub
parent 770c461a8f
commit 05eaef84bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 2 deletions

View File

@ -143,6 +143,7 @@ export const MarketplaceContextProvider = ({
resetPlugins, resetPlugins,
queryPlugins, queryPlugins,
queryPluginsWithDebounced, queryPluginsWithDebounced,
cancelQueryPluginsWithDebounced,
isLoading: isPluginsLoading, isLoading: isPluginsLoading,
} = useMarketplacePlugins() } = useMarketplacePlugins()
@ -209,12 +210,13 @@ export const MarketplaceContextProvider = ({
const handleQuery = useCallback((debounced?: boolean) => { const handleQuery = useCallback((debounced?: boolean) => {
if (!searchPluginTextRef.current && !filterPluginTagsRef.current.length) { if (!searchPluginTextRef.current && !filterPluginTagsRef.current.length) {
cancelQueryPluginsWithDebounced()
handleQueryMarketplaceCollectionsAndPlugins() handleQueryMarketplaceCollectionsAndPlugins()
return return
} }
handleQueryPlugins(debounced) handleQueryPlugins(debounced)
}, [handleQueryMarketplaceCollectionsAndPlugins, handleQueryPlugins]) }, [handleQueryMarketplaceCollectionsAndPlugins, handleQueryPlugins, cancelQueryPluginsWithDebounced])
const handleSearchPluginTextChange = useCallback((text: string) => { const handleSearchPluginTextChange = useCallback((text: string) => {
setSearchPluginText(text) setSearchPluginText(text)

View File

@ -89,7 +89,7 @@ export const useMarketplacePlugins = () => {
handleUpdatePlugins(pluginsSearchParams) handleUpdatePlugins(pluginsSearchParams)
}, [handleUpdatePlugins]) }, [handleUpdatePlugins])
const { run: queryPluginsWithDebounced } = useDebounceFn((pluginsSearchParams: PluginsSearchParams) => { const { run: queryPluginsWithDebounced, cancel: cancelQueryPluginsWithDebounced } = useDebounceFn((pluginsSearchParams: PluginsSearchParams) => {
handleUpdatePlugins(pluginsSearchParams) handleUpdatePlugins(pluginsSearchParams)
}, { }, {
wait: 500, wait: 500,
@ -101,6 +101,7 @@ export const useMarketplacePlugins = () => {
resetPlugins, resetPlugins,
queryPlugins, queryPlugins,
queryPluginsWithDebounced, queryPluginsWithDebounced,
cancelQueryPluginsWithDebounced,
isLoading: isPending, isLoading: isPending,
} }
} }