Skip to content

Commit b625fcc

Browse files
author
ci-bot
committed
update types and the reducer
1 parent 575e2dd commit b625fcc

File tree

3 files changed

+69
-8
lines changed

3 files changed

+69
-8
lines changed

libs/remix-ui/template-explorer-modal/reducers/template-explorer-reducer.tsx

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import React from 'react'
2-
import { MetadataType, TemplateExplorerWizardAction, TemplateExplorerWizardState, TemplateRepository, WizardStep } from '../types/template-explorer-types'
2+
import { ContractWizardAction, MetadataType, TemplateExplorerWizardAction, TemplateExplorerWizardState, TemplateRepository, WizardStep } from '../types/template-explorer-types'
33
import { metadata, templatesRepository } from '../src/utils/helpers'
4+
import * as erc20 from '../src/contractCode/erc20'
5+
import { getErc20ContractCode } from '../src/utils/contractWizardUtils'
46

57
export const initialState: TemplateExplorerWizardState = {
68
workspaceTemplateChosen: '',
@@ -17,7 +19,22 @@ export const initialState: TemplateExplorerWizardState = {
1719
setSearchTerm: (term: string) => {},
1820
wizardStep: 'template',
1921
setWizardStep: (step: WizardStep) => {},
20-
recentBump: 0
22+
recentBump: 0,
23+
contractType: 'erc20',
24+
contractOptions: {
25+
mintable: false,
26+
burnable: false,
27+
pausable: false
28+
},
29+
contractAccessControl: '',
30+
contractUpgradability: {
31+
uups: false,
32+
transparent: false
33+
},
34+
contractCode: erc20.erc20DefaultNoOptions('MyToken'),
35+
contractImport: '',
36+
tokenName: 'MyToken',
37+
contractName: 'MyToken'
2138
}
2239

2340
export const templateExplorerReducer = (state: TemplateExplorerWizardState, action: any) => {
@@ -61,8 +78,36 @@ export const templateExplorerReducer = (state: TemplateExplorerWizardState, acti
6178
console.log('action.payload wizardStep', action.payload)
6279
return { ...state, wizardStep: action.payload }
6380
}
64-
default:
65-
return state
81+
case ContractWizardAction.CONTRACT_TYPE_UPDATED: {
82+
return { ...state, contractType: action.payload }
83+
}
84+
case ContractWizardAction.CONTRACT_UPGRADABILITY_UPDATE: {
85+
return { ...state, contractUpgradability: action.payload }
86+
}
87+
case ContractWizardAction.CONTRACT_ACCESS_CONTROL_UPDATE: {
88+
return { ...state, contractAccessControl: action.payload }
89+
}
90+
case ContractWizardAction.CONTRACT_OPTIONS_UPDATE: {
91+
return { ...state, contractOptions: action.payload }
92+
}
93+
case ContractWizardAction.CONTRACT_CODE_UPDATE: {
94+
return { ...state, contractCode: action.payload }
95+
}
96+
case ContractWizardAction.CONTRACT_IMPORT_UPDATE: {
97+
return { ...state, contractImport: action.payload }
98+
}
99+
case ContractWizardAction.INITIALIZE_AS_GIT_REPO_UPDATE: {
100+
return { ...state, initializeAsGitRepo: action.payload }
101+
}
102+
case ContractWizardAction.TOKEN_NAME_UPDATE: {
103+
return { ...state, tokenName: action.payload }
104+
}
105+
case ContractWizardAction.CONTRACT_NAME_UPDATE: {
106+
return { ...state, contractName: action.payload }
107+
}
108+
default: {
109+
return { ...state, contractCode: getErc20ContractCode('erc20', state) }
110+
}
66111
}
67112
}
68113

libs/remix-ui/template-explorer-modal/src/components/contract-wizard.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import React,{ useEffect, useMemo, useReducer, useState } from 'react'
1+
import React,{ useContext, useEffect, useMemo, useReducer, useState } from 'react'
22
import Editor from '@monaco-editor/react'
33
import * as erc20 from '../contractCode/erc20'
44
import * as erc721 from '../contractCode/erc721'
55
import * as erc1155 from '../contractCode/erc1155'
66
import { AccessControlType, ContractTypeStrategy, ContractWizardAction } from '../../types/template-explorer-types'
77
import { contractWizardReducer } from '../../reducers/contract-wizard-reducer'
88
import { getErc1155ContractCode, getErc20ContractCode, getErc721ContractCode } from '../utils/contractWizardUtils'
9+
import { TemplateExplorerContext } from '../../context/template-explorer-context'
910

1011
const defaultStrategy: ContractTypeStrategy = {
1112
contractType: 'erc20',
@@ -34,7 +35,8 @@ export function ContractWizard () {
3435
})
3536
const [initGit, setInitGit] = useState(false)
3637
const [showEditModal, setShowEditModal] = useState(false)
37-
const [strategy, dispatch] = useReducer(contractWizardReducer, defaultStrategy)
38+
const { state, dispatch } = useContext(TemplateExplorerContext)
39+
const strategy = state
3840

3941
function toggleContractOption(key: keyof typeof strategy.contractOptions) {
4042
if (key === 'mintable') {
@@ -82,12 +84,11 @@ export function ContractWizard () {
8284
<option>Solidity</option>
8385
</select>
8486
<select className="form-select form-select-sm w-auto" defaultValue="ERC20" onChange={(e) => {
85-
dispatch({ type: ContractWizardAction.CONTRACT_TYPE_UPDATED, payload: e.target.value as 'erc20' | 'erc721' | 'erc1155' | 'custom' })
87+
dispatch({ type: ContractWizardAction.CONTRACT_TYPE_UPDATED, payload: e.target.value as 'erc20' | 'erc721' | 'erc1155' })
8688
}}>
8789
<option value="erc20">ERC20</option>
8890
<option value="erc721">ERC721</option>
8991
<option value="erc1155">ERC1155</option>
90-
<option value="custom">Custom</option>
9192
</select>
9293
</div>
9394
</div>

libs/remix-ui/template-explorer-modal/types/template-explorer-types.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@ export interface TemplateExplorerWizardState {
1515
setSearchTerm: (term: string) => void
1616
wizardStep: WizardStep
1717
setWizardStep: (step: WizardStep) => void
18+
contractType: ContractType
19+
contractOptions: {
20+
mintable?: boolean
21+
burnable?: boolean
22+
pausable?: boolean
23+
}
24+
contractAccessControl: AccessControlType
25+
contractUpgradability: {
26+
uups?: boolean
27+
transparent?: boolean
28+
}
29+
contractCode: string
30+
contractImport?: string
31+
contractName?: string
32+
tokenName?: string
1833
}
1934

2035
export type WizardStep = 'template' | 'finishSetup' | 'wizard' | 'import' | 'genAI' | 'generic' | 'remixdefault' | 'cookbook' | 'back' | 'reset'

0 commit comments

Comments
 (0)