import React, { PureComponent, FormEvent, ChangeEvent } from 'react' import Input from '../../components/atoms/Form/Input' import Label from '../../components/atoms/Form/Label' import Row from '../../components/atoms/Form/Row' import Button from '../../components/atoms/Button' import { User, Market } from '../../context' import Files from './Files/' import StepRegisterContent from './StepRegisterContent' import styles from './Step.module.scss' import Web3message from '../../components/organisms/Web3message' interface Fields { label: string placeholder?: string help?: string type: string required?: boolean options?: string rows?: number } interface StepProps { currentStep: number index: number inputChange( event: | FormEvent | ChangeEvent | ChangeEvent | ChangeEvent ): void fields?: Fields state: any title: string description: string next(): void prev(): void totalSteps: number tryAgain(): void toStart(): void publishedDid?: string content?: string } export default class Step extends PureComponent { public static contextType = User public previousButton() { const { currentStep, prev } = this.props if (currentStep !== 1) { return ( ) } return null } public nextButton() { const { currentStep, next, totalSteps, state } = this.props if (currentStep < totalSteps) { return ( ) } return null } public render() { const { currentStep, index, title, description, fields, inputChange, state, totalSteps, tryAgain, toStart, content } = this.props if (currentStep !== index + 1) { return null } const lastStep = currentStep === totalSteps return ( <>

{title}

{description}

{fields && Object.entries(fields).map(([key, value]) => { if (key === 'files') { return ( ) } return ( ) })} {lastStep && ( )}
{this.previousButton()} {this.nextButton()} {lastStep && ( {(market) => ( )} )}
{!lastStep && }
) } }