import { type CalcValueProps } from '../../ui-kit/Calculator/CalculatorProps'; import { checkRangeByKeys } from '../../ui-kit/Calculator/rangeHelpers'; import { type CreditCalculatorParamsViewSettings, type CreditCalculatorSourceBookParams, type CreditCalculatorUserInputParams, } from './CalculatorCreditContent'; import { checkCreditSourceBookRowCommonParams } from './checkCreditSourceBookRowCommonParams'; import { DEFAULT_CREDIT_CALCULATOR_PARAMS } from './defaultCreditCalculatorParams'; interface GetCreditCalculatorRateParamsProps extends CalcValueProps { rateRows: CreditCalculatorSourceBookParams[]; userInputParams: CreditCalculatorUserInputParams; paramsViewSettings?: CreditCalculatorParamsViewSettings; } export const getCreditCalculatorRateParams = ({ rateRows = [], userInputParams, paramsViewSettings, moneyValue, monthsValue, }: GetCreditCalculatorRateParamsProps) => rateRows?.find( (row) => checkCreditSourceBookRowCommonParams({ row, userInputParams, paramsViewSettings, }) && checkRangeByKeys(moneyValue, ['minSum', 'maxSum'], row) && checkRangeByKeys(monthsValue, ['minMonths', 'maxMonths'], row), ) || DEFAULT_CREDIT_CALCULATOR_PARAMS;