skedify-calendar
Version:
Skedify Calendar React component
61 lines (45 loc) • 1.9 kB
JavaScript
;
exports.__esModule = true;
exports.DragHandle = undefined;
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;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _uuid = require('uuid');
var _isFunction = require('../../utils/isFunction');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PLACEMENT_TOP = (0, _uuid.v4)();
var PLACEMENT_BOTTOM = (0, _uuid.v4)();
var MOVING_INDICATOR = (0, _uuid.v4)();
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 _react2.default.createElement(
'div',
{ style: PLACEMENT_MAP[placement](), onPointerDown: onActivate },
children
);
}
return _react2.default.createElement('button', {
type: 'button',
onPointerDown: onActivate,
className: 'SkedifyCalendar__DragHandle',
style: _extends({
height: size
}, (0, _isFunction.isFunction)(PLACEMENT_MAP[placement]) ? PLACEMENT_MAP[placement]() : {})
});
}
var DragHandle = exports.DragHandle = (0, _react.memo)(DragHandleComponent);
DragHandle.PLACEMENT_TOP = PLACEMENT_TOP;
DragHandle.PLACEMENT_BOTTOM = PLACEMENT_BOTTOM;
DragHandle.MOVING_INDICATOR = MOVING_INDICATOR;