From 44c8e51c6fc6689814a43b280257887a14a5f1cc Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 21 Dec 2023 08:21:30 +0100 Subject: [PATCH 1/4] fix context --- libs/remix-ui/app/src/index.ts | 2 +- .../app/src/lib/remix-app/context/context.tsx | 6 +- .../app/src/lib/remix-app/remix-app.tsx | 81 ++++++++++--------- .../src/lib/components/homeTabGetStarted.tsx | 6 +- .../home-tab/src/lib/remix-ui-home-tab.tsx | 4 +- .../panel/src/lib/main/main-panel.tsx | 24 +++--- .../src/lib/components/InactivePluginCard.tsx | 4 +- .../search/src/lib/components/Search.tsx | 6 +- .../src/lib/compiler-container.tsx | 7 +- .../src/lib/components/compiler-dropdown.tsx | 7 +- .../src/lib/solidity-unit-testing.tsx | 10 +-- .../src/lib/remix-ui-vertical-icons-panel.tsx | 4 +- .../src/lib/components/electron-menu.tsx | 4 +- .../components/file-explorer-context-menu.tsx | 4 +- .../components/workspace-hamburger-item.tsx | 4 +- .../workspace/src/lib/remix-ui-workspace.tsx | 4 +- 16 files changed, 92 insertions(+), 85 deletions(-) diff --git a/libs/remix-ui/app/src/index.ts b/libs/remix-ui/app/src/index.ts index 7b6fb7e2d5..e686172a78 100644 --- a/libs/remix-ui/app/src/index.ts +++ b/libs/remix-ui/app/src/index.ts @@ -1,5 +1,5 @@ export { default as RemixApp } from './lib/remix-app/remix-app' -export { dispatchModalContext, dispatchModalInterface, AppContext, appProviderContextType, appPlatformTypes } from './lib/remix-app/context/context' +export { dispatchModalContext, dispatchModalInterface, AppContext, appProviderContextType, appPlatformTypes, platformContext, onLineContext } from './lib/remix-app/context/context' export { ModalProvider, useDialogDispatchers } from './lib/remix-app/context/provider' export { AppModal } from './lib/remix-app/interface/index' export { AlertModal } from './lib/remix-app/interface/index' diff --git a/libs/remix-ui/app/src/lib/remix-app/context/context.tsx b/libs/remix-ui/app/src/lib/remix-app/context/context.tsx index d0fca4b180..a3cc4b7c9e 100644 --- a/libs/remix-ui/app/src/lib/remix-app/context/context.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/context/context.tsx @@ -8,9 +8,6 @@ export type appProviderContextType = { showEnter: boolean, appManager: any modal: any - layout: any - platform: appPlatformTypes - online: boolean } export enum appPlatformTypes { @@ -18,8 +15,9 @@ export enum appPlatformTypes { desktop = 'desktop' } - export const AppContext = React.createContext(null) +export const onLineContext = React.createContext(null) +export const platformContext = React.createContext(null) export interface dispatchModalInterface { modal: (data: AppModal) => void diff --git a/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx b/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx index 21fd6617ff..1393e6bc7d 100644 --- a/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx @@ -8,7 +8,7 @@ import DragBar from './components/dragbar/dragbar' import {AppProvider} from './context/provider' import AppDialogs from './components/modals/dialogs' import DialogViewPlugin from './components/modals/dialogViewPlugin' -import { AppContext, appProviderContextType } from './context/context' +import { appProviderContextType, onLineContext, platformContext } from './context/context' import { FormattedMessage, IntlProvider } from 'react-intl' import {CustomTooltip} from '@remix-ui/helper' import {UsageTypes} from './types' @@ -105,10 +105,7 @@ const RemixApp = (props: IRemixAppUi) => { showMatamo: props.app.showMatamo, appManager: props.app.appManager, showEnter: props.app.showEnter, - modal: props.app.notification, - layout: props.app.layout, - platform: props.app.platform, - online: online + modal: props.app.notification } const handleUserChosenType = async (type) => { @@ -151,41 +148,45 @@ const RemixApp = (props: IRemixAppUi) => { return ( //@ts-ignore - - - setShowEnterDialog(true)}> - {showEnterDialog && handleUserChosenType(type)}>} -
-
- {props.app.menuicons.render()} -
-
- {props.app.sidePanel.render()} -
- -
- - }> -
-
-
-
-
{props.app.hiddenPanel.render()}
- - -
+ + + + + setShowEnterDialog(true)}> + {showEnterDialog && handleUserChosenType(type)}>} +
+
+ {props.app.menuicons.render()} +
+
+ {props.app.sidePanel.render()} +
+ +
+ + }> +
+
+
+
+
{props.app.hiddenPanel.render()}
+ + +
+
+
) } diff --git a/libs/remix-ui/home-tab/src/lib/components/homeTabGetStarted.tsx b/libs/remix-ui/home-tab/src/lib/components/homeTabGetStarted.tsx index 2c99939551..5a9343b068 100644 --- a/libs/remix-ui/home-tab/src/lib/components/homeTabGetStarted.tsx +++ b/libs/remix-ui/home-tab/src/lib/components/homeTabGetStarted.tsx @@ -7,7 +7,9 @@ import Carousel from 'react-multi-carousel' import WorkspaceTemplate from './workspaceTemplate' import 'react-multi-carousel/lib/styles.css' import CustomNavButtons from './customNavButtons' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' + + declare global { interface Window { _paq: any @@ -19,7 +21,7 @@ interface HomeTabGetStartedProps { } function HomeTabGetStarted({plugin}: HomeTabGetStartedProps) { - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const themeFilter = useContext(ThemeContext) const carouselRef = useRef({}) const carouselRefDiv = useRef(null) diff --git a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx index 0750d61e90..3de9cdbc65 100644 --- a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx +++ b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx @@ -9,7 +9,7 @@ import HomeTabScamAlert from './components/homeTabScamAlert' import HomeTabGetStarted from './components/homeTabGetStarted' import HomeTabFeatured from './components/homeTabFeatured' import HomeTabFeaturedPlugins from './components/homeTabFeaturedPlugins' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' import { HomeTabFileElectron } from './components/homeTabFileElectron' import { LanguageOptions } from './components/homeTablangOptions' @@ -24,7 +24,7 @@ export interface RemixUiHomeTabProps { } export const RemixUiHomeTab = (props: RemixUiHomeTabProps) => { - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const {plugin} = props const [state, setState] = useState<{ diff --git a/libs/remix-ui/panel/src/lib/main/main-panel.tsx b/libs/remix-ui/panel/src/lib/main/main-panel.tsx index ff9b395007..f8153a23c7 100644 --- a/libs/remix-ui/panel/src/lib/main/main-panel.tsx +++ b/libs/remix-ui/panel/src/lib/main/main-panel.tsx @@ -3,17 +3,17 @@ import React, {useContext, useEffect, useRef, useState} from 'react' // eslint-d import DragBar from '../dragbar/dragbar' import RemixUIPanelPlugin from '../plugins/panel-plugin' import {PluginRecord} from '../types' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' import './main-panel.css' export type RemixUIMainPanelProps = { - Context: React.Context + layout: any } const RemixUIMainPanel = (props: RemixUIMainPanelProps) => { - const {platform} = useContext(AppContext) - const appContext = useContext(props.Context) + const platform = useContext(platformContext) + const {layout} = props const [plugins, setPlugins] = useState([]) const editorRef = useRef(null) const mainPanelRef = useRef(null) @@ -23,9 +23,9 @@ const RemixUIMainPanel = (props: RemixUIMainPanelProps) => { const refs = [tabsRef, editorRef, mainPanelRef, terminalRef] const renderPanels = () => { - if (appContext) { + if (layout.panels) { const pluginPanels: PluginRecord[] = [] - Object.values(appContext.layout.panels).map((panel: any) => { + Object.values(layout.panels).map((panel: any) => { pluginPanels.push({ profile: panel.plugin.profile, active: panel.active, @@ -40,23 +40,23 @@ const RemixUIMainPanel = (props: RemixUIMainPanelProps) => { useEffect(() => { renderPanels() - appContext.layout.event.on('change', () => { + layout.event.on('change', () => { renderPanels() }) return () => { - appContext.layout.event.off('change') + layout.event.off('change') } }, []) const showTerminal = (hide: boolean) => { - appContext.layout.panels.terminal.minimized = hide - appContext.layout.event.emit('change', appContext.layout.panels) - appContext.layout.emit('change', appContext.layout.panels) + layout.panels.terminal.minimized = hide + layout.event.emit('change', layout.panels) + layout.emit('change', layout.panels) } const resize = (height: number) => { - appContext.layout.emit('resize', height) + layout.emit('resize', height) } return ( diff --git a/libs/remix-ui/plugin-manager/src/lib/components/InactivePluginCard.tsx b/libs/remix-ui/plugin-manager/src/lib/components/InactivePluginCard.tsx index 6f218d885d..63434aed62 100644 --- a/libs/remix-ui/plugin-manager/src/lib/components/InactivePluginCard.tsx +++ b/libs/remix-ui/plugin-manager/src/lib/components/InactivePluginCard.tsx @@ -4,7 +4,7 @@ import React, { useContext, useEffect, useState } from 'react' import {FormattedMessage, useIntl} from 'react-intl' import '../remix-ui-plugin-manager.css' import {CustomTooltip} from '@remix-ui/helper' -import { AppContext } from '@remix-ui/app' +import { onLineContext } from '@remix-ui/app' interface PluginCardProps { profile: any buttonText: string @@ -12,7 +12,7 @@ interface PluginCardProps { } function InactivePluginCard({profile, buttonText, activatePlugin}: PluginCardProps) { - const {online} = useContext(AppContext) + const online = useContext(onLineContext) const [canBeActivated, setCanBeActivated] = useState(false) const intl = useIntl() useEffect(() => { diff --git a/libs/remix-ui/search/src/lib/components/Search.tsx b/libs/remix-ui/search/src/lib/components/Search.tsx index 245bde1fbd..b05faf947e 100644 --- a/libs/remix-ui/search/src/lib/components/Search.tsx +++ b/libs/remix-ui/search/src/lib/components/Search.tsx @@ -6,11 +6,13 @@ import {Include} from './Include' import {Exclude} from './Exclude' import {FindContainer} from './FindContainer' import {Undo} from './Undo' -import { AppContext } from '@remix-ui/app' +import { platformContext } from '@remix-ui/app' + + export const SearchTab = (props) => { const plugin = props.plugin - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) return ( <> 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 05eab14966..5d73b628a7 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx @@ -10,11 +10,13 @@ import {listenToEvents} from './actions/compiler' import {getValidLanguage} from '@remix-project/remix-solidity' import {CopyToClipboard} from '@remix-ui/clipboard' import {configFileContent} from './compilerConfiguration' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext, onLineContext } from '@remix-ui/app' import './css/style.css' import { CompilerDropdown } from './components/compiler-dropdown' + + const defaultPath = 'compiler_config.json' declare global { @@ -26,7 +28,8 @@ declare global { const _paq = (window._paq = window._paq || []) //eslint-disable-line export const CompilerContainer = (props: CompilerContainerProps) => { - const {platform, online} = useContext(AppContext) + const online = useContext(onLineContext) + const platform = useContext(platformContext) const { api, compileTabLogic, diff --git a/libs/remix-ui/solidity-compiler/src/lib/components/compiler-dropdown.tsx b/libs/remix-ui/solidity-compiler/src/lib/components/compiler-dropdown.tsx index 620210c5be..ae3e3f1923 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/components/compiler-dropdown.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/components/compiler-dropdown.tsx @@ -1,4 +1,6 @@ -import { AppContext, appPlatformTypes } from '@remix-ui/app'; +import { appPlatformTypes, platformContext, onLineContext } from '@remix-ui/app'; + +; import React, { useEffect, useState, useRef, useReducer, useContext } from 'react' // eslint-disable-line import { Dropdown } from 'react-bootstrap'; import { CompilerMenu, CompilerMenuToggle } from './compiler-menu'; @@ -20,7 +22,8 @@ interface compilerDropdownProps { } export const CompilerDropdown = (props: compilerDropdownProps) => { - const {platform, online} = useContext(AppContext) + const online = useContext(onLineContext) + const platform = useContext(platformContext) const { customVersions, selectedVersion, defaultVersion, allversions, handleLoadVersion, _shouldBeAdded, onlyDownloaded } = props return ( diff --git a/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx b/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx index c743caac68..c19294554a 100644 --- a/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx +++ b/libs/remix-ui/solidity-unit-testing/src/lib/solidity-unit-testing.tsx @@ -9,7 +9,9 @@ import { Toaster } from '@remix-ui/toaster' // eslint-disable-line import { format } from 'util' import './css/style.css' import { CustomTooltip } from '@remix-ui/helper' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' + + const _paq = ((window as any)._paq = (window as any)._paq || []) // eslint-disable-line @typescript-eslint/no-explicit-any @@ -44,7 +46,7 @@ interface FinalResult { export const SolidityUnitTesting = (props: Record) => { // eslint-disable-line @typescript-eslint/no-explicit-any - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const { helper, testTab, initialPath } = props const { testTabLogic } = testTab @@ -164,10 +166,6 @@ export const SolidityUnitTesting = (props: Record) => { } }) - testTab.on('filePanel', 'workspaceCreated', async () => { - setTimeout(async () => await setCurrentPath(defaultPath), 100) - }) - testTab.on('filePanel', 'setWorkspace', async () => { await setCurrentPath(defaultPath) }) diff --git a/libs/remix-ui/vertical-icons-panel/src/lib/remix-ui-vertical-icons-panel.tsx b/libs/remix-ui/vertical-icons-panel/src/lib/remix-ui-vertical-icons-panel.tsx index 9e152f62b2..453a1ddbc7 100644 --- a/libs/remix-ui/vertical-icons-panel/src/lib/remix-ui-vertical-icons-panel.tsx +++ b/libs/remix-ui/vertical-icons-panel/src/lib/remix-ui-vertical-icons-panel.tsx @@ -6,7 +6,7 @@ import Home from './components/Home' import { verticalScrollReducer } from './reducers/verticalScrollReducer' import { Chevron } from './components/Chevron' import { IconRecord } from './types' -import { AppContext } from '@remix-ui/app' +import { onLineContext } from '@remix-ui/app' import { CustomTooltip } from '@remix-ui/helper' export interface RemixUiVerticalIconsPanelProps { verticalIconsPlugin: Plugin @@ -24,7 +24,7 @@ const RemixUiVerticalIconsPanel = ({ verticalIconsPlugin, icons }: RemixUiVertic const iconPanelRef = useRef() const [activateScroll, dispatchScrollAction] = useReducer(verticalScrollReducer, initialState) const [theme, setTheme] = useState('dark') - const { online } = useContext(AppContext) + const online = useContext(onLineContext) const evaluateScrollability = () => { dispatchScrollAction({ diff --git a/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx b/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx index 455ef906bf..a5239c4bd4 100644 --- a/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx +++ b/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx @@ -1,12 +1,12 @@ import React, { MouseEventHandler, useContext, useEffect, useState } from "react" import { FileSystemContext } from "../contexts" -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' import { FormattedMessage } from "react-intl" import '../css/electron-menu.css' import { CustomTooltip } from '@remix-ui/helper' export const ElectronMenu = () => { - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const global = useContext(FileSystemContext) useEffect(() => { diff --git a/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx b/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx index 4da93ddcce..5a61b791fb 100644 --- a/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx +++ b/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx @@ -5,7 +5,7 @@ import {action, FileExplorerContextMenuProps} from '../types' import '../css/file-explorer-context-menu.css' import {customAction} from '@remixproject/plugin-api' import UploadFile from './upload-file' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' declare global { interface Window { @@ -15,7 +15,7 @@ declare global { const _paq = (window._paq = window._paq || []) //eslint-disable-line export const FileExplorerContextMenu = (props: FileExplorerContextMenuProps) => { - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const { actions, createNewFile, diff --git a/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx b/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx index cb241ef4c1..322b62469e 100644 --- a/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx +++ b/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx @@ -2,7 +2,7 @@ import React, { useContext } from 'react' import {CustomTooltip, CustomMenu, CustomIconsToggle} from '@remix-ui/helper' import {Dropdown, NavDropdown} from 'react-bootstrap' import {FormattedMessage} from 'react-intl' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' const _paq = (window._paq = window._paq || []) export interface HamburgerMenuItemProps { @@ -15,7 +15,7 @@ export interface HamburgerMenuItemProps { export function HamburgerMenuItem(props: HamburgerMenuItemProps) { const {hideOption} = props - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const uid = 'workspace' + props.kind return ( <> diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index 88497ca40f..f8a96eaccd 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -12,7 +12,7 @@ import {MenuItems, WorkSpaceState} from './types' import {contextMenuActions} from './utils' import FileExplorerContextMenu from './components/file-explorer-context-menu' import { customAction } from '@remixproject/plugin-api' -import { AppContext, appPlatformTypes } from '@remix-ui/app' +import { appPlatformTypes, platformContext } from '@remix-ui/app' import { ElectronMenu } from './components/electron-menu' const _paq = (window._paq = window._paq || []) @@ -20,7 +20,7 @@ const _paq = (window._paq = window._paq || []) const canUpload = window.File || window.FileReader || window.FileList || window.Blob export function Workspace() { - const {platform} = useContext(AppContext) + const platform = useContext(platformContext) const LOCALHOST = ' - connect to localhost - ' const NO_WORKSPACE = ' - none - ' const ELECTRON = 'electron' From c6c442f89399a30cc558f1fc67d5baee1c1c1ea2 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 21 Dec 2023 08:44:15 +0100 Subject: [PATCH 2/4] flaky --- .circleci/config.yml | 8 ++++---- apps/remix-ide-e2e/src/tests/url.test.ts | 2 +- libs/remix-url-resolver/src/resolve.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 37f51f6747..3e59dfa0fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 parameters: run_flaky_tests: type: boolean - default: false + default: true orbs: browser-tools: circleci/browser-tools@1.4.4 win: circleci/windows@5.0 @@ -29,9 +29,9 @@ jobs: name: Build command: | if [ "${CIRCLE_BRANCH}" == "master" ]; then - NX_BIN_URL=http://127.0.0.1:8080/assets/js/soljson NX_WASM_URL=http://127.0.0.1:8080/assets/js/soljson NPM_URL=http://localhost:9090/ yarn build:production + NX_BIN_URL=http://127.0.0.1:8080/assets/js/soljson NX_WASM_URL=http://127.0.0.1:8080/assets/js/soljson NX_NPM_URL=http://127.0.0.1:9090/ yarn build:production else - NX_BIN_URL=http://127.0.0.1:8080/assets/js/soljson NX_WASM_URL=http://127.0.0.1:8080/assets/js/soljson NPM_URL=http://localhost:9090/ yarn build + NX_BIN_URL=http://127.0.0.1:8080/assets/js/soljson NX_WASM_URL=http://127.0.0.1:8080/assets/js/soljson NX_NPM_URL=http://127.0.0.1:9090/ yarn build fi - run: yarn run build:e2e @@ -313,7 +313,7 @@ jobs: at: . - run: unzip ./persist/dist.zip - run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules - + - run: mkdir node_modules/hardhat && wget https://unpkg.com/hardhat/console.sol -O node_modules/hardhat/console.sol - run: ls -la ./dist/apps/remix-ide/assets/js - run: yarn run selenium-install || yarn run selenium-install - when: diff --git a/apps/remix-ide-e2e/src/tests/url.test.ts b/apps/remix-ide-e2e/src/tests/url.test.ts index adf800ab0b..3c82de5058 100644 --- a/apps/remix-ide-e2e/src/tests/url.test.ts +++ b/apps/remix-ide-e2e/src/tests/url.test.ts @@ -55,7 +55,7 @@ module.exports = { .waitForElementVisible('[for="autoCompile"]') .click('[for="autoCompile"]') // we set it too false in the local storage }, - 'Should load the code from URL params (code param) #group1': function (browser: NightwatchBrowser) { + 'Should load the code from URL params (code param) #group1 #flaky': function (browser: NightwatchBrowser) { browser .url('http://127.0.0.1:8080/#autoCompile=true&optimize=true&runs=300&code=cHJhZ21hIHNvbGlkaXR5ID49MC42LjAgPDAuNy4wOwoKaW1wb3J0ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblplcHBlbGluL29wZW56ZXBwZWxpbi1jb250cmFjdHMvYmxvYi9tYXN0ZXIvY29udHJhY3RzL2FjY2Vzcy9Pd25hYmxlLnNvbCI7Cgpjb250cmFjdCBHZXRQYWlkIGlzIE93bmFibGUgewogIGZ1bmN0aW9uIHdpdGhkcmF3KCkgZXh0ZXJuYWwgb25seU93bmVyIHsKICB9Cn0') diff --git a/libs/remix-url-resolver/src/resolve.ts b/libs/remix-url-resolver/src/resolve.ts index 3b38c3a0ed..f9b77e2b3e 100644 --- a/libs/remix-url-resolver/src/resolve.ts +++ b/libs/remix-url-resolver/src/resolve.ts @@ -184,7 +184,7 @@ export class RemixURLResolver { } const npm_urls = ["https://cdn.jsdelivr.net/npm/", "https://unpkg.com/"] - process && process.env && process.env['NPM_URL'] && npm_urls.unshift(process.env['NPM_URL']) + process && process.env && process.env['NX_NPM_URL'] && npm_urls.unshift(process.env['NX_NPM_URL']) let content = null // get response from all urls for (let i = 0; i < npm_urls.length; i++) { From 5772241c426a1b50bdc732f58ae4f337406ffc8a Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 21 Dec 2023 09:39:57 +0100 Subject: [PATCH 3/4] fix loading compilers --- libs/remix-lib/src/types/ICompilerApi.ts | 1 + .../solidity-compiler/src/lib/api/compiler-api.ts | 7 ++++++- .../solidity-compiler/src/lib/solidity-compiler.tsx | 9 +++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libs/remix-lib/src/types/ICompilerApi.ts b/libs/remix-lib/src/types/ICompilerApi.ts index 86c90ffc1e..da8dc3b694 100644 --- a/libs/remix-lib/src/types/ICompilerApi.ts +++ b/libs/remix-lib/src/types/ICompilerApi.ts @@ -48,6 +48,7 @@ export interface ICompilerApi { emit?: (key: string, ...payload: any) => void setSolJsonBinData: (binData: iSolJsonBinData) => void + solJsonBinData: iSolJsonBinData } export interface iSolJsonBinDataBuild { diff --git a/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts b/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts index 9c420b50bf..68e62915c5 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts +++ b/libs/remix-ui/solidity-compiler/src/lib/api/compiler-api.ts @@ -16,6 +16,7 @@ export const CompilerApiMixin = (Base) => class extends Base { compileErrors: any compileTabLogic: CompileTabLogic configurationSettings: ConfigurationSettings + solJsonBinData: iSolJsonBinData onCurrentFileChanged: (fileName: string) => void // onResetResults: () => void @@ -281,7 +282,11 @@ export const CompilerApiMixin = (Base) => class extends Base { this.on('fileManager', 'fileClosed', this.data.eventHandlers.onFileClosed) this.on('compilerloader', 'jsonBinDataLoaded', (urls: iSolJsonBinData) => { - this.setSolJsonBinData(urls) + try{ + this.setSolJsonBinData(urls) + }catch(e){ + } + this.solJsonBinData = urls }) this.call('compilerloader', 'getJsonBinData') diff --git a/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx b/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx index 5bc23ad9a7..2251fa1247 100644 --- a/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx +++ b/libs/remix-ui/solidity-compiler/src/lib/solidity-compiler.tsx @@ -140,7 +140,10 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => { } api.setSolJsonBinData = (data: iSolJsonBinData) => { + setSolJsonBinData(data) + } + const setSolJsonBinData = (data: iSolJsonBinData) => { const builtin: iSolJsonBinDataBuild = { path: 'builtin', @@ -245,6 +248,12 @@ export const SolidityCompiler = (props: SolidityCompilerProps) => { ) + useEffect(() => { + if(!state.solJsonBinData && api.solJsonBinData){ + setSolJsonBinData(api.solJsonBinData) + } + },[]) + return ( <>
From 1dd52edc53773de356c8cf69f5240bf5a93b73dc Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 21 Dec 2023 10:19:21 +0100 Subject: [PATCH 4/4] rm flaky --- .circleci/config.yml | 2 +- apps/remix-ide-e2e/src/tests/url.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3e59dfa0fb..8e27ffb95f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 parameters: run_flaky_tests: type: boolean - default: true + default: false orbs: browser-tools: circleci/browser-tools@1.4.4 win: circleci/windows@5.0 diff --git a/apps/remix-ide-e2e/src/tests/url.test.ts b/apps/remix-ide-e2e/src/tests/url.test.ts index 3c82de5058..adf800ab0b 100644 --- a/apps/remix-ide-e2e/src/tests/url.test.ts +++ b/apps/remix-ide-e2e/src/tests/url.test.ts @@ -55,7 +55,7 @@ module.exports = { .waitForElementVisible('[for="autoCompile"]') .click('[for="autoCompile"]') // we set it too false in the local storage }, - 'Should load the code from URL params (code param) #group1 #flaky': function (browser: NightwatchBrowser) { + 'Should load the code from URL params (code param) #group1': function (browser: NightwatchBrowser) { browser .url('http://127.0.0.1:8080/#autoCompile=true&optimize=true&runs=300&code=cHJhZ21hIHNvbGlkaXR5ID49MC42LjAgPDAuNy4wOwoKaW1wb3J0ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblplcHBlbGluL29wZW56ZXBwZWxpbi1jb250cmFjdHMvYmxvYi9tYXN0ZXIvY29udHJhY3RzL2FjY2Vzcy9Pd25hYmxlLnNvbCI7Cgpjb250cmFjdCBHZXRQYWlkIGlzIE93bmFibGUgewogIGZ1bmN0aW9uIHdpdGhkcmF3KCkgZXh0ZXJuYWwgb25seU93bmVyIHsKICB9Cn0')