@janiscommerce/ui-web 0.33.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.34.0] - 2025-04-15
11
+
12
+ ### Added
13
+
14
+ - callback onDrag on Marker component
15
+
10
16
  ## [0.33.0] - 2025-04-10
11
17
 
12
18
  ### Added
package/dist/index.esm.js CHANGED
@@ -15937,6 +15937,28 @@ var InfoWindow = function InfoWindow(_ref) {
15937
15937
  }, children));
15938
15938
  };
15939
15939
 
15940
+ var getCoordsFromEvent = function getCoordsFromEvent() {
15941
+ var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15942
+ if (_typeof(event) !== 'object') return;
15943
+ var _event$latLng = event.latLng;
15944
+ _event$latLng = _event$latLng === void 0 ? {} : _event$latLng;
15945
+ var _event$latLng$lat = _event$latLng.lat,
15946
+ lat = _event$latLng$lat === void 0 ? function () {} : _event$latLng$lat,
15947
+ _event$latLng$lng = _event$latLng.lng,
15948
+ lng = _event$latLng$lng === void 0 ? function () {} : _event$latLng$lng;
15949
+ return {
15950
+ lat: lat(),
15951
+ lng: lng()
15952
+ };
15953
+ };
15954
+ var markerHasEqualPosition = function markerHasEqualPosition() {
15955
+ var prevPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15956
+ var newPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
15957
+ var hasEqualLat = (prevPosition === null || prevPosition === void 0 ? void 0 : prevPosition.lat) === (newPosition === null || newPosition === void 0 ? void 0 : newPosition.lat);
15958
+ var hasEqualLng = (prevPosition === null || prevPosition === void 0 ? void 0 : prevPosition.lng) === (newPosition === null || newPosition === void 0 ? void 0 : newPosition.lng);
15959
+ return hasEqualLat && hasEqualLng;
15960
+ };
15961
+
15940
15962
  var Marker = function Marker(_ref) {
15941
15963
  var _ref$markerData = _ref.markerData,
15942
15964
  markerData = _ref$markerData === void 0 ? {} : _ref$markerData,
@@ -15945,7 +15967,12 @@ var Marker = function Marker(_ref) {
15945
15967
  _ref$readOnly = _ref.readOnly,
15946
15968
  readOnly = _ref$readOnly === void 0 ? true : _ref$readOnly;
15947
15969
 
15948
- var _ref2 = markerData || {},
15970
+ var _useState = useState(markerData),
15971
+ _useState2 = _slicedToArray(_useState, 2),
15972
+ marker = _useState2[0],
15973
+ setMarker = _useState2[1];
15974
+
15975
+ var _ref2 = marker || {},
15949
15976
  icon = _ref2.icon,
15950
15977
  position = _ref2.position,
15951
15978
  overlay = _ref2.overlay,
@@ -15956,20 +15983,24 @@ var Marker = function Marker(_ref) {
15956
15983
  _onLoad = _markerOptions$onLoad === void 0 ? function () {} : _markerOptions$onLoad,
15957
15984
  _markerOptions$onClic = markerOptions.onClick,
15958
15985
  _onClick = _markerOptions$onClic === void 0 ? function () {} : _markerOptions$onClic,
15959
- _markerOptions$onDrag = markerOptions.onDragStart,
15960
- _onDragStart = _markerOptions$onDrag === void 0 ? function () {} : _markerOptions$onDrag,
15961
- _markerOptions$onDrag2 = markerOptions.onDragEnd,
15962
- _onDragEnd = _markerOptions$onDrag2 === void 0 ? function () {} : _markerOptions$onDrag2;
15986
+ _markerOptions$onDrag = markerOptions.onDrag,
15987
+ _onDrag = _markerOptions$onDrag === void 0 ? function () {} : _markerOptions$onDrag,
15988
+ _markerOptions$onDrag2 = markerOptions.onDragStart,
15989
+ _onDragStart = _markerOptions$onDrag2 === void 0 ? function () {} : _markerOptions$onDrag2,
15990
+ _markerOptions$onDrag3 = markerOptions.onDragEnd,
15991
+ _onDragEnd = _markerOptions$onDrag3 === void 0 ? function () {} : _markerOptions$onDrag3;
15963
15992
 
15964
- var _useState = useState(false),
15965
- _useState2 = _slicedToArray(_useState, 2),
15966
- infoWindowOpen = _useState2[0],
15967
- setInfoWindowOpen = _useState2[1];
15993
+ var markerRef = useRef(null);
15968
15994
 
15969
15995
  var _useState3 = useState(false),
15970
15996
  _useState4 = _slicedToArray(_useState3, 2),
15971
- mouseOverInfoWindow = _useState4[0],
15972
- setMouseOverInfoWindow = _useState4[1];
15997
+ infoWindowOpen = _useState4[0],
15998
+ setInfoWindowOpen = _useState4[1];
15999
+
16000
+ var _useState5 = useState(false),
16001
+ _useState6 = _slicedToArray(_useState5, 2),
16002
+ mouseOverInfoWindow = _useState6[0],
16003
+ setMouseOverInfoWindow = _useState6[1];
15973
16004
 
15974
16005
  var openInfoWindow = function openInfoWindow() {
15975
16006
  return setInfoWindowOpen(true);
@@ -15982,21 +16013,51 @@ var Marker = function Marker(_ref) {
15982
16013
  var delayedInfoWindowHover = debounce(function () {
15983
16014
  if (!mouseOverInfoWindow) closeInfoWindow();
15984
16015
  }, 100);
16016
+
16017
+ var updateMarker = function updateMarker() {
16018
+ var newData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16019
+
16020
+ var updatedMarker = _objectSpread2(_objectSpread2({}, marker), newData);
16021
+
16022
+ setMarker(updatedMarker);
16023
+ return updatedMarker;
16024
+ };
16025
+
16026
+ var getEventHandlerData = function getEventHandlerData(event) {
16027
+ var _markerRef$current;
16028
+
16029
+ var newPosition = getCoordsFromEvent(event);
16030
+ return {
16031
+ marker: markerHasEqualPosition(marker === null || marker === void 0 ? void 0 : marker.position, newPosition) ? marker : updateMarker({
16032
+ position: newPosition
16033
+ }),
16034
+ prevMarker: marker,
16035
+ instance: (_markerRef$current = markerRef.current) === null || _markerRef$current === void 0 ? void 0 : _markerRef$current.marker
16036
+ };
16037
+ };
16038
+
15985
16039
  var markerProps = {
16040
+ ref: markerRef,
15986
16041
  position: position,
15987
16042
  draggable: isDraggable || !readOnly,
15988
16043
  icon: icon,
15989
- onLoad: function onLoad(markerInstance) {
15990
- return _onLoad(markerData, markerInstance);
16044
+ onLoad: function onLoad(instance) {
16045
+ return _onLoad({
16046
+ prevMarker: marker,
16047
+ instance: instance
16048
+ });
16049
+ },
16050
+ onClick: function onClick(event) {
16051
+ return _onClick(getEventHandlerData(event));
15991
16052
  },
15992
- onClick: function onClick(eventData) {
15993
- return _onClick(markerData, eventData);
16053
+ onDrag: function onDrag(event) {
16054
+ return _onDrag(event);
15994
16055
  },
15995
- onDragEnd: function onDragEnd(eventData) {
15996
- return _onDragEnd(markerData, eventData);
16056
+ onDragEnd: function onDragEnd(event) {
16057
+ return _onDragEnd(getEventHandlerData(event));
15997
16058
  },
15998
- onDragStart: function onDragStart(eventData) {
15999
- return _onDragStart(markerData, eventData);
16059
+ onDragStart: function onDragStart(event) {
16060
+ return _onDragStart(getEventHandlerData(event));
16000
16061
  },
16001
16062
  onMouseOver: function onMouseOver() {
16002
16063
  return openInfoWindow();