@trackunit/react-map 0.2.25 → 0.2.27
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/index.cjs.js +12 -8
- package/index.esm.js +12 -8
- package/migrations/entry.js.map +1 -0
- package/package.json +10 -10
package/index.cjs.js
CHANGED
|
@@ -1804,19 +1804,23 @@ const Button = ({ config, overlaySide = undefined, resolved }) => {
|
|
|
1804
1804
|
* @internal
|
|
1805
1805
|
*/
|
|
1806
1806
|
const Custom = ({ config, overlaySide = undefined, resolved, placement }) => {
|
|
1807
|
-
|
|
1807
|
+
const { autoTooltip, label, render } = config;
|
|
1808
|
+
// ControlRenderer passes a new `resolved` ref each Controls pass — keep the last deep-equal value.
|
|
1809
|
+
const [prevResolved, setPrevResolved] = react.useState(resolved);
|
|
1810
|
+
const stableResolved = resolved !== prevResolved && !esToolkit.isEqual(resolved, prevResolved) ? resolved : prevResolved;
|
|
1811
|
+
if (stableResolved !== prevResolved) {
|
|
1812
|
+
setPrevResolved(stableResolved);
|
|
1813
|
+
}
|
|
1814
|
+
// Skip re-calling `render` when only the `resolved` object reference changed, or when the control is not visible.
|
|
1815
|
+
const content = react.useMemo(() => (stableResolved.visible ? render({ resolved: stableResolved, placement }) : null), [placement, render, stableResolved]);
|
|
1816
|
+
if (!stableResolved.visible) {
|
|
1808
1817
|
return null;
|
|
1809
1818
|
}
|
|
1810
|
-
const context = {
|
|
1811
|
-
resolved,
|
|
1812
|
-
placement,
|
|
1813
|
-
};
|
|
1814
|
-
const content = config.render(context);
|
|
1815
1819
|
// `Tooltip` uses Radix `Slot`, which forwards props (refs, data-testid) onto its child.
|
|
1816
1820
|
// A Fragment cannot accept those props — use an inert wrapper with `contents` layout.
|
|
1817
1821
|
const wrapped = jsxRuntime.jsx("span", { className: "contents", children: content });
|
|
1818
|
-
const useStandaloneTooltip = placement === "standalone" && (
|
|
1819
|
-
return useStandaloneTooltip ? (jsxRuntime.jsx(reactComponents.Tooltip, { delayed: true, label:
|
|
1822
|
+
const useStandaloneTooltip = placement === "standalone" && (autoTooltip ?? "standalone") === "standalone";
|
|
1823
|
+
return useStandaloneTooltip ? (jsxRuntime.jsx(reactComponents.Tooltip, { delayed: true, label: label, placement: overlaySide === "right" ? RIGHT_CONTROL_TOOLTIP_PLACEMENT : undefined, children: wrapped })) : (wrapped);
|
|
1820
1824
|
};
|
|
1821
1825
|
|
|
1822
1826
|
/** Shared padding for interactive menu items (button, toggle, stepper, select, radioGroup). */
|
package/index.esm.js
CHANGED
|
@@ -1803,19 +1803,23 @@ const Button = ({ config, overlaySide = undefined, resolved }) => {
|
|
|
1803
1803
|
* @internal
|
|
1804
1804
|
*/
|
|
1805
1805
|
const Custom = ({ config, overlaySide = undefined, resolved, placement }) => {
|
|
1806
|
-
|
|
1806
|
+
const { autoTooltip, label, render } = config;
|
|
1807
|
+
// ControlRenderer passes a new `resolved` ref each Controls pass — keep the last deep-equal value.
|
|
1808
|
+
const [prevResolved, setPrevResolved] = useState(resolved);
|
|
1809
|
+
const stableResolved = resolved !== prevResolved && !isEqual(resolved, prevResolved) ? resolved : prevResolved;
|
|
1810
|
+
if (stableResolved !== prevResolved) {
|
|
1811
|
+
setPrevResolved(stableResolved);
|
|
1812
|
+
}
|
|
1813
|
+
// Skip re-calling `render` when only the `resolved` object reference changed, or when the control is not visible.
|
|
1814
|
+
const content = useMemo(() => (stableResolved.visible ? render({ resolved: stableResolved, placement }) : null), [placement, render, stableResolved]);
|
|
1815
|
+
if (!stableResolved.visible) {
|
|
1807
1816
|
return null;
|
|
1808
1817
|
}
|
|
1809
|
-
const context = {
|
|
1810
|
-
resolved,
|
|
1811
|
-
placement,
|
|
1812
|
-
};
|
|
1813
|
-
const content = config.render(context);
|
|
1814
1818
|
// `Tooltip` uses Radix `Slot`, which forwards props (refs, data-testid) onto its child.
|
|
1815
1819
|
// A Fragment cannot accept those props — use an inert wrapper with `contents` layout.
|
|
1816
1820
|
const wrapped = jsx("span", { className: "contents", children: content });
|
|
1817
|
-
const useStandaloneTooltip = placement === "standalone" && (
|
|
1818
|
-
return useStandaloneTooltip ? (jsx(Tooltip, { delayed: true, label:
|
|
1821
|
+
const useStandaloneTooltip = placement === "standalone" && (autoTooltip ?? "standalone") === "standalone";
|
|
1822
|
+
return useStandaloneTooltip ? (jsx(Tooltip, { delayed: true, label: label, placement: overlaySide === "right" ? RIGHT_CONTROL_TOOLTIP_PLACEMENT : undefined, children: wrapped })) : (wrapped);
|
|
1819
1823
|
};
|
|
1820
1824
|
|
|
1821
1825
|
/** Shared padding for interactive menu items (button, toggle, stepper, select, radioGroup). */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../../libs/react/map/migrations/entry.ts"],"names":[],"mappings":"","sourcesContent":["export {};\n"]}
|
package/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/react-map",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.27",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=24.x"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@trackunit/react-components": "2.2.
|
|
11
|
-
"@trackunit/css-class-variance-utilities": "1.13.
|
|
12
|
-
"@trackunit/react-form-components": "2.2.
|
|
13
|
-
"@trackunit/react-core-hooks": "1.18.
|
|
14
|
-
"@trackunit/geo-json-utils": "1.14.
|
|
15
|
-
"@trackunit/i18n-library-translation": "2.1.
|
|
10
|
+
"@trackunit/react-components": "2.2.22",
|
|
11
|
+
"@trackunit/css-class-variance-utilities": "1.13.79",
|
|
12
|
+
"@trackunit/react-form-components": "2.2.23",
|
|
13
|
+
"@trackunit/react-core-hooks": "1.18.20",
|
|
14
|
+
"@trackunit/geo-json-utils": "1.14.82",
|
|
15
|
+
"@trackunit/i18n-library-translation": "2.1.20",
|
|
16
16
|
"react-minimal-pie-chart": "^8.4.0",
|
|
17
|
-
"@trackunit/react-map-adapter-shared": "0.0.
|
|
18
|
-
"@trackunit/react-map-color-utils": "0.0.
|
|
19
|
-
"@trackunit/ui-design-tokens": "1.13.
|
|
17
|
+
"@trackunit/react-map-adapter-shared": "0.0.63",
|
|
18
|
+
"@trackunit/react-map-color-utils": "0.0.48",
|
|
19
|
+
"@trackunit/ui-design-tokens": "1.13.78",
|
|
20
20
|
"@floating-ui/react": "^0.26.25",
|
|
21
21
|
"es-toolkit": "^1.39.10",
|
|
22
22
|
"tailwind-merge": "^2.0.0",
|