From e0fe97cb88949b9d1a4dfca5fefab1a13dacfecd Mon Sep 17 00:00:00 2001 From: Joseph Izang Date: Mon, 26 Dec 2022 19:38:16 +0100 Subject: [PATCH] finish conditional display of flattener button --- .../src/lib/compiler-container.tsx | 3 +++ .../src/lib/contract-selection.tsx | 20 ++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx index c9843800c1..6281362a10 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx @@ -17,6 +17,7 @@ import axios, { AxiosResponse } from 'axios' import './css/style.css' + const defaultPath = "compiler_config.json" 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 diff --git a/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx b/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx index 9ec3b1bb4d..29b8340c00 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx @@ -34,6 +34,7 @@ export const ContractSelection = (props: ContractSelectionProps) => { } }, [contractList]) + const resetStorage = () => { setStorage('') } @@ -199,11 +200,6 @@ export const ContractSelection = (props: ContractSelectionProps) => { 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 * @returns void @@ -235,8 +231,13 @@ export const ContractSelection = (props: ContractSelectionProps) => { const sources = api.getCompilationResult().source.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 ( // define swarm logo <> @@ -250,16 +251,17 @@ export const ContractSelection = (props: ContractSelectionProps) => {
- + }