import React, { FC } from "react"; import { MDBRow, MDBCol, MDBIcon } from "mdbreact"; import LineGraphic from "../commonV2/LineGraphic"; import { getSimpleOptions, SimpleOption } from "../utils"; import { DAOForm } from "@dorgtech/daocreator-lib"; const FirstStep: FC = form => { const { daoName, tokenSymbol } = form.$.config.$; return (

Config

Name: {daoName.value} Symbol: {tokenSymbol.value}
); }; const SecondStep: FC = form => (

Schemes

{getSimpleOptions(form.$.schemes).map( ({ text, checked }: SimpleOption, index: number) => (

{text}

) )}
); const ThirdStep: FC = form => { const { config, members } = form.$; const { daoName, tokenSymbol } = config.$; const reputationConfig = { showPercentage: false, height: "0.5rem", symbol: "REP", dataKey: "reputation", nameKey: "address" }; const tokenConfig = { showPercentage: false, height: "0.5rem", symbol: tokenSymbol.value, dataKey: "tokens", nameKey: "address" }; let totalReputationAmount = 0; let totalTokenAmount = 0; members.toState().map(member => { totalReputationAmount += member.reputation; if (member.tokens) totalTokenAmount += member.tokens; return member; }); const numberOfMembers = members.$.length; const membersTokenCount = (count: any, member: any) => +Number(member.$.tokens.value) + count; const hasTokens = members.$.reduce(membersTokenCount, 0) > 0; return (

Members

{numberOfMembers} Member{numberOfMembers > 1 && "s"}

Reputation Distribution

{hasTokens && (

{daoName.value} Token Distribution

)}
); }; const steps = [FirstStep, SecondStep, ThirdStep]; interface Props { recoveredForm: any; } export const Review: FC = ({ recoveredForm }) => ( <> {steps.map((ActualStep, index: number) => ( ))} ); const styles = { first: { row: { marginRight: "auto", marginLeft: "1.5rem", whiteSpace: "nowrap" } }, second: { container: { marginTop: 28 }, checked: { marginRight: "10px" }, unchecked: { // x icon is smaller marginLeft: "3px", marginRight: "12px" } }, third: { container: { marginTop: 28, paddingRight: "8rem" }, reputationDistribution: { width: "17.5em" }, lineGraphic: { padding: "unset" }, hasTokens: { paddingTop: "20px", width: "17.5em" } } };