import * as React from 'react'; import { IRequestFormProps, RequestTypeId } from '../models/types'; type FormComponent = React.ComponentType; /** * Реестр форм: id типа заявки → лениво загружаемая форма. * Каждая форма — отдельный чанк (React.lazy): в бандл первого экрана не попадает, * подтягивается только при открытии. Добавить форму = папка + строка здесь. */ const formRegistry: Record> = { 'recruiting-selection': React.lazy( () => import( /* webpackChunkName: 'form-recruiting-selection' */ './RecruitingSelection/RecruitingSelectionForm' ) ), 'recruiting-hire': React.lazy( () => import(/* webpackChunkName: 'form-recruiting-hire' */ './RecruitingHire/RecruitingHireForm') ), 'recruiting-referral': React.lazy( () => import(/* webpackChunkName: 'form-referral' */ './Referral/ReferralForm') ), 'it-workplace-setup': React.lazy( () => import(/* webpackChunkName: 'form-workplace-setup' */ './WorkplaceSetup/WorkplaceSetupForm') ), 'it-1c-ticket': React.lazy( () => import(/* webpackChunkName: 'form-1c-ticket' */ './Ticket1C/Ticket1CForm') ), 'hr-vacation': React.lazy( () => import(/* webpackChunkName: 'form-vacation' */ './Vacation/VacationForm') ), 'hr-unpaid-leave': React.lazy( () => import(/* webpackChunkName: 'form-unpaid-leave' */ './UnpaidLeave/UnpaidLeaveForm') ), 'hr-skud-explanation': React.lazy( () => import(/* webpackChunkName: 'form-skud-explanation' */ './SkudExplanation/SkudExplanationForm') ), 'hr-business-trip': React.lazy( () => import(/* webpackChunkName: 'form-business-trip' */ './BusinessTrip/BusinessTripForm') ), 'wh-tmc-transfer': React.lazy( () => import(/* webpackChunkName: 'form-tmc-transfer' */ './TmcTransfer/TmcTransferForm') ), 'wh-service-request': React.lazy( () => import(/* webpackChunkName: 'form-service-request' */ './ServiceRequest/ServiceRequestForm') ), 'clearance-form': React.lazy( () => import(/* webpackChunkName: 'form-clearance' */ './Clearance/ClearanceForm') ), 'hr-dismissal': React.lazy( () => import(/* webpackChunkName: 'form-dismissal' */ './Dismissal/DismissalForm') ), 'hr-transfer': React.lazy( () => import(/* webpackChunkName: 'form-employee-transfer' */ './EmployeeTransfer/EmployeeTransferForm') ), 'wh-concrete-request': React.lazy( () => import(/* webpackChunkName: 'form-concrete-request' */ './ConcreteRequest/ConcreteRequestForm') ) }; export function getFormComponent( id: RequestTypeId ): React.LazyExoticComponent | undefined { return formRegistry[id]; }