diff --git a/frontend/src/components/format/FormatPage.jsx b/frontend/src/components/format/FormatPage.jsx index aff556e..71f368c 100644 --- a/frontend/src/components/format/FormatPage.jsx +++ b/frontend/src/components/format/FormatPage.jsx @@ -228,20 +228,28 @@ function FormatPage() { const handleMassDelete = async () => { try { + const filteredFormats = getFilteredAndSortedFormats(); const selectedFormats = Array.from(selectedItems).map( - index => formats[index] + index => filteredFormats[index] ); + for (const format of selectedFormats) { await CustomFormats.delete( format.file_name.replace('.yml', '') ); } Alert.success('Selected formats deleted successfully'); - fetchFormats(); - toggleSelectionMode(); } catch (error) { console.error('Error deleting formats:', error); - Alert.error('Failed to delete selected formats'); + Alert.error( + error.response?.data?.error || + 'Failed to delete selected formats' + ); + } finally { + // Always reload data and reset selection state, regardless of success/failure + fetchFormats(); + toggleSelectionMode(); + clearSelection(); } }; diff --git a/frontend/src/components/regex/RegexPage.jsx b/frontend/src/components/regex/RegexPage.jsx index 04af328..0654b22 100644 --- a/frontend/src/components/regex/RegexPage.jsx +++ b/frontend/src/components/regex/RegexPage.jsx @@ -169,11 +169,14 @@ function RegexPage() { ); } Alert.success('Selected patterns deleted successfully'); - loadPatterns(); - toggleSelectionMode(); } catch (error) { console.error('Error deleting patterns:', error); Alert.error('Failed to delete selected patterns'); + } finally { + // Always reload data and reset selection state, regardless of success/failure + loadPatterns(); + toggleSelectionMode(); + clearSelection(); } };