This is an automated email from the ASF dual-hosted git repository. andytaylor pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/activemq-artemis-console.git
commit cb41427541142e05acea71b555d73101d1e401a2 Author: GChuf <[email protected]> AuthorDate: Mon Sep 1 15:32:48 2025 +0200 ARTEMIS-5641 - small improvements applyFilter doesn't filter columns and operations anymore, visibleColumns are filtered only once --- .../src/table/ArtemisFilters.tsx | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisFilters.tsx b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisFilters.tsx index 8fd844c..a1494c5 100644 --- a/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisFilters.tsx +++ b/artemis-console-extension/artemis-extension/packages/artemis-console-plugin/src/table/ArtemisFilters.tsx @@ -27,22 +27,23 @@ export type ArtemisFiltersProps = { export const ArtemisFilters: React.FC<ArtemisFiltersProps> = ({ columns, operationOptions, initialFilter, onApplyFilter }) => { const searchRef = useRef<HTMLInputElement>(null); + const [filterColumn, setFilterColumn] = useState( - columns.find(c => c.id === initialFilter.column)?.name + columns.find(c => c.id === initialFilter.column) ); const [filterOperation, setFilterOperation] = useState( - operationOptions.find(o => o.id === initialFilter.operation)?.name + operationOptions.find(o => o.id === initialFilter.operation) ); const [columnOpen, setColumnOpen] = useState(false); const [operationOpen, setOperationOpen] = useState(false); + const visibleColumns = columns.filter(c => c.visible); + const applyFilter = () => { - const operation = operationOptions.find(operation => operation.name === filterOperation); - const column = columns.find(column => column.name === filterColumn); const filterValue = searchRef.current?.value ?? ""; - if (operation && column) { - onApplyFilter({ column: column.id, operation: operation.id, input: filterValue }); + if (filterOperation && filterColumn) { + onApplyFilter({ column: filterColumn.id, operation: filterOperation.id, input: filterValue }); } } @@ -52,17 +53,20 @@ export const ArtemisFilters: React.FC<ArtemisFiltersProps> = ({ columns, operati <Select toggle={(toggleRef: React.Ref<MenuToggleElement>) => ( <MenuToggle isFullWidth role='menu' ref={toggleRef} onClick={() => setColumnOpen(prev => !prev)}> - {filterColumn} + {filterColumn?.name} </MenuToggle> )} aria-label="Select Input" isOpen={columnOpen} onOpenChange={setColumnOpen} - onSelect={(_e, selection) => { setFilterColumn(selection as string); setColumnOpen(false); }} - selected={filterColumn} + onSelect={(_e, selection) => { + const selectedColumn = columns.find(c => c.name === selection); + setFilterColumn(selectedColumn); + setColumnOpen(false); }} + selected={filterColumn?.name} > <SelectList> - {columns.filter(c => c.visible).map(column => ( + {visibleColumns.map(column => ( <SelectOption key={column.id} value={column.name}>{column.name}</SelectOption> ))} </SelectList> @@ -73,14 +77,17 @@ export const ArtemisFilters: React.FC<ArtemisFiltersProps> = ({ columns, operati <Select toggle={(toggleRef: React.Ref<MenuToggleElement>) => ( <MenuToggle isFullWidth role='menu' ref={toggleRef} onClick={() => setOperationOpen(prev => !prev)}> - {filterOperation} + {filterOperation?.name} </MenuToggle> )} aria-label="Select Input" isOpen={operationOpen} onOpenChange={setOperationOpen} - onSelect={(_e, selection) => { setFilterOperation(selection as string); setOperationOpen(false); }} - selected={filterOperation} + onSelect={(_e, selection) => { + const selectedOperation = operationOptions.find(o => o.name === selection); + setFilterOperation(selectedOperation); + setOperationOpen(false); }} + selected={filterOperation?.name} > <SelectList> {operationOptions.map(operation => ( --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information, visit: https://activemq.apache.org/contact
