From 3c508e62a8fdab46cd69fcaee6dcc0a2c6e4e317 Mon Sep 17 00:00:00 2001 From: lianahus Date: Mon, 27 Nov 2023 15:19:35 +0100 Subject: [PATCH 01/10] Added Enter Dialog. Improvement in Light theme --- apps/remix-ide-e2e/src/helpers/init.ts | 2 + .../assets/css/themes/remix-light_powaqg.css | 28 +++--- .../lib/remix-app/components/modals/enter.tsx | 85 +++++++++++++++++++ .../remix-app/components/modals/matomo.tsx | 10 +-- .../app/src/lib/remix-app/interface/index.ts | 7 ++ .../app/src/lib/remix-app/remix-app.tsx | 13 +++ .../app/src/lib/remix-app/types/index.ts | 20 +++-- .../src/lib/components/workspaceTemplate.tsx | 1 - 8 files changed, 138 insertions(+), 28 deletions(-) create mode 100644 libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx diff --git a/apps/remix-ide-e2e/src/helpers/init.ts b/apps/remix-ide-e2e/src/helpers/init.ts index 572fa7a113..eafc584dd3 100644 --- a/apps/remix-ide-e2e/src/helpers/init.ts +++ b/apps/remix-ide-e2e/src/helpers/init.ts @@ -13,6 +13,8 @@ export default function (browser: NightwatchBrowser, callback: VoidFunction, url //.switchBrowserTab(0) .waitForElementVisible('[id="remixTourSkipbtn"]') .click('[id="remixTourSkipbtn"]') + .waitForElementVisible('data-id="EnterModalDialogContainer-react"]') + .click('[data-id="beginnerbtn"]') .perform((done) => { if (!loadPlugin) return done() diff --git a/apps/remix-ide/src/assets/css/themes/remix-light_powaqg.css b/apps/remix-ide/src/assets/css/themes/remix-light_powaqg.css index 3217df2899..b99025172c 100644 --- a/apps/remix-ide/src/assets/css/themes/remix-light_powaqg.css +++ b/apps/remix-ide/src/assets/css/themes/remix-light_powaqg.css @@ -2386,8 +2386,8 @@ fieldset:disabled a.btn { .btn-secondary { color: #fff; - background-color: #a8b3bc; - border-color: #a8b3bc; + background-color: #8b98a3; + border-color: #8b98a3; } .btn-secondary:hover { color: #fff; @@ -2401,8 +2401,8 @@ fieldset:disabled a.btn { .btn-secondary.disabled, .btn-secondary:disabled { color: #fff; - background-color: #a8b3bc; - border-color: #a8b3bc; + background-color: #8b98a3; + border-color: #8b98a3; } .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, @@ -2656,13 +2656,13 @@ fieldset:disabled a.btn { } .btn-outline-secondary { - color: #a8b3bc; - border-color: #a8b3bc; + color: #8b98a3; + border-color: #8b98a3; } .btn-outline-secondary:hover { color: #fff; - background-color: #a8b3bc; - border-color: #a8b3bc; + background-color: #8b98a3; + border-color: #8b98a3; } .btn-outline-secondary:focus, .btn-outline-secondary.focus { @@ -2670,15 +2670,15 @@ fieldset:disabled a.btn { } .btn-outline-secondary.disabled, .btn-outline-secondary:disabled { - color: #a8b3bc; + color: #8b98a3; background-color: transparent; } .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle { color: #fff; - background-color: #a8b3bc; - border-color: #a8b3bc; + background-color: #8b98a3; + border-color: #8b98a3; } .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, @@ -4731,7 +4731,7 @@ a.badge-primary.focus { .badge-secondary { color: #fff; - background-color: #a8b3bc; + background-color: #8b98a3; } a.badge-secondary:hover, a.badge-secondary:focus { @@ -6271,7 +6271,7 @@ button.bg-dark:focus { } .border-secondary { - border-color: #a8b3bc !important; + border-color: #8b98a3 !important; } .border-success { @@ -9308,7 +9308,7 @@ a.text-primary:focus { } .text-secondary { - color: #a8b3bc !important; + color: #8b98a3 !important; } a.text-secondary:hover, diff --git a/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx b/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx new file mode 100644 index 0000000000..55f62beca0 --- /dev/null +++ b/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx @@ -0,0 +1,85 @@ +import React, {useContext, useEffect, useState} from 'react' +import {UsageTypes} from '../../types' +import { type } from 'os' + +declare global { + interface Window { + _paq: any + } +} +const _paq = (window._paq = window._paq || []) + +interface EnterDialogProps { + hide: boolean, + handleUserChoice: (userChoice: UsageTypes) => void, +} + +const EnterDialog = (props: EnterDialogProps) => { + const [visibility, setVisibility] = useState(false) + + useEffect(() => { + setVisibility(!props.hide) + }, [props.hide]) + + const enterAs = async (uType) => { + props.handleUserChoice(uType) + + switch (uType) { + case UsageTypes.Beginner: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'beginner']) + break + } + case UsageTypes.Tutor: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'tutor']) + break + } + case UsageTypes.Prototyper: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'prototyper']) + break + } + case UsageTypes.Production: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'production']) + break + } + default: throw new Error() + } + } + + const modalClass = !visibility ? "d-none" : "d-flex" + return ( +
+
+
{ + }} + > +
+

Welcome to Remix IDE

+
+
+ To load the project with the most efficiant setup we would like to know your experiance type. +
+ +
+
+
+ + + + +
+
+
+
+ ) +} + +export default EnterDialog diff --git a/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx b/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx index 2e0c25d934..849f14a0da 100644 --- a/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx @@ -25,11 +25,7 @@ const MatomoDialog = (props) => {

We realize that our users have sensitive information in their code and that their privacy - your privacy - must be protected.

- All data collected through Matomo is stored on our own server - no data is ever given to third parties. Our analytics reports are public:{' '} - - take a look - - . + All data collected through Matomo is stored on our own server - no data is ever given to third parties.

We do not collect nor store any personally identifiable information (PII).

@@ -61,14 +57,14 @@ const MatomoDialog = (props) => { const declineModal = async () => { settings.updateMatomoAnalyticsChoice(false) _paq.push(['optUserOut']) - appManager.call('walkthrough', 'start') + //appManager.call('walkthrough', 'start') setVisible(false) } const handleModalOkClick = async () => { _paq.push(['forgetUserOptOut']) settings.updateMatomoAnalyticsChoice(true) - appManager.call('walkthrough', 'start') + //appManager.call('walkthrough', 'start') setVisible(false) } diff --git a/libs/remix-ui/app/src/lib/remix-app/interface/index.ts b/libs/remix-ui/app/src/lib/remix-app/interface/index.ts index fcee9ef693..eb298090ea 100644 --- a/libs/remix-ui/app/src/lib/remix-app/interface/index.ts +++ b/libs/remix-ui/app/src/lib/remix-app/interface/index.ts @@ -37,3 +37,10 @@ export interface ModalState { focusModal: AppModal, focusToaster: {message: (string | JSX.Element), timestamp: number } } + +export interface forceChoiceModal { + id: string + title?: string, + message: string | JSX.Element, +} + 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 a86f09e272..d08c6493df 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 @@ -2,6 +2,7 @@ import React, {useEffect, useRef, useState} from 'react' import './style/remix-app.css' import {RemixUIMainPanel} from '@remix-ui/panel' import MatomoDialog from './components/modals/matomo' +import EnterDialog from './components/modals/enter' import OriginWarning from './components/modals/origin-warning' import DragBar from './components/dragbar/dragbar' import {AppProvider} from './context/provider' @@ -10,12 +11,14 @@ import DialogViewPlugin from './components/modals/dialogViewPlugin' import {AppContext} from './context/context' import {IntlProvider, FormattedMessage} from 'react-intl' import {CustomTooltip} from '@remix-ui/helper' +import {UsageTypes} from './types' interface IRemixAppUi { app: any } const RemixApp = (props: IRemixAppUi) => { const [appReady, setAppReady] = useState(false) + const [showEnterDialog, setShowEnterDialog] = useState(true) const [hideSidePanel, setHideSidePanel] = useState(false) const [maximiseTrigger, setMaximiseTrigger] = useState(0) const [resetTrigger, setResetTrigger] = useState(0) @@ -37,6 +40,8 @@ const RemixApp = (props: IRemixAppUi) => { if (props.app) { activateApp() } + const hadUsageTypeAsked = localStorage.getItem('hadUsageTypeAsked') + setShowEnterDialog(!hadUsageTypeAsked) }, []) function setListeners() { @@ -80,12 +85,20 @@ const RemixApp = (props: IRemixAppUi) => { layout: props.app.layout } + const handleUserChosenType = (type) => { + setShowEnterDialog(false) + localStorage.setItem('hadUsageTypeAsked', "true") + + // Use the type to setup the UI accordingly + } + return ( //@ts-ignore + handleUserChosenType(type)}>

{props.app.menuicons.render()} diff --git a/libs/remix-ui/app/src/lib/remix-app/types/index.ts b/libs/remix-ui/app/src/lib/remix-app/types/index.ts index 6822dbe73e..0037fd6cb8 100644 --- a/libs/remix-ui/app/src/lib/remix-app/types/index.ts +++ b/libs/remix-ui/app/src/lib/remix-app/types/index.ts @@ -1,8 +1,16 @@ export const enum ModalTypes { - alert = 'alert', - confirm = 'confirm', - prompt = 'prompt', - password = 'password', - default = 'default', - form = 'form', + alert = 'alert', + confirm = 'confirm', + prompt = 'prompt', + password = 'password', + default = 'default', + form = 'form', + forceChoice = 'forceChoice' } + +export const enum UsageTypes { + Beginner = 1, + Tutor, + Prototyper, + Production, +} \ No newline at end of file diff --git a/libs/remix-ui/home-tab/src/lib/components/workspaceTemplate.tsx b/libs/remix-ui/home-tab/src/lib/components/workspaceTemplate.tsx index ee48f5d83c..6fa131d702 100644 --- a/libs/remix-ui/home-tab/src/lib/components/workspaceTemplate.tsx +++ b/libs/remix-ui/home-tab/src/lib/components/workspaceTemplate.tsx @@ -14,7 +14,6 @@ interface WorkspaceTemplateProps { function WorkspaceTemplate({gsID, workspaceTitle, description, projectLogo, callback}: WorkspaceTemplateProps) { const themeFilter = useContext(ThemeContext) - console.log("theme ", themeFilter) return (
- - - + + + +
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 d08c6493df..b8d2a748d3 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 @@ -13,6 +13,13 @@ import {IntlProvider, FormattedMessage} from 'react-intl' import {CustomTooltip} from '@remix-ui/helper' import {UsageTypes} from './types' +declare global { + interface Window { + _paq: any + } +} +const _paq = (window._paq = window._paq || []) + interface IRemixAppUi { app: any } @@ -80,16 +87,47 @@ const RemixApp = (props: IRemixAppUi) => { const value = { settings: props.app.settings, showMatamo: props.app.showMatamo, + showEnter: props.app.showEnter, appManager: props.app.appManager, modal: props.app.notification, layout: props.app.layout } - const handleUserChosenType = (type) => { + const handleUserChosenType = async (type) => { setShowEnterDialog(false) - localStorage.setItem('hadUsageTypeAsked', "true") + localStorage.setItem('hadUsageTypeAsked', "1") + + await props.app.appManager.call('walkthrough', 'start') // Use the type to setup the UI accordingly + switch (type) { + case UsageTypes.Beginner: { + await props.app.appManager.call('manager', 'activatePlugin', 'LearnEth') + // const wName = 'Playground' + // const workspaces = await props.app.appManager.call('filePanel', 'getWorkspaces') + // if (!workspaces.find((workspace) => workspace.name === wName)) { + // await props.app.appManager.call('filePanel', 'createWorkspace', wName, 'playground') + // } + // await props.app.appManager.call('filePanel', 'switchToWorkspace', { name: wName, isLocalHost: false }) + + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'beginner']) + break + } + case UsageTypes.Tutor: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'tutor']) + break + } + case UsageTypes.Prototyper: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'prototyper']) + break + } + case UsageTypes.Production: { + _paq.push(['trackEvent', 'enterDialog', 'usageType', 'production']) + break + } + default: throw new Error() + } + } return ( @@ -97,13 +135,19 @@ const RemixApp = (props: IRemixAppUi) => { - + {setShowEnterDialog(true)}}> + handleUserChosenType(type)}>
{props.app.menuicons.render()}
-
+
{props.app.sidePanel.render()}
Date: Wed, 29 Nov 2023 18:58:58 +0100 Subject: [PATCH 03/10] enamble matomo check --- apps/remix-ide-e2e/src/helpers/init.ts | 4 ++-- apps/remix-ide/src/app.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/remix-ide-e2e/src/helpers/init.ts b/apps/remix-ide-e2e/src/helpers/init.ts index 48c09a52f4..2f8eb94c7f 100644 --- a/apps/remix-ide-e2e/src/helpers/init.ts +++ b/apps/remix-ide-e2e/src/helpers/init.ts @@ -11,10 +11,10 @@ export default function (browser: NightwatchBrowser, callback: VoidFunction, url browser .url(url || 'http://127.0.0.1:8080') //.switchBrowserTab(0) + .waitForElementVisible('[id="beginnerbtn"]') + .click('[id="beginnerbtn"]') .waitForElementVisible('[id="remixTourSkipbtn"]') .click('[id="remixTourSkipbtn"]') - .waitForElementVisible('data-id="EnterModalDialogContainer-react"]') - .click('[data-id="beginnerbtn"]') .perform((done) => { if (!loadPlugin) return done() diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index c7e11c0512..55d349088a 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -130,7 +130,7 @@ class AppComponent { 'remix.ethereum.org': 23, '6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod': 35 // remix desktop } - this.showMatamo = true//matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') + this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') this.showEnter = !localStorage.getItem('hadUsageTypeAsked') console.log("show ", this.showMatamo, " ", this.showEnter) From 6fdd818f95ec3698e699afd685844dde5712eac8 Mon Sep 17 00:00:00 2001 From: lianahus Date: Thu, 30 Nov 2023 10:15:13 +0100 Subject: [PATCH 04/10] saving type in localstorage --- apps/remix-ide-e2e/src/helpers/init.ts | 6 ++++-- apps/remix-ide/src/app.js | 1 - .../app/src/lib/remix-app/components/modals/matomo.tsx | 2 -- libs/remix-ui/app/src/lib/remix-app/remix-app.tsx | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/remix-ide-e2e/src/helpers/init.ts b/apps/remix-ide-e2e/src/helpers/init.ts index 2f8eb94c7f..02a5261036 100644 --- a/apps/remix-ide-e2e/src/helpers/init.ts +++ b/apps/remix-ide-e2e/src/helpers/init.ts @@ -11,8 +11,10 @@ export default function (browser: NightwatchBrowser, callback: VoidFunction, url browser .url(url || 'http://127.0.0.1:8080') //.switchBrowserTab(0) - .waitForElementVisible('[id="beginnerbtn"]') - .click('[id="beginnerbtn"]') + .waitForElementVisible('[data-id="EnterModalDialogModalBody-react"]') + .scrollInto('[data-id = "EnterModalDialogModalBody-react"]') + .waitForElementVisible('[data-id="beginnerbtn"]') + .click('[data-id="beginnerbtn"]') .waitForElementVisible('[id="remixTourSkipbtn"]') .click('[id="remixTourSkipbtn"]') diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 55d349088a..f0e8cf4535 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -133,7 +133,6 @@ class AppComponent { this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') this.showEnter = !localStorage.getItem('hadUsageTypeAsked') - console.log("show ", this.showMatamo, " ", this.showEnter) this.walkthroughService = new WalkthroughService(appManager, !this.showMatamo || !this.showEnter) const hosts = ['127.0.0.1:8080', '192.168.0.101:8080', 'localhost:8080'] diff --git a/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx b/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx index 849f14a0da..c4637cb85d 100644 --- a/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/components/modals/matomo.tsx @@ -57,14 +57,12 @@ const MatomoDialog = (props) => { const declineModal = async () => { settings.updateMatomoAnalyticsChoice(false) _paq.push(['optUserOut']) - //appManager.call('walkthrough', 'start') setVisible(false) } const handleModalOkClick = async () => { _paq.push(['forgetUserOptOut']) settings.updateMatomoAnalyticsChoice(true) - //appManager.call('walkthrough', 'start') setVisible(false) } 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 b8d2a748d3..72e84bfe30 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 @@ -95,7 +95,7 @@ const RemixApp = (props: IRemixAppUi) => { const handleUserChosenType = async (type) => { setShowEnterDialog(false) - localStorage.setItem('hadUsageTypeAsked', "1") + localStorage.setItem('hadUsageTypeAsked', type) await props.app.appManager.call('walkthrough', 'start') From 3d2207bd0f18fe753f1648c03a76ce76f81557e4 Mon Sep 17 00:00:00 2001 From: lianahus Date: Thu, 30 Nov 2023 16:17:28 +0100 Subject: [PATCH 05/10] updated labels --- apps/remix-ide/src/app.js | 2 +- .../app/src/lib/remix-app/components/modals/enter.tsx | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index f0e8cf4535..2c04ee78f7 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -130,7 +130,7 @@ class AppComponent { 'remix.ethereum.org': 23, '6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod': 35 // remix desktop } - this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') + this.showMatamo = true //matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') this.showEnter = !localStorage.getItem('hadUsageTypeAsked') this.walkthroughService = new WalkthroughService(appManager, !this.showMatamo || !this.showEnter) diff --git a/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx b/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx index 3cefacdc03..b5199664f8 100644 --- a/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx @@ -46,10 +46,10 @@ const EnterDialog = (props: EnterDialogProps) => {
- - - - + + + +
From b4f32a638c932f343c5a92fc3b6ca8ef7b9b8bef Mon Sep 17 00:00:00 2001 From: Liana Husikyan Date: Thu, 30 Nov 2023 16:42:08 +0100 Subject: [PATCH 06/10] not show matomo --- apps/remix-ide-e2e/src/helpers/init.ts | 4 ---- apps/remix-ide/src/app.js | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/remix-ide-e2e/src/helpers/init.ts b/apps/remix-ide-e2e/src/helpers/init.ts index 02a5261036..f5c091b4d8 100644 --- a/apps/remix-ide-e2e/src/helpers/init.ts +++ b/apps/remix-ide-e2e/src/helpers/init.ts @@ -11,10 +11,6 @@ export default function (browser: NightwatchBrowser, callback: VoidFunction, url browser .url(url || 'http://127.0.0.1:8080') //.switchBrowserTab(0) - .waitForElementVisible('[data-id="EnterModalDialogModalBody-react"]') - .scrollInto('[data-id = "EnterModalDialogModalBody-react"]') - .waitForElementVisible('[data-id="beginnerbtn"]') - .click('[data-id="beginnerbtn"]') .waitForElementVisible('[id="remixTourSkipbtn"]') .click('[id="remixTourSkipbtn"]') diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 2c04ee78f7..f0e8cf4535 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -130,7 +130,7 @@ class AppComponent { 'remix.ethereum.org': 23, '6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod': 35 // remix desktop } - this.showMatamo = true //matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') + this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') this.showEnter = !localStorage.getItem('hadUsageTypeAsked') this.walkthroughService = new WalkthroughService(appManager, !this.showMatamo || !this.showEnter) From 7e85a88858afcb3ee24fa1fb80690f1a60a64519 Mon Sep 17 00:00:00 2001 From: lianahus Date: Thu, 30 Nov 2023 16:57:54 +0100 Subject: [PATCH 07/10] not show enter dialog for tests --- apps/remix-ide/src/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index f0e8cf4535..971090c29f 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -131,7 +131,7 @@ class AppComponent { '6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod': 35 // remix desktop } this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') - this.showEnter = !localStorage.getItem('hadUsageTypeAsked') + this.showEnter = matomoDomains[window.location.hostname] && !localStorage.getItem('hadUsageTypeAsked') this.walkthroughService = new WalkthroughService(appManager, !this.showMatamo || !this.showEnter) From 0b81e1202d69b354a5766b3d59b5a37cfa567e0b Mon Sep 17 00:00:00 2001 From: lianahus Date: Thu, 30 Nov 2023 17:09:16 +0100 Subject: [PATCH 08/10] removing check for warkthrough --- apps/remix-ide-e2e/src/helpers/init.ts | 4 +--- .../src/tests/migrateFileSystem.test.ts | 18 +++++++----------- .../lib/remix-app/components/modals/enter.tsx | 2 +- .../app/src/lib/remix-app/remix-app.tsx | 3 +-- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/apps/remix-ide-e2e/src/helpers/init.ts b/apps/remix-ide-e2e/src/helpers/init.ts index f5c091b4d8..8e0a93b450 100644 --- a/apps/remix-ide-e2e/src/helpers/init.ts +++ b/apps/remix-ide-e2e/src/helpers/init.ts @@ -11,9 +11,7 @@ export default function (browser: NightwatchBrowser, callback: VoidFunction, url browser .url(url || 'http://127.0.0.1:8080') //.switchBrowserTab(0) - .waitForElementVisible('[id="remixTourSkipbtn"]') - .click('[id="remixTourSkipbtn"]') - + .perform((done) => { if (!loadPlugin) return done() browser diff --git a/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts b/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts index 35398ef75b..c6cd47f61d 100644 --- a/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts +++ b/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts @@ -11,8 +11,7 @@ module.exports = { .maximizeWindow() .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') - .waitForElementVisible('[id="remixTourSkipbtn"]') - .click('[id="remixTourSkipbtn"]') + .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) }, 'Should load the testmigration url and refresh and still have test data #group7': function (browser: NightwatchBrowser) { browser.url('http://127.0.0.1:8080?e2e_testmigration=true') @@ -21,8 +20,8 @@ module.exports = { .maximizeWindow() .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') - .waitForElementVisible('[id="remixTourSkipbtn"]') - .click('[id="remixTourSkipbtn"]').refreshPage() + .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) + .refreshPage() }, 'should have indexedDB storage in terminal #group1 #group7': function (browser: NightwatchBrowser) { browser.assert.containsText('*[data-id="terminalJournal"]', 'indexedDB') @@ -32,9 +31,7 @@ module.exports = { .pause(6000) .switchBrowserTab(0) .maximizeWindow() - .waitForElementVisible('[id="remixTourSkipbtn"]') - .click('[id="remixTourSkipbtn"]') - .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 5000) + .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) .waitForElementVisible('div[data-id="filePanelFileExplorerTree"]') .openFile('README.txt') .getEditorValue((content) => { @@ -53,8 +50,7 @@ module.exports = { .maximizeWindow() .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') - .waitForElementVisible('[id="remixTourSkipbtn"]') - .click('[id="remixTourSkipbtn"]') + .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) }, 'Should generate error in migration by deleting indexedDB and falling back to local storage with test #group5': function (browser: NightwatchBrowser) { browser.url('http://127.0.0.1:8080?e2e_testmigration=true') @@ -63,8 +59,7 @@ module.exports = { .maximizeWindow().execute(('delete window.indexedDB')) .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') - .waitForElementVisible('[id="remixTourSkipbtn"]') - .click('[id="remixTourSkipbtn"]') + .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) }, 'should have localstorage storage in terminal #group2 #group3 #group5': function (browser: NightwatchBrowser) { browser.assert.containsText('*[data-id="terminalJournal"]', 'localstorage') @@ -74,6 +69,7 @@ module.exports = { .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 5000) .waitForElementVisible('div[data-id="filePanelFileExplorerTree"]') .openFile('TEST_README.txt') + .pause(6000) .getEditorValue((content) => { browser.assert.equal(content, 'TEST README') }) diff --git a/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx b/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx index b5199664f8..b13cd5adc2 100644 --- a/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/components/modals/enter.tsx @@ -40,7 +40,7 @@ const EnterDialog = (props: EnterDialogProps) => {

Welcome to Remix IDE

- To load the project with the most efficient setup we would like to know your experiance type. + To load the project with the most efficient setup we would like to know your experience type.
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 72e84bfe30..8aaac1c419 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 @@ -135,8 +135,7 @@ const RemixApp = (props: IRemixAppUi) => { - {setShowEnterDialog(true)}}> - + {setShowEnterDialog(true)}}> handleUserChosenType(type)}>
From 259479622b4792760b4164d06e0df8263388d597 Mon Sep 17 00:00:00 2001 From: lianahus Date: Thu, 30 Nov 2023 21:39:08 +0100 Subject: [PATCH 09/10] e2e --- apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts b/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts index c6cd47f61d..7208a5affb 100644 --- a/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts +++ b/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts @@ -34,11 +34,13 @@ module.exports = { .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) .waitForElementVisible('div[data-id="filePanelFileExplorerTree"]') .openFile('README.txt') + .waitForElementVisible('*[id="editorView"]', 10000) .getEditorValue((content) => { browser.assert.ok(content.includes('Output from script will appear in remix terminal.')) }) .click('*[data-id="treeViewLitreeViewItemcontracts"]') .openFile('contracts/1_Storage.sol') + .waitForElementVisible('*[id="editorView"]', 10000) .getEditorValue((content) => { browser.assert.ok(content.includes('function retrieve() public view returns (uint256){')) }) @@ -69,7 +71,7 @@ module.exports = { .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 5000) .waitForElementVisible('div[data-id="filePanelFileExplorerTree"]') .openFile('TEST_README.txt') - .pause(6000) + .waitForElementVisible('*[id="editorView"]', 10000) .getEditorValue((content) => { browser.assert.equal(content, 'TEST README') }) @@ -92,6 +94,7 @@ module.exports = { browser.waitForElementVisible('*[data-id="remixIdeSidePanel"]', 5000) .click('*[data-id="treeViewLitreeViewItemtest_contracts/artifacts"]') .openFile('test_contracts/artifacts/Storage_metadata.json') + .waitForElementVisible('*[id="editorView"]', 10000) .getEditorValue((content) => { const metadata = JSON.parse(content) browser.assert.equal(metadata.test, 'data') From c6f53870f116d6c3019adf6a9c158e0f9ca165ae Mon Sep 17 00:00:00 2001 From: yann300 Date: Fri, 1 Dec 2023 00:24:41 +0100 Subject: [PATCH 10/10] fix E2E --- apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts b/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts index 7208a5affb..38a72d5bf2 100644 --- a/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts +++ b/apps/remix-ide-e2e/src/tests/migrateFileSystem.test.ts @@ -11,6 +11,7 @@ module.exports = { .maximizeWindow() .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') + .pause(5000) .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) }, 'Should load the testmigration url and refresh and still have test data #group7': function (browser: NightwatchBrowser) { @@ -20,6 +21,7 @@ module.exports = { .maximizeWindow() .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') + .pause(5000) .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) .refreshPage() }, @@ -31,6 +33,7 @@ module.exports = { .pause(6000) .switchBrowserTab(0) .maximizeWindow() + .pause(5000) .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) .waitForElementVisible('div[data-id="filePanelFileExplorerTree"]') .openFile('README.txt') @@ -52,6 +55,7 @@ module.exports = { .maximizeWindow() .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') + .pause(5000) .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) }, 'Should generate error in migration by deleting indexedDB and falling back to local storage with test #group5': function (browser: NightwatchBrowser) { @@ -61,6 +65,7 @@ module.exports = { .maximizeWindow().execute(('delete window.indexedDB')) .waitForElementVisible('*[data-id="skipbackup-btn"]', 5000) .click('*[data-id="skipbackup-btn"]') + .pause(5000) .waitForElementVisible('*[data-id="remixIdeSidePanel"]', 10000) }, 'should have localstorage storage in terminal #group2 #group3 #group5': function (browser: NightwatchBrowser) {