UNPKG

skedify-calendar

Version:
50 lines (40 loc) 1.6 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _PLACEMENT_MAP; import React, { memo } from 'react'; import { v4 as uuid } from 'uuid'; import { isFunction } from '../../utils/isFunction'; var PLACEMENT_TOP = uuid(); var PLACEMENT_BOTTOM = uuid(); var MOVING_INDICATOR = uuid(); var PLACEMENT_MAP = (_PLACEMENT_MAP = {}, _PLACEMENT_MAP[PLACEMENT_TOP] = function () { return { top: 0 }; }, _PLACEMENT_MAP[PLACEMENT_BOTTOM] = function () { return { bottom: 0 }; }, _PLACEMENT_MAP[MOVING_INDICATOR] = function () { return { width: '100%', height: '100%' }; }, _PLACEMENT_MAP); function DragHandleComponent(_ref) { var placement = _ref.placement, onActivate = _ref.onActivate, children = _ref.children; var size = 8; if (placement === MOVING_INDICATOR) { return React.createElement( 'div', { style: PLACEMENT_MAP[placement](), onPointerDown: onActivate }, children ); } return React.createElement('button', { type: 'button', onPointerDown: onActivate, className: 'SkedifyCalendar__DragHandle', style: _extends({ height: size }, isFunction(PLACEMENT_MAP[placement]) ? PLACEMENT_MAP[placement]() : {}) }); } export var DragHandle = memo(DragHandleComponent); DragHandle.PLACEMENT_TOP = PLACEMENT_TOP; DragHandle.PLACEMENT_BOTTOM = PLACEMENT_BOTTOM; DragHandle.MOVING_INDICATOR = MOVING_INDICATOR;