Merge pull request #2965 from ethereum/resetWsOptions

reset workspace options
pull/5370/head
bunsenstraat 2 years ago committed by GitHub
commit 76b842f35a
  1. 53
      libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx
  2. 8
      libs/remix-ws-templates/src/templates/ozerc1155/index.ts
  3. 8
      libs/remix-ws-templates/src/templates/ozerc20/index.ts
  4. 8
      libs/remix-ws-templates/src/templates/ozerc721/index.ts

@ -16,8 +16,11 @@ export function Workspace () {
const [selectedWorkspace, setSelectedWorkspace] = useState<{ name: string, isGitRepo: boolean}>(null)
const [showDropdown, setShowDropdown] = useState<boolean>(false)
const displayOzCustomRef = useRef<HTMLDivElement>()
const ozFeatures = useRef({mintable: false, burnable: false, pausable: false})
const upgradeable = useRef()
const mintableCheckboxRef = useRef()
const burnableCheckboxRef = useRef()
const pausableCheckboxRef = useRef()
const transparentRadioRef = useRef()
const uupsRadioRef = useRef()
const global = useContext(FileSystemContext)
const workspaceRenameInput = useRef()
const workspaceCreateInput = useRef()
@ -113,10 +116,15 @@ export function Workspace () {
// @ts-ignore: Object is possibly 'null'.
const workspaceTemplateName = workspaceCreateTemplateInput.current.value || 'remixDefault'
const initGitRepo = initGitRepoRef.current.checked
const features = ozFeatures.current
const opts = {
upgradeable: upgradeable.current,
features
// @ts-ignore: Object is possibly 'null'.
mintable: mintableCheckboxRef.current.checked,
// @ts-ignore: Object is possibly 'null'.
burnable: burnableCheckboxRef.current.checked,
// @ts-ignore: Object is possibly 'null'.
pausable: pausableCheckboxRef.current.checked,
// @ts-ignore: Object is possibly 'null'.
upgradeable: transparentRadioRef.current.checked ? transparentRadioRef.current.value : ( uupsRadioRef.current.checked ? uupsRadioRef.current.value : false )
}
try {
@ -155,8 +163,16 @@ export function Workspace () {
// @ts-ignore
if (workspaceCreateTemplateInput.current.value.startsWith('oz') && displayOzCustomRef && displayOzCustomRef.current) {
displayOzCustomRef.current.style.display = 'block'
upgradeable.current = undefined
ozFeatures.current = {mintable: false, burnable: false, pausable: false}
// @ts-ignore
mintableCheckboxRef.current.checked = false
// @ts-ignore
burnableCheckboxRef.current.checked = false
// @ts-ignore
pausableCheckboxRef.current.checked = false
// @ts-ignore
transparentRadioRef.current.checked = false
// @ts-ignore
uupsRadioRef.current.checked = false
} else displayOzCustomRef.current.style.display = 'none'
// @ts-ignore
@ -177,18 +193,11 @@ export function Workspace () {
setShowDropdown(isOpen)
}
const handleUpgradeability = (e) => {
// @ts-ignore
upgradeable.current = e.target.value
const handleUpgradeability = () => {
// @ts-ignore
workspaceCreateInput.current.value = `${workspaceCreateTemplateInput.current.value + '_upgradeable'}_${Date.now()}`
}
const handleFeatures = (e) => {
// @ts-ignore
ozFeatures.current[e.target.value] = e.target.checked
}
const createModalMessage = () => {
return (
<>
@ -212,29 +221,29 @@ export function Workspace () {
<label className="form-check-label d-block mb-2" style={{fontWeight: "bolder"}}>Customize template</label>
<label id="wsName" className="form-check-label d-block mb-1">Features</label>
<div className="mb-2" onChange={(e) => handleFeatures(e)}>
<div className="mb-2">
<div className="d-flex ml-2 custom-control custom-checkbox">
<input className="custom-control-input" type="checkbox" name="feature" value="mintable" id="mintable" />
<input className="custom-control-input" type="checkbox" name="feature" value="mintable" id="mintable" ref={mintableCheckboxRef} />
<label className="form-check-label custom-control-label" htmlFor="mintable" data-id="featureTypeMintable" >Mintable</label>
</div>
<div className="d-flex ml-2 custom-control custom-checkbox">
<input className="custom-control-input" type="checkbox" name="feature" value="burnable" id="burnable" />
<input className="custom-control-input" type="checkbox" name="feature" value="burnable" id="burnable" ref={burnableCheckboxRef} />
<label className="form-check-label custom-control-label" htmlFor="burnable" data-id="featureTypeBurnable" >Burnable</label>
</div>
<div className="d-flex ml-2 custom-control custom-checkbox">
<input className="custom-control-input" type="checkbox" name="feature" value="pausable" id="pausable" />
<input className="custom-control-input" type="checkbox" name="feature" value="pausable" id="pausable" ref={pausableCheckboxRef} />
<label className="form-check-label custom-control-label" htmlFor="pausable" data-id="featureTypePausable" >Pausable</label>
</div>
</div>
<label id="wsName" className="form-check-label d-block mb-1">Upgradeability</label>
<div onChange={(e) => handleUpgradeability(e)}>
<div onChange={handleUpgradeability}>
<div className="d-flex ml-2 custom-control custom-radio">
<input className="custom-control-input" type="radio" name="upgradeability" value="transparent" id="transparent" />
<input className="custom-control-input" type="radio" name="upgradeability" value="transparent" id="transparent" ref={transparentRadioRef} />
<label className="form-check-label custom-control-label" htmlFor="transparent" data-id="upgradeTypeTransparent" >Transparent</label>
</div>
<div className="d-flex ml-2 custom-control custom-radio">
<input className="custom-control-input" type="radio" name="upgradeability" value="uups" id="uups" />
<input className="custom-control-input" type="radio" name="upgradeability" value="uups" id="uups" ref={uupsRadioRef} />
<label className="form-check-label custom-control-label" htmlFor="uups" data-id="upgradeTypeUups" >UUPS</label>
</div>
</div>

@ -1,10 +1,10 @@
import { erc1155 } from '@openzeppelin/wizard';
export default async (opts) => {
if (opts.features) {
erc1155.defaults.mintable = opts.features.mintable
erc1155.defaults.burnable = opts.features.burnable
erc1155.defaults.pausable = opts.features.pausable
if (opts) {
erc1155.defaults.mintable = opts.mintable
erc1155.defaults.burnable = opts.burnable
erc1155.defaults.pausable = opts.pausable
}
const filesObj = {

@ -1,10 +1,10 @@
import { erc20 } from '@openzeppelin/wizard';
export default async (opts) => {
if (opts.features) {
erc20.defaults.mintable = opts.features.mintable
erc20.defaults.burnable = opts.features.burnable
erc20.defaults.pausable = opts.features.pausable
if (opts) {
erc20.defaults.mintable = opts.mintable
erc20.defaults.burnable = opts.burnable
erc20.defaults.pausable = opts.pausable
}
const filesObj = {

@ -1,10 +1,10 @@
import { erc721 } from '@openzeppelin/wizard';
export default async (opts) => {
if (opts.features) {
erc721.defaults.mintable = opts.features.mintable
erc721.defaults.burnable = opts.features.burnable
erc721.defaults.pausable = opts.features.pausable
if (opts) {
erc721.defaults.mintable = opts.mintable
erc721.defaults.burnable = opts.burnable
erc721.defaults.pausable = opts.pausable
}
const filesObj = {

Loading…
Cancel
Save