diff --git a/components/OperationTypesDialog.tsx b/components/OperationTypesDialog.tsx index 507165f049daf84375b704fb1531b91f8f71f8cf..4c6a0bfd7e16587e482e6bf09896c305dbeec62a 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"