UNPKG

@wix/design-system

Version:

@wix/design-system

111 lines (110 loc) 4.06 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.SliderHandle = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _rcSlider = require("rc-slider"); var _Focusable = require("../common/Focusable"); var _useHover2 = require("../common/useHover"); var _constants = require("./constants"); var _Slider = require("./Slider.classes"); var _Tooltip = require("../Tooltip"); var _utils = require("./utils"); var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/Slider/SliderHandle.jsx", _this = void 0; var SliderHandle = function SliderHandle(_ref) { var tooltipValue = _ref.tooltipValue, className = _ref.className, _ref$onFocusCustom = _ref.onFocusCustom, onFocusCustom = _ref$onFocusCustom === void 0 ? function () {} : _ref$onFocusCustom, _ref$onBlurCustom = _ref.onBlurCustom, onBlurCustom = _ref$onBlurCustom === void 0 ? function () {} : _ref$onBlurCustom, focusableOnFocus = _ref.focusableOnFocus, focusableOnBlur = _ref.focusableOnBlur, disabled = _ref.disabled, handleProps = _ref.handleProps, _ref$displayTooltip = _ref.displayTooltip, displayTooltip = _ref$displayTooltip === void 0 ? true : _ref$displayTooltip, index = _ref.index, dataHook = _ref.dataHook, direction = _ref.direction, gradientColor = _ref.gradientColor; var min = handleProps.min, max = handleProps.max, value = handleProps.value; var gradientValue = (value - min) / (max - min); var _useHover = (0, _useHover2.useHover)(), hovered = _useHover.hovered, hoverProps = _useHover.hoverProps; var tooltipRef = _react["default"].useRef(null); var handleOnFocus = function handleOnFocus(event) { focusableOnFocus(); tooltipRef.current.open(); onFocusCustom(Number(tooltipValue), event); }; var handleOnBlur = function handleOnBlur(event) { focusableOnBlur(); tooltipRef.current.close(); onBlurCustom(Number(tooltipValue), event); }; var tooltipDataHook = dataHook ? "".concat(dataHook, "-").concat(_constants.dataHooks.sliderTooltip, "-").concat(index) : "".concat(_constants.dataHooks.sliderTooltip, "-").concat(index); return /*#__PURE__*/_react["default"].createElement("div", { className: _Slider.handleClasses.root({ disabled: disabled, hovered: hovered, hasGradient: !!gradientColor }, className), onBlur: handleOnBlur, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 48, columnNumber: 5 } }, /*#__PURE__*/_react["default"].createElement(_rcSlider.Handle, (0, _extends2["default"])({}, handleProps, { vertical: direction === 'vertical', onFocus: handleOnFocus, className: _Slider.handleClasses.handle() }, hoverProps, { "data-hook": _constants.dataHooks.sliderHandle, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 55, columnNumber: 7 } }), /*#__PURE__*/_react["default"].createElement(_Tooltip.Tooltip, { ref: tooltipRef, className: _Slider.handleClasses.tooltip(), disabled: !displayTooltip || disabled || !tooltipValue, content: tooltipValue, moveBy: !!gradientColor ? { y: 3.5 } : { y: 3 }, dataHook: tooltipDataHook, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 63, columnNumber: 9 } }, /*#__PURE__*/_react["default"].createElement("div", { className: _Slider.handleClasses.thumb(), style: (0, _utils.getThumbStyle)({ gradientColor: gradientColor, alpha: gradientValue, disabled: disabled }), "data-hook": _constants.dataHooks.sliderThumb, __self: _this, __source: { fileName: _jsxFileName, lineNumber: 71, columnNumber: 11 } })))); }; var WrappedSliderHandle = exports.SliderHandle = (0, _Focusable.withFocusable)(SliderHandle);