@mantine/hooks
Version:
A collection of 50+ hooks for state and UI management
27 lines (26 loc) • 746 B
JavaScript
"use client";
import { useRef, useState } from "react";
//#region packages/@mantine/hooks/src/use-map/use-map.ts
function useMap(initialState) {
const [map, setMap] = useState(() => new Map(initialState));
const mapRef = useRef(map);
mapRef.current = map;
map.set = (...args) => {
Map.prototype.set.apply(mapRef.current, args);
setMap(new Map(mapRef.current));
return mapRef.current;
};
map.clear = (...args) => {
Map.prototype.clear.apply(mapRef.current, args);
setMap(new Map(mapRef.current));
};
map.delete = (...args) => {
const res = Map.prototype.delete.apply(mapRef.current, args);
setMap(new Map(mapRef.current));
return res;
};
return map;
}
//#endregion
export { useMap };
//# sourceMappingURL=use-map.mjs.map