diff --git a/src/frontend/src/components/buttons/PrintingActions.tsx b/src/frontend/src/components/buttons/PrintingActions.tsx index 4dbb997af9..7f028320b8 100644 --- a/src/frontend/src/components/buttons/PrintingActions.tsx +++ b/src/frontend/src/components/buttons/PrintingActions.tsx @@ -64,10 +64,12 @@ export function PrintingActions({ const [itemIdList, setItemIdList] = useState([]); + const [labelDialogOpen, setLabelDialogOpen] = useState(false); + // Fetch available printing fields via OPTIONS request const printingFields = useQuery({ - enabled: labelPrintingEnabled, - queryKey: ['printingFields', modelType, pluginKey], + enabled: labelDialogOpen && !!modelType && !!labelPrintingEnabled, + queryKey: ['printingFields', modelType, pluginKey, labelDialogOpen], gcTime: 500, queryFn: () => api @@ -126,9 +128,11 @@ export function PrintingActions({ fields: labelFields, timeout: 5000, onOpen: () => { + setLabelDialogOpen(true); setItemIdList(items); }, onClose: () => { + setLabelDialogOpen(false); setPluginKey(''); }, submitText: t`Print`, diff --git a/src/frontend/src/hooks/UseDataExport.tsx b/src/frontend/src/hooks/UseDataExport.tsx index 8237f326e8..bf5b2e5611 100644 --- a/src/frontend/src/hooks/UseDataExport.tsx +++ b/src/frontend/src/hooks/UseDataExport.tsx @@ -59,10 +59,12 @@ export default function useDataExport({ return queryParams; }, [pluginKey, filters, searchTerm]); + const [exportDialogOpen, setExportDialogOpen] = useState(false); + // Fetch available export fields via OPTIONS request const extraExportFields = useQuery({ - enabled: !!url && enabled, - queryKey: ['export-fields', pluginKey, url, exportParams], + enabled: !!url && enabled && exportDialogOpen, + queryKey: ['export-fields', pluginKey, url, exportParams, exportDialogOpen], gcTime: 500, queryFn: () => api @@ -112,6 +114,12 @@ export default function useDataExport({ submitText: t`Export`, successMessage: null, timeout: 30 * 1000, + onOpen: () => { + setExportDialogOpen(true); + }, + onClose: () => { + setExportDialogOpen(false); + }, onFormSuccess: (response: any) => { setExportId(response.pk); setPluginKey('inventree-exporter');