finish conditional display of flattener button

pull/3321/head^2
Joseph Izang 2 years ago committed by Aniket
parent c4adffb706
commit e0fe97cb88
  1. 3
      libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx
  2. 18
      libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx

@ -17,6 +17,7 @@ import axios, { AxiosResponse } from 'axios'
import './css/style.css' import './css/style.css'
const defaultPath = "compiler_config.json" const defaultPath = "compiler_config.json"
declare global { declare global {
@ -26,6 +27,8 @@ declare global {
} }
} }
type AstNode = { id: number, literals: string[], nodeType: string, src: string }
const _paq = window._paq = window._paq || [] //eslint-disable-line const _paq = window._paq = window._paq || [] //eslint-disable-line

@ -34,6 +34,7 @@ export const ContractSelection = (props: ContractSelectionProps) => {
} }
}, [contractList]) }, [contractList])
const resetStorage = () => { const resetStorage = () => {
setStorage('') setStorage('')
} }
@ -199,11 +200,6 @@ export const ContractSelection = (props: ContractSelectionProps) => {
return copyContractProperty('bytecode') return copyContractProperty('bytecode')
} }
/**
* Local property to hold flattend contract result
*/
// let content4AST: string
/** /**
* Take AST and generates a UML diagram of compiled contract as svg * Take AST and generates a UML diagram of compiled contract as svg
* @returns void * @returns void
@ -236,7 +232,12 @@ export const ContractSelection = (props: ContractSelectionProps) => {
setContent4AST(concatSourceFiles(sorted, sources)) setContent4AST(concatSourceFiles(sorted, sources))
} }
const showFlattener = () => {
const confirmNodeType = api.getCompilationResult().data.sources[api.currentFile].ast.nodes.some(x => x.nodeType === 'ImportDirective')
const currentFile = api.currentFile.split('/')[1]
const contractListConfirm = contractList.some(x => x.file === currentFile)
return confirmNodeType && contractListConfirm
}
return ( return (
// define swarm logo // define swarm logo
<> <>
@ -250,16 +251,17 @@ export const ContractSelection = (props: ContractSelectionProps) => {
</select> </select>
</div> </div>
<article className="mt-2 pb-0"> <article className="mt-2 pb-0">
<CustomTooltip {showFlattener() && <CustomTooltip
placement="right-start" placement="right-start"
tooltipId="flattenContractTooltip" tooltipId="flattenContractTooltip"
tooltipClasses="text-nowrap" tooltipClasses="text-nowrap"
tooltipText={`${intl.formatMessage({ id: 'solidity.flattenLabel' })}`} tooltipText={`${intl.formatMessage({ id: 'solidity.flattenLabel' })}`}
> >
<button id="contractFlattener" onClick={flattenContract} className="btn btn-secondary btn-block mt-2"> <button id="contractFlattener" onClick={flattenContract} className="btn btn-secondary btn-block mt-2">
<FormattedMessage id='solidity.flattenLabel' />{api.currentFile} <FormattedMessage id='solidity.flattenLabel' /> {api.currentFile}
</button> </button>
</CustomTooltip> </CustomTooltip>
}
<CustomTooltip <CustomTooltip
placement="right-start" placement="right-start"
tooltipId="generateUMLTooltip" tooltipId="generateUMLTooltip"

Loading…
Cancel
Save