diff --git a/src/plugin/exo/Resources/modules/items/ordering/components/editor.jsx b/src/plugin/exo/Resources/modules/items/ordering/components/editor.jsx index f8ce609892e..924d9955693 100644 --- a/src/plugin/exo/Resources/modules/items/ordering/components/editor.jsx +++ b/src/plugin/exo/Resources/modules/items/ordering/components/editor.jsx @@ -178,7 +178,7 @@ class Item extends Component { {this.props.connectDragSource( diff --git a/src/plugin/exo/Resources/modules/items/pair/components/editor.jsx b/src/plugin/exo/Resources/modules/items/pair/components/editor.jsx index 986b24210a6..fc95c782c4c 100644 --- a/src/plugin/exo/Resources/modules/items/pair/components/editor.jsx +++ b/src/plugin/exo/Resources/modules/items/pair/components/editor.jsx @@ -1,6 +1,4 @@ import React, {Component} from 'react' -import OverlayTrigger from 'react-bootstrap/OverlayTrigger' -import Tooltip from 'react-bootstrap/Tooltip' import cloneDeep from 'lodash/cloneDeep' import classes from 'classnames' @@ -12,6 +10,7 @@ import {FormData} from '#/main/app/content/form/containers/data' import {FormGroup} from '#/main/app/content/form/components/group' import {makeId} from '#/main/core/scaffolding/id' import {HtmlInput} from '#/main/app/data/types/html/components/input' +import {TooltipOverlay} from '#/main/app/overlays/tooltip/components/overlay' import {SCORE_SUM} from '#/plugin/exo/quiz/enums' import {makeDraggable, makeDroppable} from '#/plugin/exo/utils/dragAndDrop' @@ -309,7 +308,7 @@ class Pair extends Component { /> } -
+
@@ -627,7 +623,8 @@ Item.propTypes = { index: T.number.isRequired, item: T.object.isRequired, onUpdate: T.func.isRequired, - onDelete: T.func.isRequired + onDelete: T.func.isRequired, + isDragging: T.bool.isRequired } Item = makeDraggable(Item, 'ITEM', PairItemDragPreview) diff --git a/src/plugin/exo/Resources/modules/items/pair/components/player.jsx b/src/plugin/exo/Resources/modules/items/pair/components/player.jsx index bc807c6bfe6..2ed9927d5cf 100644 --- a/src/plugin/exo/Resources/modules/items/pair/components/player.jsx +++ b/src/plugin/exo/Resources/modules/items/pair/components/player.jsx @@ -3,17 +3,16 @@ import {PropTypes as T} from 'prop-types' import classes from 'classnames' import times from 'lodash/times' -import OverlayTrigger from 'react-bootstrap/OverlayTrigger' -import Tooltip from 'react-bootstrap/Tooltip' - import {trans} from '#/main/app/intl/translation' import {CALLBACK_BUTTON} from '#/main/app/buttons' import {Button} from '#/main/app/action/components/button' +import {ContentHtml} from '#/main/app/content/components/html' import {makeDraggable, makeDroppable} from '#/plugin/exo/utils/dragAndDrop' import {utils} from '#/plugin/exo/items/pair/utils' import {PairItemDragPreview} from '#/plugin/exo/items/pair/components/pair-item-drag-preview' + let DropBox = props => props.connectDropTarget(
-
+
+ {props.item.data} {props.item.removable && props.removable && -
} - -
PairItem.propTypes = { @@ -102,35 +102,18 @@ PairRowList.propTypes = { } let Item = props => { - return ( -
- {props.connectDragSource( -
- {trans('move')} - } - > - - {props.draggable && - - } - - + const element = +
+ {props.item.data} + + {props.draggable && +
+
- )} -
+ }
- ) + + return props.draggable ? props.connectDragSource(element) : element } Item.propTypes = { @@ -208,7 +191,7 @@ class PairPlayer extends Component { render() { return ( -
+
diff --git a/src/plugin/exo/Resources/styles/items/_pair.scss b/src/plugin/exo/Resources/styles/items/_pair.scss index bd597088340..a4a4087beb4 100644 --- a/src/plugin/exo/Resources/styles/items/_pair.scss +++ b/src/plugin/exo/Resources/styles/items/_pair.scss @@ -33,25 +33,17 @@ .pair { // Display both items on the same line .form-group { - display: flex; - justify-content: space-between; - align-items: flex-start; - } - - .checkbox { - margin-bottom: 0; - } - - .pair-item, - .pair-item-placeholder { - width: 49%; // not ideal because we have no control on the size of the gape + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: $answer-item-padding; } .pair-item { - background-color: #fff; - border: 1px solid white; - padding: $padding-base-vertical $padding-base-horizontal; - border-radius: $border-radius; + background-color: var(--#{$prefix}body-bg); + border: $input-border-width solid var(--#{$prefix}body-bg); + padding: $input-padding-y $input-padding-x; + line-height: $input-line-height; + border-radius: var(--#{$prefix}border-radius); .item-content { text-overflow: ellipsis; @@ -78,20 +70,21 @@ /* PLAYER */ .pair-player { .pair { - display: flex; - justify-content: space-between; - align-items: flex-start; + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: $answer-item-padding; - .pair-item, - .pair-item-placeholder { - width: 49%; // not ideal because we have no control on the size of the gape + .pair-item { + background-color: var(--#{$prefix}body-bg); + border: $answer-item-border-width solid var(--#{$prefix}body-bg); + padding: $answer-item-padding; + border-radius: var(--#{$prefix}border-radius); } - .pair-item { - background-color: #fff; - border: 1px solid white; - padding: $padding-base-vertical $padding-base-horizontal; - border-radius: $border-radius; + .drop-placeholder { + flex: 1; + padding: $answer-item-padding; + border-radius: var(--#{$prefix}border-radius); } } @@ -103,12 +96,6 @@ margin-bottom: 0; } } - - .btn-drag .drag-handle, - .btn-item-remove { - padding: 0; - border: none; - } } .pair-feedback, @@ -138,4 +125,18 @@ padding: 10px; margin-top: 10px; } -} \ No newline at end of file +} + +.pair-answer-item { + display: flex; + flex-direction: row; + align-items: center; + + .pair-item-content { + margin-right: auto; + } + + .item-actions { + margin-left: ($answer-item-padding * .5); + } +}