diff --git a/apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx b/apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx index 298316e6cd..634421545e 100644 --- a/apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx +++ b/apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx @@ -110,6 +110,7 @@ function App () { placeholder="Enter payload here..." value={payload} onChange={handleChange} + data-id="payload-input" /> {profiles.map((profile: Profile) => { const methods = profile.methods.map((method: string) => { diff --git a/apps/remix-ide-e2e/src/tests/libraryDeployment.test.ts b/apps/remix-ide-e2e/src/tests/libraryDeployment.test.ts index 4b3c4528c4..6108b794a2 100644 --- a/apps/remix-ide-e2e/src/tests/libraryDeployment.test.ts +++ b/apps/remix-ide-e2e/src/tests/libraryDeployment.test.ts @@ -21,6 +21,7 @@ module.exports = { let addressRef: string browser.verifyContracts(['test']) .clickLaunchIcon('udapp') + .click('#selectExEnv') .selectContract('test') .createContract('') .getAddressAtPosition(0, (address) => { diff --git a/apps/remix-ide-e2e/src/tests/plugin_api.ts b/apps/remix-ide-e2e/src/tests/plugin_api.ts index 9a4d7b74b2..32cee645c4 100644 --- a/apps/remix-ide-e2e/src/tests/plugin_api.ts +++ b/apps/remix-ide-e2e/src/tests/plugin_api.ts @@ -50,7 +50,7 @@ const debugValues = async function (browser: NightwatchBrowser, field: string, e const setPayload = async (browser: NightwatchBrowser, payload: any) => { return new Promise((resolve) => { if (typeof payload !== 'string') payload = JSON.stringify(payload) - browser.clearValue('//*[@id="payload"]').setValue('//*[@id="payload"]', payload, (result) => { + browser.clearValue('//*[@id="payload"]').pause(500).setValue('//*[@id="payload"]', payload, (result) => { resolve(result) }) }) @@ -419,7 +419,7 @@ module.exports = { .addFile('test_modal.js', { content: testModalToasterApi }) .executeScriptInTerminal('remix.execute(\'test_modal.js\')') .useCss() - .waitForElementVisible('*[data-id="test_id_1_ModalDialogModalBody-react"]', 60000) + .waitForElementVisible('*[data-id="test_id_1_ModalDialogModalBody-react"]', 65000) .assert.containsText('*[data-id="test_id_1_ModalDialogModalBody-react"]', 'message 1') .modalFooterOKClick('test_id_1_') // check the script runner notifications diff --git a/libs/remix-ui/checkbox/src/lib/remix-ui-checkbox.tsx b/libs/remix-ui/checkbox/src/lib/remix-ui-checkbox.tsx index 6383789a24..a2fd923a72 100644 --- a/libs/remix-ui/checkbox/src/lib/remix-ui-checkbox.tsx +++ b/libs/remix-ui/checkbox/src/lib/remix-ui-checkbox.tsx @@ -34,10 +34,15 @@ export const RemixUiCheckbox = ({ title, visibility, display = 'flex', - tooltipPlacement = 'right-start' + tooltipPlacement = 'right' }: RemixUiCheckboxProps) => { - const childJSX = ( + const childJSXWithTooltip = ( +
+
) + const childJSX = ( +
+ + +
+ ) return ( - - {childJSX} - + title ? (childJSXWithTooltip) : (childJSX) ) } diff --git a/libs/remix-ui/helper/src/lib/components/custom-tooltip.tsx b/libs/remix-ui/helper/src/lib/components/custom-tooltip.tsx index 302dfb1a95..6c55ed06c8 100644 --- a/libs/remix-ui/helper/src/lib/components/custom-tooltip.tsx +++ b/libs/remix-ui/helper/src/lib/components/custom-tooltip.tsx @@ -4,7 +4,7 @@ import { OverlayTrigger, Tooltip } from 'react-bootstrap'; import { CustomTooltipType } from '../../types/customtooltip' -export function CustomTooltip({ children, placement, tooltipId, tooltipClasses, tooltipText, tooltipTextClasses }: CustomTooltipType) { +export function CustomTooltip({ children, placement, tooltipId, tooltipClasses, tooltipText, tooltipTextClasses, delay }: CustomTooltipType) { return ( @@ -15,6 +15,7 @@ export function CustomTooltip({ children, placement, tooltipId, tooltipClasses, {typeof tooltipText === 'string' ? ({tooltipText}) : (tooltipText)} } + delay={delay} > {children} diff --git a/libs/remix-ui/helper/src/types/customtooltip.ts b/libs/remix-ui/helper/src/types/customtooltip.ts index 05178ebe08..803f95c2ee 100644 --- a/libs/remix-ui/helper/src/types/customtooltip.ts +++ b/libs/remix-ui/helper/src/types/customtooltip.ts @@ -1,5 +1,5 @@ import { Placement } from 'react-bootstrap/esm/Overlay' -import { OverlayTriggerRenderProps } from 'react-bootstrap/esm/OverlayTrigger' +import { OverlayDelay, OverlayTriggerRenderProps } from 'react-bootstrap/esm/OverlayTrigger' export type CustomTooltipType = { children: React.ReactElement> | ((props: OverlayTriggerRenderProps) => React.ReactNode), @@ -8,4 +8,5 @@ export type CustomTooltipType = { tooltipClasses?:string, tooltipText: string | JSX.Element, tooltipTextClasses?: string + delay?: OverlayDelay } \ No newline at end of file diff --git a/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx b/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx index ac14cde8b9..a055758440 100644 --- a/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx @@ -17,12 +17,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { display: '', content: '' }) - const [atAddressOptions, setAtAddressOptions] = useState<{ title: string, disabled: boolean }>({ + const [atAddressOptions, setAtAddressOptions] = useState<{ title: string | JSX.Element, disabled: boolean }>({ title: 'address of contract', disabled: true }) const [loadedAddress, setLoadedAddress] = useState('') - const [contractOptions, setContractOptions] = useState<{ title: string, disabled: boolean }>({ + const [contractOptions, setContractOptions] = useState<{ title: string | JSX.Element, disabled: boolean }>({ title: 'Please compile *.sol file to deploy or access a contract', disabled: true }) @@ -136,12 +136,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { if (enable) { setAtAddressOptions({ disabled: false, - title: 'Interact with the deployed contract - requires the .abi file or compiled .sol file to be selected in the editor (with the same compiler configuration)' + title: Interact with the deployed contract - requires the .abi file or
compiled .sol file to be selected in the editor
(with the same compiler configuration)
}) } else { setAtAddressOptions({ disabled: true, - title: loadedAddress ? 'Compile a *.sol file or select a *.abi file.' : 'To interact with a deployed contract, enter its address and compile its source *.sol file (with the same compiler settings) or select its .abi file in the editor. ' + title: loadedAddress ? 'Compile a *.sol file or select a *.abi file.' : To interact with a deployed contract, either
enter its address and compile its source *.sol file
(with the same compiler settings) or select its .abi file in the editor.
}) } } @@ -155,7 +155,7 @@ export function ContractDropdownUI (props: ContractDropdownProps) { } else { setContractOptions({ disabled: true, - title: loadType === 'sol' ? 'Select and compile *.sol file to deploy or access a contract.' : 'When there is a compiled .sol file, the choice of contracts to deploy or to use with AtAddress is made here.' + title: loadType === 'sol' ? 'Select and compile *.sol file to deploy or access a contract.' : When there is a compiled .sol file, choose the
contract to deploy or to use with AtAddress.'
}) } } @@ -236,7 +236,7 @@ export function ContractDropdownUI (props: ContractDropdownProps) { const checkSumWarning = () => { return ( - + It seems you are not using a checksumed address.
A checksummed address is an address that contains uppercase letters, as specified in EIP-55.
Checksummed addresses are meant to help prevent users from sending transactions to the wrong address. @@ -264,10 +264,12 @@ export function ContractDropdownUI (props: ContractDropdownProps) { {props.remixdActivated ? ( + Click here to import contracts compiled from an external framework.
+ This action is enabled when Remix is connected to an external
framework (hardhat, truffle, foundry) through remixd. +
} >
Choose the script to execute right after compilation by adding the `dev-run-script` natspec tag, as in:
@@ -1004,7 +1004,7 @@ export const CompilerContainer = (props: CompilerContainerProps) => { contract ContractName {'{}'}
- Click to know more + Click the i icon to learn more } >
diff --git a/libs/remix-ui/static-analyser/src/lib/Button/StaticAnalyserButton.tsx b/libs/remix-ui/static-analyser/src/lib/Button/StaticAnalyserButton.tsx index b6567c020b..db660c1d49 100644 --- a/libs/remix-ui/static-analyser/src/lib/Button/StaticAnalyserButton.tsx +++ b/libs/remix-ui/static-analyser/src/lib/Button/StaticAnalyserButton.tsx @@ -19,12 +19,12 @@ const StaticAnalyserButton = ({ return (