diff --git a/ui/src/components/Equipment/PlateManipulator.jsx b/ui/src/components/Equipment/PlateManipulator.jsx index 6038c10a4..18e6c7545 100644 --- a/ui/src/components/Equipment/PlateManipulator.jsx +++ b/ui/src/components/Equipment/PlateManipulator.jsx @@ -6,12 +6,12 @@ import { ButtonToolbar, OverlayTrigger, Popover, - Tooltip, } from 'react-bootstrap'; import { contextMenu, Menu, Item, Separator } from 'react-contexify'; import { MdSync } from 'react-icons/md'; import styles from './equipment.module.css'; +import TooltipTrigger from '../TooltipTrigger'; const strokeColor = 'rgb(136, 136, 136)'; @@ -634,33 +634,23 @@ export default function PlateManipulator(props) { > - {!inPopover ? ( + {!inPopover && (
{cplate_label}
- ) : null} - - Refresh if Plate Location not Updated - - } + )} + - + - - Synchronise sample list with CRIMS - - } + - +
diff --git a/ui/src/components/SampleGrid/SampleGridTableItem.jsx b/ui/src/components/SampleGrid/SampleGridTableItem.jsx index 019117279..1ae88b402 100644 --- a/ui/src/components/SampleGrid/SampleGridTableItem.jsx +++ b/ui/src/components/SampleGrid/SampleGridTableItem.jsx @@ -3,7 +3,6 @@ import React from 'react'; import { ListGroup, OverlayTrigger, - Tooltip, Popover, Badge, Button, @@ -17,6 +16,7 @@ import { isCollected } from '../../constants'; import { BsSquare, BsCheck2Square } from 'react-icons/bs'; import { MdContentCopy } from 'react-icons/md'; import './SampleGridTable.css'; +import TooltipTrigger from '../TooltipTrigger'; export class SampleGridTableItem extends React.Component { constructor(props) { @@ -38,33 +38,32 @@ export class SampleGridTableItem extends React.Component { } itemControls() { - let icon = ; - - if (this.props.picked) { - icon = ; - } - - const pickButton = ( - Pick/Unpick sample for collect - } - > - - + + +
); - - return
{pickButton}
; } seqId() { diff --git a/ui/src/components/SampleQueue/CharacterisationTaskItem.jsx b/ui/src/components/SampleQueue/CharacterisationTaskItem.jsx index 768d8bbf4..41037c374 100644 --- a/ui/src/components/SampleQueue/CharacterisationTaskItem.jsx +++ b/ui/src/components/SampleQueue/CharacterisationTaskItem.jsx @@ -6,20 +6,14 @@ /* eslint-disable sonarjs/no-duplicate-string */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { - ProgressBar, - Button, - Collapse, - Table, - OverlayTrigger, - Tooltip, -} from 'react-bootstrap'; +import { ProgressBar, Button, Collapse, Table } from 'react-bootstrap'; import { TASK_UNCOLLECTED, TASK_COLLECTED, TASK_COLLECT_FAILED, TASK_RUNNING, } from '../../constants'; +import TooltipTrigger from '../TooltipTrigger'; export default class TaskItem extends Component { static propTypes = { @@ -201,21 +195,20 @@ export default class TaskItem extends Component { const pathEndPart = path.slice(-40); return ( - + {path} {value} - + } > .../{pathEndPart.slice(pathEndPart.indexOf('/') + 1)} {value} - + ); } diff --git a/ui/src/components/SampleQueue/TaskItem.jsx b/ui/src/components/SampleQueue/TaskItem.jsx index c2cb8fe13..486d0afe3 100644 --- a/ui/src/components/SampleQueue/TaskItem.jsx +++ b/ui/src/components/SampleQueue/TaskItem.jsx @@ -6,20 +6,14 @@ /* eslint-disable sonarjs/no-duplicate-string */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { - ProgressBar, - Button, - Collapse, - Table, - OverlayTrigger, - Tooltip, -} from 'react-bootstrap'; +import { ProgressBar, Button, Collapse, Table } from 'react-bootstrap'; import { TASK_UNCOLLECTED, TASK_COLLECTED, TASK_COLLECT_FAILED, TASK_RUNNING, } from '../../constants'; +import TooltipTrigger from '../TooltipTrigger'; export default class TaskItem extends Component { static propTypes = { @@ -153,21 +147,20 @@ export default class TaskItem extends Component { const pathEndPart = path.slice(-40); return ( - + {path} {value} - + } > .../{pathEndPart.slice(pathEndPart.indexOf('/') + 1)} {value} - + ); } diff --git a/ui/src/components/SampleQueue/WorkflowTaskItem.jsx b/ui/src/components/SampleQueue/WorkflowTaskItem.jsx index 1e0986eb6..9365dacec 100644 --- a/ui/src/components/SampleQueue/WorkflowTaskItem.jsx +++ b/ui/src/components/SampleQueue/WorkflowTaskItem.jsx @@ -5,19 +5,14 @@ /* eslint-disable sonarjs/no-duplicate-string */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { - ProgressBar, - Button, - Collapse, - OverlayTrigger, - Tooltip, -} from 'react-bootstrap'; +import { ProgressBar, Button, Collapse } from 'react-bootstrap'; import { TASK_UNCOLLECTED, TASK_COLLECTED, TASK_COLLECT_FAILED, TASK_RUNNING, } from '../../constants'; +import TooltipTrigger from '../TooltipTrigger'; export default class WorkflowTaskItem extends Component { static propTypes = { @@ -122,15 +117,11 @@ export default class WorkflowTaskItem extends Component { const pathEndPart = path.slice(-40); return ( - {path}} - > + .../{pathEndPart.slice(pathEndPart.indexOf('/') + 1)} - + ); } diff --git a/ui/src/components/TooltipTrigger.jsx b/ui/src/components/TooltipTrigger.jsx new file mode 100644 index 000000000..6d66110fe --- /dev/null +++ b/ui/src/components/TooltipTrigger.jsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { OverlayTrigger, Tooltip } from 'react-bootstrap'; + +function TooltipTrigger(props) { + const { id, placement = 'bottom', tooltipContent, children } = props; + + return ( + {tooltipContent}} + > + {children} + + ); +} + +export default TooltipTrigger; diff --git a/ui/src/containers/SampleGridTableContainer.jsx b/ui/src/containers/SampleGridTableContainer.jsx index 8b0858f58..f5cb1f84f 100644 --- a/ui/src/containers/SampleGridTableContainer.jsx +++ b/ui/src/containers/SampleGridTableContainer.jsx @@ -5,15 +5,7 @@ import React from 'react'; import withNavigate from '../components/withNavigate'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; -import { - Row, - Col, - Table, - OverlayTrigger, - Tooltip, - Button, - Dropdown, -} from 'react-bootstrap'; +import { Row, Col, Table, Button, Dropdown } from 'react-bootstrap'; import LazyLoad, { forceVisible } from 'react-lazyload'; import Collapsible from 'react-collapsible'; @@ -61,6 +53,7 @@ import SampleIsaraView from './SampleIsaraView'; import { SampleGridTableItem } from '../components/SampleGrid/SampleGridTableItem'; import { TaskItem } from '../components/SampleGrid/TaskItem'; +import TooltipTrigger from '../components/TooltipTrigger'; const SETTINGS = { dots: false, @@ -485,17 +478,14 @@ class SampleGridTableContainer extends React.Component { return ( <> - {puck ? ( - {puckCode} - ) : null} - {puckCode} } + - {pickSample - ? 'Pick samples/ Add to Queue' - : 'Unpick samples / Remove from Queue'} - + tooltipContent={ + pickSample + ? 'Pick samples/ Add to Queue' + : 'Unpick samples / Remove from Queue' } > - + ); } diff --git a/ui/src/containers/SampleListViewContainer.jsx b/ui/src/containers/SampleListViewContainer.jsx index d68b56311..612f28c79 100644 --- a/ui/src/containers/SampleListViewContainer.jsx +++ b/ui/src/containers/SampleListViewContainer.jsx @@ -17,8 +17,6 @@ import { DropdownButton, InputGroup, Dropdown, - OverlayTrigger, - Tooltip, } from 'react-bootstrap'; import { MdGridView } from 'react-icons/md'; @@ -56,6 +54,7 @@ import SampleGridTableContainer from './SampleGridTableContainer'; import QueueSettings from './QueueSettings.jsx'; import '../components/SampleGrid/SampleGridTable.css'; +import TooltipTrigger from '../components/TooltipTrigger.jsx'; class SampleListViewContainer extends React.Component { constructor(props) { @@ -821,13 +820,9 @@ class SampleListViewContainer extends React.Component { - - Synchronise sample list with ISPyB - - } + - + - - Remove all samples from sample list and queue - - } + - +