finish conditional display of flattener button

pull/3321/head^2
Joseph Izang 2 years ago committed by Aniket
parent 1085d84959
commit 31e73fa1e1
  1. 3
      libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx
  2. 19
      libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx

@ -14,6 +14,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 {
@ -23,6 +24,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

@ -203,11 +203,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
@ -239,8 +234,13 @@ export const ContractSelection = (props: ContractSelectionProps) => {
const sources = api.getCompilationResult().source.sources const sources = api.getCompilationResult().source.sources
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
<> <>
@ -254,16 +254,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