Merge pull request #3005 from ethereum/custom-tooltips-ssa

Custom tooltips for Static Analysis
pull/5370/head
Joseph Izang 2 years ago committed by GitHub
commit 28e1839b76
  1. 18
      libs/remix-ui/checkbox/src/lib/remix-ui-checkbox.tsx
  2. 14
      libs/remix-ui/static-analyser/src/lib/Button/StaticAnalyserButton.tsx
  3. 2
      libs/remix-ui/static-analyser/src/lib/remix-ui-static-analyser.tsx

@ -1,5 +1,8 @@
import React, { CSSProperties } from 'react' //eslint-disable-line import React, { CSSProperties } from 'react' //eslint-disable-line
import { OverlayProps, OverlayTrigger, OverlayTriggerProps, Tooltip } from 'react-bootstrap'// eslint-disable-line
import './remix-ui-checkbox.css' import './remix-ui-checkbox.css'
type Placement = import('react-overlays/usePopper').Placement;
/* eslint-disable-next-line */ /* eslint-disable-next-line */
export interface RemixUiCheckboxProps { export interface RemixUiCheckboxProps {
@ -15,6 +18,7 @@ export interface RemixUiCheckboxProps {
title?: string title?: string
visibility?: string visibility?: string
display?: string display?: string
tooltipPlacement?: Placement
} }
export const RemixUiCheckbox = ({ export const RemixUiCheckbox = ({
@ -29,10 +33,19 @@ export const RemixUiCheckbox = ({
categoryId, categoryId,
title, title,
visibility, visibility,
display = 'flex' display = 'flex',
tooltipPlacement = 'right-start'
}: RemixUiCheckboxProps) => { }: RemixUiCheckboxProps) => {
return ( return (
<div className="listenOnNetwork_2A0YE0 custom-control custom-checkbox" title={title} style={{ display: display, alignItems: 'center', visibility: visibility } as CSSProperties } onClick={onClick}> <OverlayTrigger
placement={tooltipPlacement}
overlay={
<Tooltip id={`${name}Tooltip`}>
<span>{title}</span>
</Tooltip>
}
>
<div className="listenOnNetwork_2A0YE0 custom-control custom-checkbox" style={{ display: display, alignItems: 'center', visibility: visibility } as CSSProperties } onClick={onClick}>
<input <input
id={id} id={id}
type={inputType} type={inputType}
@ -47,6 +60,7 @@ export const RemixUiCheckbox = ({
{label} {label}
</label> </label>
</div> </div>
</OverlayTrigger>
) )
} }

@ -1,4 +1,5 @@
import React from 'react' //eslint-disable-line import React from 'react' //eslint-disable-line
import { OverlayTrigger, Tooltip } from 'react-bootstrap'
interface StaticAnalyserButtonProps { interface StaticAnalyserButtonProps {
onClick: (event) => void onClick: (event) => void
@ -16,8 +17,19 @@ const StaticAnalyserButton = ({
let classList = "btn btn-sm w-25 btn-primary" let classList = "btn btn-sm w-25 btn-primary"
classList += disabled ? " disabled" : "" classList += disabled ? " disabled" : ""
return ( return (
<button className={classList} disabled={disabled} title={title} onClick={onClick}> <button className={classList} disabled={disabled} onClick={onClick}>
<OverlayTrigger
placement="bottom-start"
overlay={
<Tooltip id="ssaRunButtonTooltip" className="text-nowrap">
<span>{title}</span>
</Tooltip>
}
>
<span>
{buttonText} {buttonText}
</span>
</OverlayTrigger>
</button> </button>
) )
} }

@ -490,6 +490,7 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => {
label="Select all" label="Select all"
onClick={() => handleCheckAllModules(groupedModules)} onClick={() => handleCheckAllModules(groupedModules)}
onChange={() => {}} onChange={() => {}}
tooltipPlacement={'top-start'}
/> />
<RemixUiCheckbox <RemixUiCheckbox
id="autorunstaticanalysis" id="autorunstaticanalysis"
@ -499,6 +500,7 @@ export const RemixUiStaticAnalyser = (props: RemixUiStaticAnalyserProps) => {
checked={autoRun} checked={autoRun}
label="Autorun" label="Autorun"
onChange={() => {}} onChange={() => {}}
tooltipPlacement={'bottom-start'}
/> />
<Button <Button
buttonText="Run" buttonText="Run"

Loading…
Cancel
Save