skedify-calendar
Version:
Skedify Calendar React component
50 lines (40 loc) • 1.6 kB
JavaScript
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;