@mantine/hooks
Version:
A collection of 50+ hooks for state and UI management
1 lines • 1.35 kB
Source Map (JSON)
{"version":3,"file":"use-map.cjs","names":[],"sources":["../../src/use-map/use-map.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nexport function useMap<T, V>(initialState?: [T, V][]): Map<T, V> {\n const [map, setMap] = useState(() => new Map<T, V>(initialState));\n const mapRef = useRef(map);\n mapRef.current = map;\n\n map.set = (...args) => {\n Map.prototype.set.apply(mapRef.current, args);\n setMap(new Map(mapRef.current));\n return mapRef.current;\n };\n\n map.clear = (...args) => {\n Map.prototype.clear.apply(mapRef.current, args);\n setMap(new Map(mapRef.current));\n };\n\n map.delete = (...args) => {\n const res = Map.prototype.delete.apply(mapRef.current, args);\n setMap(new Map(mapRef.current));\n\n return res;\n };\n\n return map;\n}\n"],"mappings":";;;AAEA,SAAgB,OAAa,cAAoC;CAC/D,MAAM,CAAC,KAAK,WAAA,GAAA,MAAA,SAAA,OAAyB,IAAI,IAAU,YAAY,CAAC;CAChE,MAAM,UAAA,GAAA,MAAA,OAAA,CAAgB,GAAG;CACzB,OAAO,UAAU;CAEjB,IAAI,OAAO,GAAG,SAAS;EACrB,IAAI,UAAU,IAAI,MAAM,OAAO,SAAS,IAAI;EAC5C,OAAO,IAAI,IAAI,OAAO,OAAO,CAAC;EAC9B,OAAO,OAAO;CAChB;CAEA,IAAI,SAAS,GAAG,SAAS;EACvB,IAAI,UAAU,MAAM,MAAM,OAAO,SAAS,IAAI;EAC9C,OAAO,IAAI,IAAI,OAAO,OAAO,CAAC;CAChC;CAEA,IAAI,UAAU,GAAG,SAAS;EACxB,MAAM,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,SAAS,IAAI;EAC3D,OAAO,IAAI,IAAI,OAAO,OAAO,CAAC;EAE9B,OAAO;CACT;CAEA,OAAO;AACT"}