@korsolutions/guidon 1.0.11 → 1.0.13
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/dist/commonjs/hooks/useGuidonRef.js +29 -11
- package/dist/commonjs/hooks/useGuidonRef.js.map +1 -1
- package/dist/module/hooks/useGuidonRef.js +29 -11
- package/dist/module/hooks/useGuidonRef.js.map +1 -1
- package/dist/typescript/commonjs/hooks/useGuidonRef.d.ts.map +1 -1
- package/dist/typescript/module/hooks/useGuidonRef.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useGuidonRef.ts +26 -13
|
@@ -44,9 +44,21 @@ function useGuidonRegister() {
|
|
|
44
44
|
const config = (0, _store.useGuidonStore)(state => state.config);
|
|
45
45
|
const currentStepIndex = (0, _store.useGuidonStore)(state => state.currentStepIndex);
|
|
46
46
|
const measure = (0, _react.useCallback)((targetId, node) => {
|
|
47
|
-
|
|
47
|
+
console.log('[useGuidon] measure() called for:', targetId, {
|
|
48
|
+
hasNode: !!node,
|
|
49
|
+
isActive,
|
|
50
|
+
hasConfig: !!config
|
|
51
|
+
});
|
|
52
|
+
if (!node || !isActive || !config) {
|
|
53
|
+
console.log('[useGuidon] measure() early return - missing node, inactive, or no config');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
48
56
|
const isTargetUsed = config.steps.some(step => step.targetId === targetId);
|
|
49
|
-
if (!isTargetUsed)
|
|
57
|
+
if (!isTargetUsed) {
|
|
58
|
+
console.log('[useGuidon] measure() - target not in config steps:', targetId);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
console.log('[useGuidon] measure() - proceeding to measure:', targetId);
|
|
50
62
|
if (_reactNative.Platform.OS === "web") {
|
|
51
63
|
const el = node;
|
|
52
64
|
if (!el?.getBoundingClientRect) return;
|
|
@@ -60,12 +72,14 @@ function useGuidonRegister() {
|
|
|
60
72
|
const borderRight = parseFloat(style.borderRightWidth);
|
|
61
73
|
const borderTop = parseFloat(style.borderTopWidth);
|
|
62
74
|
const borderBottom = parseFloat(style.borderBottomWidth);
|
|
63
|
-
|
|
75
|
+
const measurements = {
|
|
64
76
|
x: rect.left + window.scrollX + borderLeft + paddingLeft,
|
|
65
77
|
y: rect.top + window.scrollY + borderTop + paddingTop,
|
|
66
78
|
width: rect.width - paddingLeft - paddingRight - borderLeft - borderRight,
|
|
67
79
|
height: rect.height - paddingTop - paddingBottom - borderTop - borderBottom
|
|
68
|
-
}
|
|
80
|
+
};
|
|
81
|
+
console.log('[useGuidon] Registering web target:', targetId, measurements);
|
|
82
|
+
registerTarget(targetId, measurements);
|
|
69
83
|
return;
|
|
70
84
|
}
|
|
71
85
|
const native = node;
|
|
@@ -96,15 +110,19 @@ function useGuidonRegister() {
|
|
|
96
110
|
if (raf) cancelAnimationFrame(raf);
|
|
97
111
|
};
|
|
98
112
|
}, [measure, unregisterTarget]);
|
|
113
|
+
|
|
114
|
+
// Re-measure all registered targets when guide becomes active or step changes
|
|
115
|
+
// This ensures targets from all hook instances get measured
|
|
99
116
|
(0, _react.useEffect)(() => {
|
|
100
117
|
if (!isActive || !config) return;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
console.log('[useGuidon] Effect triggered - measuring all targets in this instance:', Array.from(elementsRef.current.keys()));
|
|
119
|
+
|
|
120
|
+
// Measure all targets registered in this hook instance
|
|
121
|
+
elementsRef.current.forEach((node, id) => {
|
|
122
|
+
console.log('[useGuidon] Scheduling measurement for:', id);
|
|
123
|
+
requestAnimationFrame(() => {
|
|
124
|
+
measure(id, node);
|
|
125
|
+
});
|
|
108
126
|
});
|
|
109
127
|
}, [currentStepIndex, isActive, config, measure]);
|
|
110
128
|
(0, _react.useEffect)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_store","useGuidon","register","useGuidonRegister","elementsRef","useRef","Map","rafRef","registerTarget","useGuidonStore","state","unregisterTarget","isActive","config","currentStepIndex","measure","useCallback","targetId","node","isTargetUsed","steps","some","step","Platform","OS","el","getBoundingClientRect","rect","style","window","getComputedStyle","paddingLeft","parseFloat","paddingRight","paddingTop","paddingBottom","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","x","left","scrollX","y","top","scrollY","width","height","native","measureInWindow","current","set","raf","requestAnimationFrame","delete","get","cancelAnimationFrame","useEffect","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_store","useGuidon","register","useGuidonRegister","elementsRef","useRef","Map","rafRef","registerTarget","useGuidonStore","state","unregisterTarget","isActive","config","currentStepIndex","measure","useCallback","targetId","node","console","log","hasNode","hasConfig","isTargetUsed","steps","some","step","Platform","OS","el","getBoundingClientRect","rect","style","window","getComputedStyle","paddingLeft","parseFloat","paddingRight","paddingTop","paddingBottom","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","measurements","x","left","scrollX","y","top","scrollY","width","height","native","measureInWindow","current","set","raf","requestAnimationFrame","delete","get","cancelAnimationFrame","useEffect","Array","from","keys","forEach","id","handler","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["hooks/useGuidonRef.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,9 +40,21 @@ export function useGuidonRegister() {
|
|
|
40
40
|
const config = useGuidonStore(state => state.config);
|
|
41
41
|
const currentStepIndex = useGuidonStore(state => state.currentStepIndex);
|
|
42
42
|
const measure = useCallback((targetId, node) => {
|
|
43
|
-
|
|
43
|
+
console.log('[useGuidon] measure() called for:', targetId, {
|
|
44
|
+
hasNode: !!node,
|
|
45
|
+
isActive,
|
|
46
|
+
hasConfig: !!config
|
|
47
|
+
});
|
|
48
|
+
if (!node || !isActive || !config) {
|
|
49
|
+
console.log('[useGuidon] measure() early return - missing node, inactive, or no config');
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
44
52
|
const isTargetUsed = config.steps.some(step => step.targetId === targetId);
|
|
45
|
-
if (!isTargetUsed)
|
|
53
|
+
if (!isTargetUsed) {
|
|
54
|
+
console.log('[useGuidon] measure() - target not in config steps:', targetId);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
console.log('[useGuidon] measure() - proceeding to measure:', targetId);
|
|
46
58
|
if (Platform.OS === "web") {
|
|
47
59
|
const el = node;
|
|
48
60
|
if (!el?.getBoundingClientRect) return;
|
|
@@ -56,12 +68,14 @@ export function useGuidonRegister() {
|
|
|
56
68
|
const borderRight = parseFloat(style.borderRightWidth);
|
|
57
69
|
const borderTop = parseFloat(style.borderTopWidth);
|
|
58
70
|
const borderBottom = parseFloat(style.borderBottomWidth);
|
|
59
|
-
|
|
71
|
+
const measurements = {
|
|
60
72
|
x: rect.left + window.scrollX + borderLeft + paddingLeft,
|
|
61
73
|
y: rect.top + window.scrollY + borderTop + paddingTop,
|
|
62
74
|
width: rect.width - paddingLeft - paddingRight - borderLeft - borderRight,
|
|
63
75
|
height: rect.height - paddingTop - paddingBottom - borderTop - borderBottom
|
|
64
|
-
}
|
|
76
|
+
};
|
|
77
|
+
console.log('[useGuidon] Registering web target:', targetId, measurements);
|
|
78
|
+
registerTarget(targetId, measurements);
|
|
65
79
|
return;
|
|
66
80
|
}
|
|
67
81
|
const native = node;
|
|
@@ -92,15 +106,19 @@ export function useGuidonRegister() {
|
|
|
92
106
|
if (raf) cancelAnimationFrame(raf);
|
|
93
107
|
};
|
|
94
108
|
}, [measure, unregisterTarget]);
|
|
109
|
+
|
|
110
|
+
// Re-measure all registered targets when guide becomes active or step changes
|
|
111
|
+
// This ensures targets from all hook instances get measured
|
|
95
112
|
useEffect(() => {
|
|
96
113
|
if (!isActive || !config) return;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
114
|
+
console.log('[useGuidon] Effect triggered - measuring all targets in this instance:', Array.from(elementsRef.current.keys()));
|
|
115
|
+
|
|
116
|
+
// Measure all targets registered in this hook instance
|
|
117
|
+
elementsRef.current.forEach((node, id) => {
|
|
118
|
+
console.log('[useGuidon] Scheduling measurement for:', id);
|
|
119
|
+
requestAnimationFrame(() => {
|
|
120
|
+
measure(id, node);
|
|
121
|
+
});
|
|
104
122
|
});
|
|
105
123
|
}, [currentStepIndex, isActive, config, measure]);
|
|
106
124
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","Platform","useGuidonStore","useGuidon","register","useGuidonRegister","elementsRef","Map","rafRef","registerTarget","state","unregisterTarget","isActive","config","currentStepIndex","measure","targetId","node","isTargetUsed","steps","some","step","OS","el","getBoundingClientRect","rect","style","window","getComputedStyle","paddingLeft","parseFloat","paddingRight","paddingTop","paddingBottom","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","x","left","scrollX","y","top","scrollY","width","height","native","measureInWindow","current","set","raf","requestAnimationFrame","delete","get","cancelAnimationFrame","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","Platform","useGuidonStore","useGuidon","register","useGuidonRegister","elementsRef","Map","rafRef","registerTarget","state","unregisterTarget","isActive","config","currentStepIndex","measure","targetId","node","console","log","hasNode","hasConfig","isTargetUsed","steps","some","step","OS","el","getBoundingClientRect","rect","style","window","getComputedStyle","paddingLeft","parseFloat","paddingRight","paddingTop","paddingBottom","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","measurements","x","left","scrollX","y","top","scrollY","width","height","native","measureInWindow","current","set","raf","requestAnimationFrame","delete","get","cancelAnimationFrame","Array","from","keys","forEach","id","handler","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["hooks/useGuidonRef.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,KAAK,iBAAiB,GAAG;IACvB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,SAAS;
|
|
1
|
+
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,KAAK,iBAAiB,GAAG;IACvB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,SAAS;yBAuFV,MAAM,YACD,iBAAiB,GAAG,IAAI;EArF3C;AAED,wBAAgB,iBAAiB,eAkFlB,MAAM,YACD,iBAAiB,GAAG,IAAI,UAyD3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,KAAK,iBAAiB,GAAG;IACvB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,SAAS;
|
|
1
|
+
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,KAAK,iBAAiB,GAAG;IACvB,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,eAAe,CAAC,EAAE,CAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,SAAS;yBAuFV,MAAM,YACD,iBAAiB,GAAG,IAAI;EArF3C;AAED,wBAAgB,iBAAiB,eAkFlB,MAAM,YACD,iBAAiB,GAAG,IAAI,UAyD3C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@korsolutions/guidon",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "A cross-platform walkthrough/onboarding component library for React Native with web support. Features spotlight effects, customizable tooltips, and flexible persistence options. ",
|
|
5
5
|
"repository": "https://github.com/KorSoftwareSolutions/guidon.git",
|
|
6
6
|
"author": "Christian Jimenez <christianjimenezfael@gmail.com>",
|
|
@@ -51,13 +51,23 @@ export function useGuidonRegister() {
|
|
|
51
51
|
|
|
52
52
|
const measure = useCallback(
|
|
53
53
|
(targetId: string, node: MeasurableElement | null) => {
|
|
54
|
-
|
|
54
|
+
console.log('[useGuidon] measure() called for:', targetId, { hasNode: !!node, isActive, hasConfig: !!config });
|
|
55
|
+
|
|
56
|
+
if (!node || !isActive || !config) {
|
|
57
|
+
console.log('[useGuidon] measure() early return - missing node, inactive, or no config');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
55
60
|
|
|
56
61
|
const isTargetUsed = config.steps.some(
|
|
57
62
|
(step) => step.targetId === targetId,
|
|
58
63
|
);
|
|
59
64
|
|
|
60
|
-
if (!isTargetUsed)
|
|
65
|
+
if (!isTargetUsed) {
|
|
66
|
+
console.log('[useGuidon] measure() - target not in config steps:', targetId);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
console.log('[useGuidon] measure() - proceeding to measure:', targetId);
|
|
61
71
|
|
|
62
72
|
if (Platform.OS === "web") {
|
|
63
73
|
const el = node as unknown as HTMLElement;
|
|
@@ -77,14 +87,16 @@ export function useGuidonRegister() {
|
|
|
77
87
|
const borderTop = parseFloat(style.borderTopWidth);
|
|
78
88
|
const borderBottom = parseFloat(style.borderBottomWidth);
|
|
79
89
|
|
|
80
|
-
|
|
90
|
+
const measurements = {
|
|
81
91
|
x: rect.left + window.scrollX + borderLeft + paddingLeft,
|
|
82
92
|
y: rect.top + window.scrollY + borderTop + paddingTop,
|
|
83
93
|
width:
|
|
84
94
|
rect.width - paddingLeft - paddingRight - borderLeft - borderRight,
|
|
85
95
|
height:
|
|
86
96
|
rect.height - paddingTop - paddingBottom - borderTop - borderBottom,
|
|
87
|
-
}
|
|
97
|
+
};
|
|
98
|
+
console.log('[useGuidon] Registering web target:', targetId, measurements);
|
|
99
|
+
registerTarget(targetId, measurements);
|
|
88
100
|
|
|
89
101
|
return;
|
|
90
102
|
}
|
|
@@ -127,19 +139,20 @@ export function useGuidonRegister() {
|
|
|
127
139
|
[measure, unregisterTarget],
|
|
128
140
|
);
|
|
129
141
|
|
|
142
|
+
// Re-measure all registered targets when guide becomes active or step changes
|
|
143
|
+
// This ensures targets from all hook instances get measured
|
|
130
144
|
useEffect(() => {
|
|
131
145
|
if (!isActive || !config) return;
|
|
132
146
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const targetId = step.targetId;
|
|
137
|
-
|
|
138
|
-
const node = elementsRef.current.get(targetId);
|
|
139
|
-
if (!node) return;
|
|
147
|
+
console.log('[useGuidon] Effect triggered - measuring all targets in this instance:',
|
|
148
|
+
Array.from(elementsRef.current.keys()));
|
|
140
149
|
|
|
141
|
-
|
|
142
|
-
|
|
150
|
+
// Measure all targets registered in this hook instance
|
|
151
|
+
elementsRef.current.forEach((node, id) => {
|
|
152
|
+
console.log('[useGuidon] Scheduling measurement for:', id);
|
|
153
|
+
requestAnimationFrame(() => {
|
|
154
|
+
measure(id, node);
|
|
155
|
+
});
|
|
143
156
|
});
|
|
144
157
|
}, [currentStepIndex, isActive, config, measure]);
|
|
145
158
|
|