import {useRef, useState} from 'react' import {createPortal} from 'react-dom' import {Modal} from 'react-bootstrap' import {defaultCreateAppData, ICreateAppData} from './IAppModels' import {StepperComponent} from '../../../assets/ts/components' import {KTIcon} from '../../../helpers' import {Step1} from './steps/Step1' import {Step2} from './steps/Step2' import {Step3} from './steps/Step3' import {Step4} from './steps/Step4' import {Step5} from './steps/Step5' type Props = { show: boolean handleClose: () => void } const modalsRoot = document.getElementById('root-modals') || document.body const CreateAppModal = ({show, handleClose}: Props) => { const stepperRef = useRef(null) const [ stepper, setStepper ] = useState(null) const [data, setData] = useState(defaultCreateAppData) const [hasError, setHasError] = useState(false) const loadStepper = () => { setStepper(StepperComponent.createInsance(stepperRef.current as HTMLDivElement)) } const updateData = (fieldsToUpdate: Partial) => { const updatedData = {...data, ...fieldsToUpdate} setData(updatedData) } const checkAppBasic = (): boolean => { if (!data.appBasic.appName || !data.appBasic.appType) { return false } return true } const checkAppDataBase = (): boolean => { if (!data.appDatabase.databaseName || !data.appDatabase.databaseSolution) { return false } return true } const prevStep = () => { if (!stepper) { return } stepper.goPrev() } const nextStep = () => { setHasError(false) if (!stepper) { return } if (stepper.getCurrentStepIndex() === 1) { if (!checkAppBasic()) { setHasError(true) return } } if (stepper.getCurrentStepIndex() === 3) { if (!checkAppDataBase()) { setHasError(true) return } } stepper.goNext() } const submit = () => { window.location.reload() } return createPortal( , modalsRoot ) } export {CreateAppModal}