From 4bff3361ee2d739c48cf540de5e9e91fcc2cb378 Mon Sep 17 00:00:00 2001 From: Dima Rifai <dima.rifai@gmail.com> Date: Mon, 17 Mar 2025 12:31:58 +0200 Subject: [PATCH] Issue #486 - Handle Select Financial --- components/OperationTypesDialog.tsx | 33 ++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/components/OperationTypesDialog.tsx b/components/OperationTypesDialog.tsx index 507165f0..4c6a0bfd 100644 --- a/components/OperationTypesDialog.tsx +++ b/components/OperationTypesDialog.tsx @@ -17,7 +17,7 @@ import Chip from "./Chip"; import { categorizedOperationTypes } from "@/utils/CategorizedOperationTypes"; import Explorer from "@/types/Explorer"; import { ChevronDown, Search } from "lucide-react"; - +import { FinancialOperationTypes } from "@/utils/FinancialOperationTypes"; type OperationTypesDialogProps = { operationTypes?: Explorer.ExtendedOperationTypePattern[]; triggerTitle: string; @@ -187,6 +187,30 @@ const OperationTypesDialog: React.FC<OperationTypesDialogProps> = ({ setExpandedSections(allMatchingCategories); }; + const selectFinancial = () => { + const financialOperationTypePatterns = operationTypes?.filter(operationType => + FinancialOperationTypes.includes(operationType.operation_name) + ); + + if (!financialOperationTypePatterns) { + return; + } + + const financialIds = financialOperationTypePatterns + .filter(filterOperations) + .map((operationType) => operationType.op_type_id); + + let finaList = [...financialIds, ...selectedOperationsIds]; + finaList = finaList.filter((id, index) => finaList.indexOf(id) === index); + setSelectedOperationsIds([...finaList]); + const allMatchingCategories = getCategoriesToExpand( + finaList, + operationTypes, + categorizedOperationTypes + ); + setExpandedSections(allMatchingCategories); + }; + const selectVirtual = () => { const virtualIds = virtualOperations .filter(filterOperations) @@ -448,6 +472,13 @@ const OperationTypesDialog: React.FC<OperationTypesDialogProps> = ({ > Virtual </Button> + <Button + type="button" + className="operations-button text-xs" + onClick={selectFinancial} + > + Financial + </Button> <Button type="button" className="operations-button text-xs" -- GitLab