DieselDepot-APP/node_modules/@react-leaflet/core/lib/element.js
SJCoetz 34608475cb feat: add depot map integration
Add Leaflet and react-leaflet dependencies for interactive map functionality
Extend DDDepot type with optional latitude/longitude fields for map markers
Update site metadata and admin settings page text
Add client-side DepotMap component to render depot locations
Update PocketBase admin token in environment configuration
2026-07-20 12:31:18 +02:00

34 lines
1.1 KiB
JavaScript

import { useEffect, useRef } from 'react';
export function createElementObject(instance, context, container) {
return Object.freeze({
instance,
context,
container
});
}
export function createElementHook(createElement, updateElement) {
if (updateElement == null) {
return function useImmutableLeafletElement(props, context) {
const elementRef = useRef();
if (!elementRef.current) elementRef.current = createElement(props, context);
return elementRef;
};
}
return function useMutableLeafletElement(props, context) {
const elementRef = useRef();
if (!elementRef.current) elementRef.current = createElement(props, context);
const propsRef = useRef(props);
const { instance } = elementRef.current;
useEffect(function updateElementProps() {
if (propsRef.current !== props) {
updateElement(instance, props, propsRef.current);
propsRef.current = props;
}
}, [
instance,
props,
context
]);
return elementRef;
};
}