@ducor/react
Version:
admin template ui interface
40 lines (39 loc) • 1.61 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { useEffect, useState } from "react";
var Move = function (_a) {
var onChange = _a.onChange;
var _b = useState(false), dragStart = _b[0], setDragStart = _b[1];
var handleChange = function (x, y) {
// Determine if the position is on the left side of the viewport
var isLeft = x < window.innerWidth / 2;
onChange(dragStart, isLeft, y);
var data = {
dragStart: dragStart,
isLeft: isLeft,
y: y,
timestamp: new Date().getTime(),
windowWidth: window.innerWidth,
windowHeight: window.innerHeight,
};
//save to localstorage
localStorage.setItem("customizerPosition", JSON.stringify(data));
};
useEffect(function () {
var data = localStorage.getItem("customizerPosition");
if (data) {
var parsedData = JSON.parse(data);
if (window.innerWidth === parsedData.windowWidth
&& window.innerHeight === parsedData.windowHeight
&& parsedData.isLeft && parsedData.y) {
onChange(parsedData.dragStart, parsedData.isLeft, parsedData.y);
}
}
}, []);
return (_jsx("button", { className: " bg-gray-200 cursor-grab", draggable: true, onDragStart: function (e) {
setDragStart(true);
}, onDragEnd: function (e) {
setDragStart(false);
handleChange(e.clientX, e.clientY);
}, children: _jsx("i", { className: "feather-more-horizontal" }) }));
};
export default Move;