diff --git a/apps/web/Components/Calculation/Form/AddProduct/config.ts b/apps/web/Components/Calculation/Form/AddProduct/config.ts index 7250fde..cf6142f 100644 --- a/apps/web/Components/Calculation/Form/AddProduct/config.ts +++ b/apps/web/Components/Calculation/Form/AddProduct/config.ts @@ -7,7 +7,7 @@ export const rows: FormTabRows = [ { title: 'Регистрация', }, - [['radioObjectRegistration', 'radioTypePTS'], { gridTemplateColumns: ['1fr 1fr'] }], + [['radioObjectRegistration', 'radioTypePTS'], { gridTemplateColumns: ['1fr', '1fr 1fr'] }], [['selectRegionRegistration', 'selectTownRegistration', 'selectObjectRegionRegistration']], [['selectObjectCategoryTax', 'selectObjectTypeTax', 'tbxVehicleTaxInYear']], [['tbxLeaseObjectYear', 'tbxLeaseObjectMotorPower', 'tbxVehicleTaxInLeasingPeriod']], diff --git a/apps/web/Components/Calculation/Form/LeasingObject/config.ts b/apps/web/Components/Calculation/Form/LeasingObject/config.ts index 232b605..6f7ab8e 100644 --- a/apps/web/Components/Calculation/Form/LeasingObject/config.ts +++ b/apps/web/Components/Calculation/Form/LeasingObject/config.ts @@ -1,4 +1,5 @@ import type { FormTabRows } from '../../lib/render-rows'; +import { transformRowsForMobile } from '../lib/utils'; export const id = 'leasing-object'; export const title = 'ПЛ'; @@ -16,3 +17,5 @@ export const rows: FormTabRows = [ [['selectLeaseObjectCategory', 'tbxEngineVolume', 'tbxMileage']], [['tbxMaxMass', 'tbxEngineHours', 'tbxVIN']], ]; + +export const mobileRows = transformRowsForMobile(rows); diff --git a/apps/web/Components/Calculation/Form/LeasingObject/index.jsx b/apps/web/Components/Calculation/Form/LeasingObject/index.jsx index f039e20..980a418 100644 --- a/apps/web/Components/Calculation/Form/LeasingObject/index.jsx +++ b/apps/web/Components/Calculation/Form/LeasingObject/index.jsx @@ -1,8 +1,14 @@ import renderFormRows from '../../lib/render-rows'; -import { id, rows, title } from './config'; +import { id, mobileRows, rows, title } from './config'; +import { Media } from '@/styles/media'; function LeasingObject() { - return renderFormRows(rows); + return ( + <> + {renderFormRows(mobileRows)} + {renderFormRows(rows)} + + ); } export default { diff --git a/apps/web/Components/Calculation/Form/SupplierAgent/config.ts b/apps/web/Components/Calculation/Form/SupplierAgent/config.ts index ceb720e..c6f8d24 100644 --- a/apps/web/Components/Calculation/Form/SupplierAgent/config.ts +++ b/apps/web/Components/Calculation/Form/SupplierAgent/config.ts @@ -1,4 +1,5 @@ import type { FormTabRows } from '../../lib/render-rows'; +import { transformRowsForMobile } from '../lib/utils'; export const id = 'supplier-agent'; export const title = 'Поставщик/агент'; @@ -20,3 +21,5 @@ export const rows: FormTabRows = [ [['selectCalcBrokerRewardCondition', 'selectFinDepartmentRewardCondtion'], defaultRowStyle], [['tbxCalcBrokerRewardSum', 'tbxFinDepartmentRewardSumm'], defaultRowStyle], ]; + +export const mobileRows = transformRowsForMobile(rows); diff --git a/apps/web/Components/Calculation/Form/SupplierAgent/index.jsx b/apps/web/Components/Calculation/Form/SupplierAgent/index.jsx index 2aa6e0c..b6effa2 100644 --- a/apps/web/Components/Calculation/Form/SupplierAgent/index.jsx +++ b/apps/web/Components/Calculation/Form/SupplierAgent/index.jsx @@ -1,8 +1,14 @@ import renderFormRows from '../../lib/render-rows'; -import { id, rows, title } from './config'; +import { id, mobileRows, rows, title } from './config'; +import { Media } from '@/styles/media'; function Leasing() { - return renderFormRows(rows); + return ( + <> + {renderFormRows(mobileRows)} + {renderFormRows(rows)} + + ); } export default { diff --git a/apps/web/Components/Calculation/Form/lib/utils.js b/apps/web/Components/Calculation/Form/lib/utils.js new file mode 100644 index 0000000..b744f2e --- /dev/null +++ b/apps/web/Components/Calculation/Form/lib/utils.js @@ -0,0 +1,32 @@ +/** + * + * @param {import('../../lib/render-rows').FormTabRows} rows + * @returns {import('../../lib/render-rows').FormTabRows} + */ +export function transformRowsForMobile(rows) { + const mobileRows = []; + let columnGroups = {}; + + rows.forEach((row) => { + if (Array.isArray(row)) { + row[0].forEach((item, index) => { + if (!columnGroups[index]) { + columnGroups[index] = []; + } + columnGroups[index].push(item); + }); + } else { + Object.values(columnGroups).forEach((group) => { + mobileRows.push([group, { gridTemplateColumns: '1fr' }]); + }); + columnGroups = {}; + mobileRows.push(row); + } + }); + + Object.values(columnGroups).forEach((group) => { + mobileRows.push([group, { gridTemplateColumns: '1fr' }]); + }); + + return mobileRows; +}