@korsolutions/guidon 1.0.4 → 1.0.6
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/index.js +6 -0
- package/dist/commonjs/hooks/index.js.map +1 -1
- package/dist/commonjs/hooks/useGuidonRef.js +95 -8
- package/dist/commonjs/hooks/useGuidonRef.js.map +1 -1
- package/dist/commonjs/index.js +6 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/store.js +9 -8
- package/dist/commonjs/store.js.map +1 -1
- package/dist/module/hooks/index.js +1 -1
- package/dist/module/hooks/index.js.map +1 -1
- package/dist/module/hooks/useGuidonRef.js +95 -10
- package/dist/module/hooks/useGuidonRef.js.map +1 -1
- package/dist/module/index.js +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/store.js +9 -8
- package/dist/module/store.js.map +1 -1
- package/dist/typescript/commonjs/hooks/index.d.ts +1 -1
- package/dist/typescript/commonjs/hooks/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/hooks/useGuidonRef.d.ts +5 -1
- package/dist/typescript/commonjs/hooks/useGuidonRef.d.ts.map +1 -1
- package/dist/typescript/commonjs/index.d.ts +2 -2
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/store.d.ts.map +1 -1
- package/dist/typescript/module/hooks/index.d.ts +1 -1
- package/dist/typescript/module/hooks/index.d.ts.map +1 -1
- package/dist/typescript/module/hooks/useGuidonRef.d.ts +5 -1
- package/dist/typescript/module/hooks/useGuidonRef.d.ts.map +1 -1
- package/dist/typescript/module/index.d.ts +2 -2
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/store.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/index.ts +1 -1
- package/src/hooks/useGuidonRef.ts +139 -18
- package/src/index.ts +2 -5
- package/src/store.ts +25 -18
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "useGuidon", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useGuidonRef.useGuidon;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "useGuidonRef", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_useGuidonRef","require"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_useGuidonRef","require"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.useGuidon = useGuidon;
|
|
6
7
|
exports.useGuidonRef = useGuidonRef;
|
|
8
|
+
exports.useGuidonRegister = useGuidonRegister;
|
|
7
9
|
var _react = require("react");
|
|
8
10
|
var _reactNative = require("react-native");
|
|
9
11
|
var _store = require("../store.js");
|
|
@@ -51,10 +53,10 @@ function useGuidonRef(targetId) {
|
|
|
51
53
|
const isCurrentTarget = config?.steps[currentStepIndex]?.targetId === targetId;
|
|
52
54
|
const measureElement = (0, _react.useCallback)(() => {
|
|
53
55
|
if (!ref.current || !isTargetNeeded) return;
|
|
54
|
-
if (_reactNative.Platform.OS ===
|
|
56
|
+
if (_reactNative.Platform.OS === "web") {
|
|
55
57
|
// Web measurement using getBoundingClientRect
|
|
56
58
|
const element = ref.current;
|
|
57
|
-
if (element && typeof element.getBoundingClientRect ===
|
|
59
|
+
if (element && typeof element.getBoundingClientRect === "function") {
|
|
58
60
|
const rect = element.getBoundingClientRect();
|
|
59
61
|
const measurements = {
|
|
60
62
|
x: rect.left + window.scrollX,
|
|
@@ -67,7 +69,7 @@ function useGuidonRef(targetId) {
|
|
|
67
69
|
} else {
|
|
68
70
|
// Native measurement using measureInWindow
|
|
69
71
|
const nativeRef = ref.current;
|
|
70
|
-
if (nativeRef && typeof nativeRef.measureInWindow ===
|
|
72
|
+
if (nativeRef && typeof nativeRef.measureInWindow === "function") {
|
|
71
73
|
nativeRef.measureInWindow((x, y, width, height) => {
|
|
72
74
|
if (width > 0 && height > 0) {
|
|
73
75
|
const measurements = {
|
|
@@ -109,15 +111,15 @@ function useGuidonRef(targetId) {
|
|
|
109
111
|
|
|
110
112
|
// Web: handle scroll and resize
|
|
111
113
|
(0, _react.useEffect)(() => {
|
|
112
|
-
if (_reactNative.Platform.OS !==
|
|
114
|
+
if (_reactNative.Platform.OS !== "web" || !isTargetNeeded) return;
|
|
113
115
|
const handleScrollOrResize = () => {
|
|
114
116
|
measureElement();
|
|
115
117
|
};
|
|
116
|
-
window.addEventListener(
|
|
117
|
-
window.addEventListener(
|
|
118
|
+
window.addEventListener("scroll", handleScrollOrResize, true);
|
|
119
|
+
window.addEventListener("resize", handleScrollOrResize);
|
|
118
120
|
return () => {
|
|
119
|
-
window.removeEventListener(
|
|
120
|
-
window.removeEventListener(
|
|
121
|
+
window.removeEventListener("scroll", handleScrollOrResize, true);
|
|
122
|
+
window.removeEventListener("resize", handleScrollOrResize);
|
|
121
123
|
};
|
|
122
124
|
}, [isTargetNeeded, measureElement]);
|
|
123
125
|
|
|
@@ -129,4 +131,89 @@ function useGuidonRef(targetId) {
|
|
|
129
131
|
}, [targetId, unregisterTarget]);
|
|
130
132
|
return ref;
|
|
131
133
|
}
|
|
134
|
+
function useGuidon() {
|
|
135
|
+
const register = useGuidonRegister();
|
|
136
|
+
return {
|
|
137
|
+
register
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function useGuidonRegister() {
|
|
141
|
+
const elementsRef = (0, _react.useRef)(new Map());
|
|
142
|
+
const rafRef = (0, _react.useRef)(new Map());
|
|
143
|
+
const registerTarget = (0, _store.useGuidonStore)(state => state.registerTarget);
|
|
144
|
+
const unregisterTarget = (0, _store.useGuidonStore)(state => state.unregisterTarget);
|
|
145
|
+
const isActive = (0, _store.useGuidonStore)(state => state.isActive);
|
|
146
|
+
const config = (0, _store.useGuidonStore)(state => state.config);
|
|
147
|
+
const currentStepIndex = (0, _store.useGuidonStore)(state => state.currentStepIndex);
|
|
148
|
+
const measure = (0, _react.useCallback)((targetId, node) => {
|
|
149
|
+
if (!node || !isActive || !config) return;
|
|
150
|
+
const isTargetUsed = config.steps.some(step => step.targetId === targetId);
|
|
151
|
+
if (!isTargetUsed) return;
|
|
152
|
+
if (_reactNative.Platform.OS === "web") {
|
|
153
|
+
const el = node;
|
|
154
|
+
if (!el?.getBoundingClientRect) return;
|
|
155
|
+
const rect = el.getBoundingClientRect();
|
|
156
|
+
registerTarget(targetId, {
|
|
157
|
+
x: rect.left + window.scrollX,
|
|
158
|
+
y: rect.top + window.scrollY,
|
|
159
|
+
width: rect.width,
|
|
160
|
+
height: rect.height
|
|
161
|
+
});
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const native = node;
|
|
165
|
+
native?.measureInWindow?.((x, y, width, height) => {
|
|
166
|
+
if (width > 0 && height > 0) {
|
|
167
|
+
registerTarget(targetId, {
|
|
168
|
+
x,
|
|
169
|
+
y,
|
|
170
|
+
width,
|
|
171
|
+
height
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}, [isActive, config, registerTarget]);
|
|
176
|
+
const register = (0, _react.useCallback)(targetId => {
|
|
177
|
+
return node => {
|
|
178
|
+
if (node) {
|
|
179
|
+
elementsRef.current.set(targetId, node);
|
|
180
|
+
const raf = requestAnimationFrame(() => {
|
|
181
|
+
measure(targetId, node);
|
|
182
|
+
});
|
|
183
|
+
rafRef.current.set(targetId, raf);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
elementsRef.current.delete(targetId);
|
|
187
|
+
unregisterTarget(targetId);
|
|
188
|
+
const raf = rafRef.current.get(targetId);
|
|
189
|
+
if (raf) cancelAnimationFrame(raf);
|
|
190
|
+
};
|
|
191
|
+
}, [measure, unregisterTarget]);
|
|
192
|
+
(0, _react.useEffect)(() => {
|
|
193
|
+
if (!isActive || !config) return;
|
|
194
|
+
const step = config.steps[currentStepIndex];
|
|
195
|
+
if (!step?.targetId) return;
|
|
196
|
+
const targetId = step.targetId;
|
|
197
|
+
const node = elementsRef.current.get(targetId);
|
|
198
|
+
if (!node) return;
|
|
199
|
+
requestAnimationFrame(() => {
|
|
200
|
+
measure(targetId, node);
|
|
201
|
+
});
|
|
202
|
+
}, [currentStepIndex, isActive, config, measure]);
|
|
203
|
+
(0, _react.useEffect)(() => {
|
|
204
|
+
if (_reactNative.Platform.OS !== "web" || !isActive) return;
|
|
205
|
+
const handler = () => {
|
|
206
|
+
elementsRef.current.forEach((node, id) => {
|
|
207
|
+
measure(id, node);
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
window.addEventListener("scroll", handler, true);
|
|
211
|
+
window.addEventListener("resize", handler);
|
|
212
|
+
return () => {
|
|
213
|
+
window.removeEventListener("scroll", handler, true);
|
|
214
|
+
window.removeEventListener("resize", handler);
|
|
215
|
+
};
|
|
216
|
+
}, [isActive, measure]);
|
|
217
|
+
return register;
|
|
218
|
+
}
|
|
132
219
|
//# sourceMappingURL=useGuidonRef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_store","useGuidonRef","targetId","ref","useRef","measurementFrameRef","registerTarget","useGuidonStore","state","unregisterTarget","isActive","config","currentStepIndex","isTargetNeeded","steps","some","step","isCurrentTarget","measureElement","useCallback","current","Platform","OS","element","getBoundingClientRect","rect","measurements","x","left","window","scrollX","y","top","scrollY","width","height","nativeRef","measureInWindow","useEffect","requestAnimationFrame","cancelAnimationFrame","timer","setTimeout","clearTimeout","handleScrollOrResize","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["hooks/useGuidonRef.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_store","useGuidonRef","targetId","ref","useRef","measurementFrameRef","registerTarget","useGuidonStore","state","unregisterTarget","isActive","config","currentStepIndex","isTargetNeeded","steps","some","step","isCurrentTarget","measureElement","useCallback","current","Platform","OS","element","getBoundingClientRect","rect","measurements","x","left","window","scrollX","y","top","scrollY","width","height","nativeRef","measureInWindow","useEffect","requestAnimationFrame","cancelAnimationFrame","timer","setTimeout","clearTimeout","handleScrollOrResize","addEventListener","removeEventListener","useGuidon","register","useGuidonRegister","elementsRef","Map","rafRef","measure","node","isTargetUsed","el","native","set","raf","delete","get","handler","forEach","id"],"sourceRoot":"../../../src","sources":["hooks/useGuidonRef.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/commonjs/index.js
CHANGED
|
@@ -69,6 +69,12 @@ Object.defineProperty(exports, "createNoopAdapter", {
|
|
|
69
69
|
return _adapters.createNoopAdapter;
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
|
+
Object.defineProperty(exports, "useGuidon", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _index2.useGuidon;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
72
78
|
Object.defineProperty(exports, "useGuidonActive", {
|
|
73
79
|
enumerable: true,
|
|
74
80
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_index","require","_index2","_store","_adapters","_hooks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_index","require","_index2","_store","_adapters","_hooks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,MAAA,GAAAF,OAAA;AA+BA,IAAAG,SAAA,GAAAH,OAAA;AASA,IAAAI,MAAA,GAAAJ,OAAA","ignoreList":[]}
|
package/dist/commonjs/store.js
CHANGED
|
@@ -30,15 +30,15 @@ const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get)
|
|
|
30
30
|
const {
|
|
31
31
|
config
|
|
32
32
|
} = get();
|
|
33
|
-
console.log(
|
|
33
|
+
console.log("[Guidon] start() called", {
|
|
34
34
|
hasConfig: !!config,
|
|
35
35
|
stepCount: config?.steps.length ?? 0
|
|
36
36
|
});
|
|
37
37
|
if (!config || config.steps.length === 0) {
|
|
38
|
-
console.log(
|
|
38
|
+
console.log("[Guidon] start() early return - no config or no steps");
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
console.log(
|
|
41
|
+
console.log("[Guidon] starting walkthrough with steps:", config.steps.map(s => s.id));
|
|
42
42
|
set({
|
|
43
43
|
isActive: true,
|
|
44
44
|
currentStepIndex: 0,
|
|
@@ -58,32 +58,33 @@ const useGuidonStore = exports.useGuidonStore = (0, _zustand.create)((set, get)
|
|
|
58
58
|
currentStepIndex,
|
|
59
59
|
isActive
|
|
60
60
|
} = get();
|
|
61
|
-
console.log(
|
|
61
|
+
console.log("[Guidon] next() called", {
|
|
62
62
|
hasConfig: !!config,
|
|
63
63
|
currentStepIndex,
|
|
64
64
|
isActive,
|
|
65
65
|
totalSteps: config?.steps.length ?? 0
|
|
66
66
|
});
|
|
67
67
|
if (!config || !isActive) {
|
|
68
|
-
console.log(
|
|
68
|
+
console.log("[Guidon] next() early return - config or isActive is falsy");
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
const currentStep = config.steps[currentStepIndex];
|
|
72
|
-
console.log(
|
|
72
|
+
console.log("[Guidon] current step:", currentStep?.id ?? "undefined");
|
|
73
73
|
currentStep?.onStepExit?.();
|
|
74
74
|
if (currentStepIndex < config.steps.length - 1) {
|
|
75
75
|
const nextIndex = currentStepIndex + 1;
|
|
76
76
|
const nextStep = config.steps[nextIndex];
|
|
77
|
-
console.log(
|
|
77
|
+
console.log("[Guidon] advancing to step", nextIndex, nextStep?.id ?? "undefined");
|
|
78
78
|
set({
|
|
79
79
|
currentStepIndex: nextIndex
|
|
80
80
|
});
|
|
81
81
|
nextStep?.onStepEnter?.();
|
|
82
82
|
if (nextStep) {
|
|
83
|
+
console.log("[Guidon] advancing to step", nextIndex, nextStep?.id ?? "undefined");
|
|
83
84
|
config.onStepChange?.(nextIndex, nextStep);
|
|
84
85
|
}
|
|
85
86
|
} else {
|
|
86
|
-
console.log(
|
|
87
|
+
console.log("[Guidon] last step reached, completing walkthrough");
|
|
87
88
|
// Last step completed
|
|
88
89
|
get().complete();
|
|
89
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","_shallow","initialState","config","isActive","currentStepIndex","isCompleted","targetMeasurements","isLoading","error","waitingForTarget","waitingTargetId","useGuidonStore","exports","create","set","get","configure","start","console","log","hasConfig","stepCount","steps","length","map","s","id","firstStep","onStepEnter","onStepChange","next","totalSteps","currentStep","onStepExit","nextIndex","nextStep","complete","previous","prevIndex","prevStep","goToStep","index","targetStep","skip","onSkip","onComplete","reset","registerTarget","targetId","measurements","state","unregisterTarget","_","rest","setLoading","setError","Guidon","getState","getCurrentStepIndex","getCurrentStep","getSteps","subscribe","useGuidonActive","useGuidonStep","useGuidonProgress","useShallow","percentage","useTargetMeasurements","useWaitingState","hasMeasurements","isWaiting","message","waitingMessage","useIsFloatingStep"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_zustand","require","_shallow","initialState","config","isActive","currentStepIndex","isCompleted","targetMeasurements","isLoading","error","waitingForTarget","waitingTargetId","useGuidonStore","exports","create","set","get","configure","start","console","log","hasConfig","stepCount","steps","length","map","s","id","firstStep","onStepEnter","onStepChange","next","totalSteps","currentStep","onStepExit","nextIndex","nextStep","complete","previous","prevIndex","prevStep","goToStep","index","targetStep","skip","onSkip","onComplete","reset","registerTarget","targetId","measurements","state","unregisterTarget","_","rest","setLoading","setError","Guidon","getState","getCurrentStepIndex","getCurrentStep","getSteps","subscribe","useGuidonActive","useGuidonStep","useGuidonProgress","useShallow","percentage","useTargetMeasurements","useWaitingState","hasMeasurements","isWaiting","message","waitingMessage","useIsFloatingStep"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useGuidonRef"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,mBAAgB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useGuidonRef","useGuidon"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,SAAS,QAAQ,mBAAgB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useCallback, useEffect, useRef } from
|
|
4
|
-
import { Platform } from
|
|
3
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
4
|
+
import { Platform } from "react-native";
|
|
5
5
|
import { useGuidonStore } from "../store.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -48,10 +48,10 @@ export function useGuidonRef(targetId) {
|
|
|
48
48
|
const isCurrentTarget = config?.steps[currentStepIndex]?.targetId === targetId;
|
|
49
49
|
const measureElement = useCallback(() => {
|
|
50
50
|
if (!ref.current || !isTargetNeeded) return;
|
|
51
|
-
if (Platform.OS ===
|
|
51
|
+
if (Platform.OS === "web") {
|
|
52
52
|
// Web measurement using getBoundingClientRect
|
|
53
53
|
const element = ref.current;
|
|
54
|
-
if (element && typeof element.getBoundingClientRect ===
|
|
54
|
+
if (element && typeof element.getBoundingClientRect === "function") {
|
|
55
55
|
const rect = element.getBoundingClientRect();
|
|
56
56
|
const measurements = {
|
|
57
57
|
x: rect.left + window.scrollX,
|
|
@@ -64,7 +64,7 @@ export function useGuidonRef(targetId) {
|
|
|
64
64
|
} else {
|
|
65
65
|
// Native measurement using measureInWindow
|
|
66
66
|
const nativeRef = ref.current;
|
|
67
|
-
if (nativeRef && typeof nativeRef.measureInWindow ===
|
|
67
|
+
if (nativeRef && typeof nativeRef.measureInWindow === "function") {
|
|
68
68
|
nativeRef.measureInWindow((x, y, width, height) => {
|
|
69
69
|
if (width > 0 && height > 0) {
|
|
70
70
|
const measurements = {
|
|
@@ -106,15 +106,15 @@ export function useGuidonRef(targetId) {
|
|
|
106
106
|
|
|
107
107
|
// Web: handle scroll and resize
|
|
108
108
|
useEffect(() => {
|
|
109
|
-
if (Platform.OS !==
|
|
109
|
+
if (Platform.OS !== "web" || !isTargetNeeded) return;
|
|
110
110
|
const handleScrollOrResize = () => {
|
|
111
111
|
measureElement();
|
|
112
112
|
};
|
|
113
|
-
window.addEventListener(
|
|
114
|
-
window.addEventListener(
|
|
113
|
+
window.addEventListener("scroll", handleScrollOrResize, true);
|
|
114
|
+
window.addEventListener("resize", handleScrollOrResize);
|
|
115
115
|
return () => {
|
|
116
|
-
window.removeEventListener(
|
|
117
|
-
window.removeEventListener(
|
|
116
|
+
window.removeEventListener("scroll", handleScrollOrResize, true);
|
|
117
|
+
window.removeEventListener("resize", handleScrollOrResize);
|
|
118
118
|
};
|
|
119
119
|
}, [isTargetNeeded, measureElement]);
|
|
120
120
|
|
|
@@ -126,4 +126,89 @@ export function useGuidonRef(targetId) {
|
|
|
126
126
|
}, [targetId, unregisterTarget]);
|
|
127
127
|
return ref;
|
|
128
128
|
}
|
|
129
|
+
export function useGuidon() {
|
|
130
|
+
const register = useGuidonRegister();
|
|
131
|
+
return {
|
|
132
|
+
register
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function useGuidonRegister() {
|
|
136
|
+
const elementsRef = useRef(new Map());
|
|
137
|
+
const rafRef = useRef(new Map());
|
|
138
|
+
const registerTarget = useGuidonStore(state => state.registerTarget);
|
|
139
|
+
const unregisterTarget = useGuidonStore(state => state.unregisterTarget);
|
|
140
|
+
const isActive = useGuidonStore(state => state.isActive);
|
|
141
|
+
const config = useGuidonStore(state => state.config);
|
|
142
|
+
const currentStepIndex = useGuidonStore(state => state.currentStepIndex);
|
|
143
|
+
const measure = useCallback((targetId, node) => {
|
|
144
|
+
if (!node || !isActive || !config) return;
|
|
145
|
+
const isTargetUsed = config.steps.some(step => step.targetId === targetId);
|
|
146
|
+
if (!isTargetUsed) return;
|
|
147
|
+
if (Platform.OS === "web") {
|
|
148
|
+
const el = node;
|
|
149
|
+
if (!el?.getBoundingClientRect) return;
|
|
150
|
+
const rect = el.getBoundingClientRect();
|
|
151
|
+
registerTarget(targetId, {
|
|
152
|
+
x: rect.left + window.scrollX,
|
|
153
|
+
y: rect.top + window.scrollY,
|
|
154
|
+
width: rect.width,
|
|
155
|
+
height: rect.height
|
|
156
|
+
});
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const native = node;
|
|
160
|
+
native?.measureInWindow?.((x, y, width, height) => {
|
|
161
|
+
if (width > 0 && height > 0) {
|
|
162
|
+
registerTarget(targetId, {
|
|
163
|
+
x,
|
|
164
|
+
y,
|
|
165
|
+
width,
|
|
166
|
+
height
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}, [isActive, config, registerTarget]);
|
|
171
|
+
const register = useCallback(targetId => {
|
|
172
|
+
return node => {
|
|
173
|
+
if (node) {
|
|
174
|
+
elementsRef.current.set(targetId, node);
|
|
175
|
+
const raf = requestAnimationFrame(() => {
|
|
176
|
+
measure(targetId, node);
|
|
177
|
+
});
|
|
178
|
+
rafRef.current.set(targetId, raf);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
elementsRef.current.delete(targetId);
|
|
182
|
+
unregisterTarget(targetId);
|
|
183
|
+
const raf = rafRef.current.get(targetId);
|
|
184
|
+
if (raf) cancelAnimationFrame(raf);
|
|
185
|
+
};
|
|
186
|
+
}, [measure, unregisterTarget]);
|
|
187
|
+
useEffect(() => {
|
|
188
|
+
if (!isActive || !config) return;
|
|
189
|
+
const step = config.steps[currentStepIndex];
|
|
190
|
+
if (!step?.targetId) return;
|
|
191
|
+
const targetId = step.targetId;
|
|
192
|
+
const node = elementsRef.current.get(targetId);
|
|
193
|
+
if (!node) return;
|
|
194
|
+
requestAnimationFrame(() => {
|
|
195
|
+
measure(targetId, node);
|
|
196
|
+
});
|
|
197
|
+
}, [currentStepIndex, isActive, config, measure]);
|
|
198
|
+
useEffect(() => {
|
|
199
|
+
if (Platform.OS !== "web" || !isActive) return;
|
|
200
|
+
const handler = () => {
|
|
201
|
+
elementsRef.current.forEach((node, id) => {
|
|
202
|
+
measure(id, node);
|
|
203
|
+
});
|
|
204
|
+
};
|
|
205
|
+
window.addEventListener("scroll", handler, true);
|
|
206
|
+
window.addEventListener("resize", handler);
|
|
207
|
+
return () => {
|
|
208
|
+
window.removeEventListener("scroll", handler, true);
|
|
209
|
+
window.removeEventListener("resize", handler);
|
|
210
|
+
};
|
|
211
|
+
}, [isActive, measure]);
|
|
212
|
+
return register;
|
|
213
|
+
}
|
|
129
214
|
//# sourceMappingURL=useGuidonRef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","Platform","useGuidonStore","useGuidonRef","targetId","ref","measurementFrameRef","registerTarget","state","unregisterTarget","isActive","config","currentStepIndex","isTargetNeeded","steps","some","step","isCurrentTarget","measureElement","current","OS","element","getBoundingClientRect","rect","measurements","x","left","window","scrollX","y","top","scrollY","width","height","nativeRef","measureInWindow","requestAnimationFrame","cancelAnimationFrame","timer","setTimeout","clearTimeout","handleScrollOrResize","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["hooks/useGuidonRef.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","Platform","useGuidonStore","useGuidonRef","targetId","ref","measurementFrameRef","registerTarget","state","unregisterTarget","isActive","config","currentStepIndex","isTargetNeeded","steps","some","step","isCurrentTarget","measureElement","current","OS","element","getBoundingClientRect","rect","measurements","x","left","window","scrollX","y","top","scrollY","width","height","nativeRef","measureInWindow","requestAnimationFrame","cancelAnimationFrame","timer","setTimeout","clearTimeout","handleScrollOrResize","addEventListener","removeEventListener","useGuidon","register","useGuidonRegister","elementsRef","Map","rafRef","measure","node","isTargetUsed","el","native","set","raf","delete","get","handler","forEach","id"],"sourceRoot":"../../../src","sources":["hooks/useGuidonRef.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export { GuidonTarget, GuidonOverlay, GuidonTooltip, GuidonProvider, useGuidonContext } from "./components/index.js";
|
|
5
5
|
|
|
6
6
|
// Hooks
|
|
7
|
-
export { useGuidonRef } from "./hooks/index.js";
|
|
7
|
+
export { useGuidonRef, useGuidon } from "./hooks/index.js";
|
|
8
8
|
|
|
9
9
|
// Store and API
|
|
10
10
|
export { useGuidonStore, Guidon, useGuidonActive, useGuidonStep, useGuidonProgress, useTargetMeasurements, useWaitingState, useIsFloatingStep } from "./store.js";
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GuidonTarget","GuidonOverlay","GuidonTooltip","GuidonProvider","useGuidonContext","useGuidonRef","useGuidonStore","Guidon","useGuidonActive","useGuidonStep","useGuidonProgress","useTargetMeasurements","useWaitingState","useIsFloatingStep","createNoopAdapter","createMemoryAdapter","createLocalStorageAdapter","createAsyncStorageAdapter","createApiAdapter","createCompositeAdapter","useGuidonPersistence","useShouldShowGuidon"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SACEA,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,gBAAgB,QACX,uBAAc;;AAErB;AACA,SAASC,YAAY,QAAQ,kBAAS;;
|
|
1
|
+
{"version":3,"names":["GuidonTarget","GuidonOverlay","GuidonTooltip","GuidonProvider","useGuidonContext","useGuidonRef","useGuidon","useGuidonStore","Guidon","useGuidonActive","useGuidonStep","useGuidonProgress","useTargetMeasurements","useWaitingState","useIsFloatingStep","createNoopAdapter","createMemoryAdapter","createLocalStorageAdapter","createAsyncStorageAdapter","createApiAdapter","createCompositeAdapter","useGuidonPersistence","useShouldShowGuidon"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SACEA,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,gBAAgB,QACX,uBAAc;;AAErB;AACA,SAASC,YAAY,EAAEC,SAAS,QAAQ,kBAAS;;AAEjD;AACA,SACEC,cAAc,EACdC,MAAM,EACNC,eAAe,EACfC,aAAa,EACbC,iBAAiB,EACjBC,qBAAqB,EACrBC,eAAe,EACfC,iBAAiB,QACZ,YAAS;;AAEhB;;AAmBA;AACA,SACEC,iBAAiB,EACjBC,mBAAmB,EACnBC,yBAAyB,EACzBC,yBAAyB,EACzBC,gBAAgB,EAChBC,sBAAsB,QACjB,2BAAwB;AAE/B,SAASC,oBAAoB,EAAEC,mBAAmB,QAAQ,wBAAqB","ignoreList":[]}
|
package/dist/module/store.js
CHANGED
|
@@ -26,15 +26,15 @@ export const useGuidonStore = create((set, get) => ({
|
|
|
26
26
|
const {
|
|
27
27
|
config
|
|
28
28
|
} = get();
|
|
29
|
-
console.log(
|
|
29
|
+
console.log("[Guidon] start() called", {
|
|
30
30
|
hasConfig: !!config,
|
|
31
31
|
stepCount: config?.steps.length ?? 0
|
|
32
32
|
});
|
|
33
33
|
if (!config || config.steps.length === 0) {
|
|
34
|
-
console.log(
|
|
34
|
+
console.log("[Guidon] start() early return - no config or no steps");
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
|
-
console.log(
|
|
37
|
+
console.log("[Guidon] starting walkthrough with steps:", config.steps.map(s => s.id));
|
|
38
38
|
set({
|
|
39
39
|
isActive: true,
|
|
40
40
|
currentStepIndex: 0,
|
|
@@ -54,32 +54,33 @@ export const useGuidonStore = create((set, get) => ({
|
|
|
54
54
|
currentStepIndex,
|
|
55
55
|
isActive
|
|
56
56
|
} = get();
|
|
57
|
-
console.log(
|
|
57
|
+
console.log("[Guidon] next() called", {
|
|
58
58
|
hasConfig: !!config,
|
|
59
59
|
currentStepIndex,
|
|
60
60
|
isActive,
|
|
61
61
|
totalSteps: config?.steps.length ?? 0
|
|
62
62
|
});
|
|
63
63
|
if (!config || !isActive) {
|
|
64
|
-
console.log(
|
|
64
|
+
console.log("[Guidon] next() early return - config or isActive is falsy");
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
const currentStep = config.steps[currentStepIndex];
|
|
68
|
-
console.log(
|
|
68
|
+
console.log("[Guidon] current step:", currentStep?.id ?? "undefined");
|
|
69
69
|
currentStep?.onStepExit?.();
|
|
70
70
|
if (currentStepIndex < config.steps.length - 1) {
|
|
71
71
|
const nextIndex = currentStepIndex + 1;
|
|
72
72
|
const nextStep = config.steps[nextIndex];
|
|
73
|
-
console.log(
|
|
73
|
+
console.log("[Guidon] advancing to step", nextIndex, nextStep?.id ?? "undefined");
|
|
74
74
|
set({
|
|
75
75
|
currentStepIndex: nextIndex
|
|
76
76
|
});
|
|
77
77
|
nextStep?.onStepEnter?.();
|
|
78
78
|
if (nextStep) {
|
|
79
|
+
console.log("[Guidon] advancing to step", nextIndex, nextStep?.id ?? "undefined");
|
|
79
80
|
config.onStepChange?.(nextIndex, nextStep);
|
|
80
81
|
}
|
|
81
82
|
} else {
|
|
82
|
-
console.log(
|
|
83
|
+
console.log("[Guidon] last step reached, completing walkthrough");
|
|
83
84
|
// Last step completed
|
|
84
85
|
get().complete();
|
|
85
86
|
}
|
package/dist/module/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","useShallow","initialState","config","isActive","currentStepIndex","isCompleted","targetMeasurements","isLoading","error","waitingForTarget","waitingTargetId","useGuidonStore","set","get","configure","start","console","log","hasConfig","stepCount","steps","length","map","s","id","firstStep","onStepEnter","onStepChange","next","totalSteps","currentStep","onStepExit","nextIndex","nextStep","complete","previous","prevIndex","prevStep","goToStep","index","targetStep","skip","onSkip","onComplete","reset","registerTarget","targetId","measurements","state","unregisterTarget","_","rest","setLoading","setError","Guidon","getState","getCurrentStepIndex","getCurrentStep","getSteps","subscribe","useGuidonActive","useGuidonStep","useGuidonProgress","percentage","useTargetMeasurements","useWaitingState","hasMeasurements","isWaiting","message","waitingMessage","useIsFloatingStep"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAChC,SAASC,UAAU,QAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"names":["create","useShallow","initialState","config","isActive","currentStepIndex","isCompleted","targetMeasurements","isLoading","error","waitingForTarget","waitingTargetId","useGuidonStore","set","get","configure","start","console","log","hasConfig","stepCount","steps","length","map","s","id","firstStep","onStepEnter","onStepChange","next","totalSteps","currentStep","onStepExit","nextIndex","nextStep","complete","previous","prevIndex","prevStep","goToStep","index","targetStep","skip","onSkip","onComplete","reset","registerTarget","targetId","measurements","state","unregisterTarget","_","rest","setLoading","setError","Guidon","getState","getCurrentStepIndex","getCurrentStep","getSteps","subscribe","useGuidonActive","useGuidonStep","useGuidonProgress","percentage","useTargetMeasurements","useWaitingState","hasMeasurements","isWaiting","message","waitingMessage","useIsFloatingStep"],"sourceRoot":"../../src","sources":["store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { useGuidonRef } from
|
|
1
|
+
export { useGuidonRef, useGuidon } from "./useGuidonRef";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RefObject } from
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
2
|
/**
|
|
3
3
|
* Element type that can be measured
|
|
4
4
|
* Supports both web elements and React Native Views
|
|
@@ -31,5 +31,9 @@ type MeasurableElement = {
|
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
33
|
export declare function useGuidonRef<T extends MeasurableElement>(targetId: string): RefObject<T | null>;
|
|
34
|
+
export declare function useGuidon(): {
|
|
35
|
+
register: (targetId: string) => (node: MeasurableElement | null) => void;
|
|
36
|
+
};
|
|
37
|
+
export declare function useGuidonRegister(): (targetId: string) => (node: MeasurableElement | null) => void;
|
|
34
38
|
export {};
|
|
35
39
|
//# sourceMappingURL=useGuidonRef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvE;;;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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EACtD,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAgHrB"}
|
|
1
|
+
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvE;;;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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EACtD,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAgHrB;AAED,wBAAgB,SAAS;yBA8DV,MAAM,YACD,iBAAiB,GAAG,IAAI;EA5D3C;AAED,wBAAgB,iBAAiB,eAyDlB,MAAM,YACD,iBAAiB,GAAG,IAAI,UAwD3C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { GuidonTarget, GuidonOverlay, GuidonTooltip, GuidonProvider, useGuidonContext, } from "./components";
|
|
2
|
-
export { useGuidonRef } from "./hooks";
|
|
2
|
+
export { useGuidonRef, useGuidon } from "./hooks";
|
|
3
3
|
export { useGuidonStore, Guidon, useGuidonActive, useGuidonStep, useGuidonProgress, useTargetMeasurements, useWaitingState, useIsFloatingStep, } from "./store";
|
|
4
4
|
export type { GuidonStep, GuidonConfig, GuidonTheme, GuidonProgress, GuidonPersistenceAdapter, GuidonProviderProps, GuidonTargetProps, GuidonTooltipLabels, GuidonTooltipRenderProps, TooltipPosition, FloatingPosition, TargetMeasurements, GuidonState, GuidonActions, GuidonStore, } from "./types";
|
|
5
5
|
export { createNoopAdapter, createMemoryAdapter, createLocalStorageAdapter, createAsyncStorageAdapter, createApiAdapter, createCompositeAdapter, } from "./persistence/adapters";
|
|
6
|
-
export { useGuidonPersistence, useShouldShowGuidon
|
|
6
|
+
export { useGuidonPersistence, useShouldShowGuidon } from "./persistence/hooks";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EACL,cAAc,EACd,MAAM,EACN,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAc7E,eAAO,MAAM,cAAc,0EA0KxB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;wBACiB,YAAY;IAIhC;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;sBACe,MAAM;IAIxB;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAMH;;OAEG;;IAKH;;OAEG;;CAEJ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,eAC4B,CAAC;AAEzD,eAAO,MAAM,aAAa,2CAItB,CAAC;AAEL,eAAO,MAAM,iBAAiB;;;;CAS3B,CAAC;AAEJ,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,uBACsB,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;QAmBzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAI1B,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { useGuidonRef } from
|
|
1
|
+
export { useGuidonRef, useGuidon } from "./useGuidonRef";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RefObject } from
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
2
|
/**
|
|
3
3
|
* Element type that can be measured
|
|
4
4
|
* Supports both web elements and React Native Views
|
|
@@ -31,5 +31,9 @@ type MeasurableElement = {
|
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
33
|
export declare function useGuidonRef<T extends MeasurableElement>(targetId: string): RefObject<T | null>;
|
|
34
|
+
export declare function useGuidon(): {
|
|
35
|
+
register: (targetId: string) => (node: MeasurableElement | null) => void;
|
|
36
|
+
};
|
|
37
|
+
export declare function useGuidonRegister(): (targetId: string) => (node: MeasurableElement | null) => void;
|
|
34
38
|
export {};
|
|
35
39
|
//# sourceMappingURL=useGuidonRef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvE;;;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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EACtD,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAgHrB"}
|
|
1
|
+
{"version":3,"file":"useGuidonRef.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGuidonRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvE;;;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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EACtD,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAgHrB;AAED,wBAAgB,SAAS;yBA8DV,MAAM,YACD,iBAAiB,GAAG,IAAI;EA5D3C;AAED,wBAAgB,iBAAiB,eAyDlB,MAAM,YACD,iBAAiB,GAAG,IAAI,UAwD3C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { GuidonTarget, GuidonOverlay, GuidonTooltip, GuidonProvider, useGuidonContext, } from "./components";
|
|
2
|
-
export { useGuidonRef } from "./hooks";
|
|
2
|
+
export { useGuidonRef, useGuidon } from "./hooks";
|
|
3
3
|
export { useGuidonStore, Guidon, useGuidonActive, useGuidonStep, useGuidonProgress, useTargetMeasurements, useWaitingState, useIsFloatingStep, } from "./store";
|
|
4
4
|
export type { GuidonStep, GuidonConfig, GuidonTheme, GuidonProgress, GuidonPersistenceAdapter, GuidonProviderProps, GuidonTargetProps, GuidonTooltipLabels, GuidonTooltipRenderProps, TooltipPosition, FloatingPosition, TargetMeasurements, GuidonState, GuidonActions, GuidonStore, } from "./types";
|
|
5
5
|
export { createNoopAdapter, createMemoryAdapter, createLocalStorageAdapter, createAsyncStorageAdapter, createApiAdapter, createCompositeAdapter, } from "./persistence/adapters";
|
|
6
|
-
export { useGuidonPersistence, useShouldShowGuidon
|
|
6
|
+
export { useGuidonPersistence, useShouldShowGuidon } from "./persistence/hooks";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EACL,cAAc,EACd,MAAM,EACN,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAc7E,eAAO,MAAM,cAAc,0EA0KxB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;wBACiB,YAAY;IAIhC;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;sBACe,MAAM;IAIxB;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAKH;;OAEG;;IAMH;;OAEG;;IAKH;;OAEG;;CAEJ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,eAC4B,CAAC;AAEzD,eAAO,MAAM,aAAa,2CAItB,CAAC;AAEL,eAAO,MAAM,iBAAiB;;;;CAS3B,CAAC;AAEJ,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,uBACsB,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;QAmBzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAI1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@korsolutions/guidon",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
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>",
|
package/src/hooks/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { useGuidonRef } from
|
|
1
|
+
export { useGuidonRef, useGuidon } from "./useGuidonRef";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useCallback, useEffect, useRef, type RefObject } from
|
|
2
|
-
import { Platform } from
|
|
3
|
-
import { useGuidonStore } from
|
|
4
|
-
import type { TargetMeasurements, GuidonStore, GuidonStep } from
|
|
1
|
+
import { useCallback, useEffect, useRef, type RefObject } from "react";
|
|
2
|
+
import { Platform } from "react-native";
|
|
3
|
+
import { useGuidonStore } from "../store";
|
|
4
|
+
import type { TargetMeasurements, GuidonStore, GuidonStep } from "../types";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Element type that can be measured
|
|
@@ -10,7 +10,7 @@ import type { TargetMeasurements, GuidonStore, GuidonStep } from '../types';
|
|
|
10
10
|
type MeasurableElement = {
|
|
11
11
|
getBoundingClientRect?: () => DOMRect;
|
|
12
12
|
measureInWindow?: (
|
|
13
|
-
callback: (x: number, y: number, width: number, height: number) => void
|
|
13
|
+
callback: (x: number, y: number, width: number, height: number) => void,
|
|
14
14
|
) => void;
|
|
15
15
|
};
|
|
16
16
|
|
|
@@ -38,21 +38,21 @@ type MeasurableElement = {
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
export function useGuidonRef<T extends MeasurableElement>(
|
|
41
|
-
targetId: string
|
|
41
|
+
targetId: string,
|
|
42
42
|
): RefObject<T | null> {
|
|
43
43
|
const ref = useRef<T>(null);
|
|
44
44
|
const measurementFrameRef = useRef<number | null>(null);
|
|
45
45
|
|
|
46
46
|
const registerTarget = useGuidonStore(
|
|
47
|
-
(state: GuidonStore) => state.registerTarget
|
|
47
|
+
(state: GuidonStore) => state.registerTarget,
|
|
48
48
|
);
|
|
49
49
|
const unregisterTarget = useGuidonStore(
|
|
50
|
-
(state: GuidonStore) => state.unregisterTarget
|
|
50
|
+
(state: GuidonStore) => state.unregisterTarget,
|
|
51
51
|
);
|
|
52
52
|
const isActive = useGuidonStore((state: GuidonStore) => state.isActive);
|
|
53
53
|
const config = useGuidonStore((state: GuidonStore) => state.config);
|
|
54
54
|
const currentStepIndex = useGuidonStore(
|
|
55
|
-
(state: GuidonStore) => state.currentStepIndex
|
|
55
|
+
(state: GuidonStore) => state.currentStepIndex,
|
|
56
56
|
);
|
|
57
57
|
|
|
58
58
|
// Check if this target is needed anywhere in the walkthrough
|
|
@@ -67,10 +67,10 @@ export function useGuidonRef<T extends MeasurableElement>(
|
|
|
67
67
|
const measureElement = useCallback(() => {
|
|
68
68
|
if (!ref.current || !isTargetNeeded) return;
|
|
69
69
|
|
|
70
|
-
if (Platform.OS ===
|
|
70
|
+
if (Platform.OS === "web") {
|
|
71
71
|
// Web measurement using getBoundingClientRect
|
|
72
72
|
const element = ref.current as unknown as HTMLElement;
|
|
73
|
-
if (element && typeof element.getBoundingClientRect ===
|
|
73
|
+
if (element && typeof element.getBoundingClientRect === "function") {
|
|
74
74
|
const rect = element.getBoundingClientRect();
|
|
75
75
|
const measurements: TargetMeasurements = {
|
|
76
76
|
x: rect.left + window.scrollX,
|
|
@@ -84,11 +84,11 @@ export function useGuidonRef<T extends MeasurableElement>(
|
|
|
84
84
|
// Native measurement using measureInWindow
|
|
85
85
|
const nativeRef = ref.current as unknown as {
|
|
86
86
|
measureInWindow: (
|
|
87
|
-
cb: (x: number, y: number, w: number, h: number) => void
|
|
87
|
+
cb: (x: number, y: number, w: number, h: number) => void,
|
|
88
88
|
) => void;
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
-
if (nativeRef && typeof nativeRef.measureInWindow ===
|
|
91
|
+
if (nativeRef && typeof nativeRef.measureInWindow === "function") {
|
|
92
92
|
nativeRef.measureInWindow((x, y, width, height) => {
|
|
93
93
|
if (width > 0 && height > 0) {
|
|
94
94
|
const measurements: TargetMeasurements = { x, y, width, height };
|
|
@@ -128,18 +128,18 @@ export function useGuidonRef<T extends MeasurableElement>(
|
|
|
128
128
|
|
|
129
129
|
// Web: handle scroll and resize
|
|
130
130
|
useEffect(() => {
|
|
131
|
-
if (Platform.OS !==
|
|
131
|
+
if (Platform.OS !== "web" || !isTargetNeeded) return;
|
|
132
132
|
|
|
133
133
|
const handleScrollOrResize = () => {
|
|
134
134
|
measureElement();
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
window.addEventListener(
|
|
138
|
-
window.addEventListener(
|
|
137
|
+
window.addEventListener("scroll", handleScrollOrResize, true);
|
|
138
|
+
window.addEventListener("resize", handleScrollOrResize);
|
|
139
139
|
|
|
140
140
|
return () => {
|
|
141
|
-
window.removeEventListener(
|
|
142
|
-
window.removeEventListener(
|
|
141
|
+
window.removeEventListener("scroll", handleScrollOrResize, true);
|
|
142
|
+
window.removeEventListener("resize", handleScrollOrResize);
|
|
143
143
|
};
|
|
144
144
|
}, [isTargetNeeded, measureElement]);
|
|
145
145
|
|
|
@@ -152,3 +152,124 @@ export function useGuidonRef<T extends MeasurableElement>(
|
|
|
152
152
|
|
|
153
153
|
return ref;
|
|
154
154
|
}
|
|
155
|
+
|
|
156
|
+
export function useGuidon() {
|
|
157
|
+
const register = useGuidonRegister();
|
|
158
|
+
return { register };
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export function useGuidonRegister() {
|
|
162
|
+
const elementsRef = useRef<Map<string, MeasurableElement>>(new Map());
|
|
163
|
+
const rafRef = useRef<Map<string, number>>(new Map());
|
|
164
|
+
|
|
165
|
+
const registerTarget = useGuidonStore(
|
|
166
|
+
(state: GuidonStore) => state.registerTarget,
|
|
167
|
+
);
|
|
168
|
+
const unregisterTarget = useGuidonStore(
|
|
169
|
+
(state: GuidonStore) => state.unregisterTarget,
|
|
170
|
+
);
|
|
171
|
+
const isActive = useGuidonStore((state) => state.isActive);
|
|
172
|
+
const config = useGuidonStore((state) => state.config);
|
|
173
|
+
const currentStepIndex = useGuidonStore((state) => state.currentStepIndex);
|
|
174
|
+
|
|
175
|
+
const measure = useCallback(
|
|
176
|
+
(targetId: string, node: MeasurableElement | null) => {
|
|
177
|
+
if (!node || !isActive || !config) return;
|
|
178
|
+
|
|
179
|
+
const isTargetUsed = config.steps.some(
|
|
180
|
+
(step) => step.targetId === targetId,
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
if (!isTargetUsed) return;
|
|
184
|
+
|
|
185
|
+
if (Platform.OS === "web") {
|
|
186
|
+
const el = node as unknown as HTMLElement;
|
|
187
|
+
|
|
188
|
+
if (!el?.getBoundingClientRect) return;
|
|
189
|
+
|
|
190
|
+
const rect = el.getBoundingClientRect();
|
|
191
|
+
|
|
192
|
+
registerTarget(targetId, {
|
|
193
|
+
x: rect.left + window.scrollX,
|
|
194
|
+
y: rect.top + window.scrollY,
|
|
195
|
+
width: rect.width,
|
|
196
|
+
height: rect.height,
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const native = node as unknown as {
|
|
203
|
+
measureInWindow?: (
|
|
204
|
+
cb: (x: number, y: number, w: number, h: number) => void,
|
|
205
|
+
) => void;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
native?.measureInWindow?.((x, y, width, height) => {
|
|
209
|
+
if (width > 0 && height > 0) {
|
|
210
|
+
registerTarget(targetId, { x, y, width, height });
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
},
|
|
214
|
+
[isActive, config, registerTarget],
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
const register = useCallback(
|
|
218
|
+
(targetId: string) => {
|
|
219
|
+
return (node: MeasurableElement | null) => {
|
|
220
|
+
if (node) {
|
|
221
|
+
elementsRef.current.set(targetId, node);
|
|
222
|
+
|
|
223
|
+
const raf = requestAnimationFrame(() => {
|
|
224
|
+
measure(targetId, node);
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
rafRef.current.set(targetId, raf);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
elementsRef.current.delete(targetId);
|
|
231
|
+
unregisterTarget(targetId);
|
|
232
|
+
|
|
233
|
+
const raf = rafRef.current.get(targetId);
|
|
234
|
+
if (raf) cancelAnimationFrame(raf);
|
|
235
|
+
};
|
|
236
|
+
},
|
|
237
|
+
[measure, unregisterTarget],
|
|
238
|
+
);
|
|
239
|
+
|
|
240
|
+
useEffect(() => {
|
|
241
|
+
if (!isActive || !config) return;
|
|
242
|
+
|
|
243
|
+
const step = config.steps[currentStepIndex];
|
|
244
|
+
if (!step?.targetId) return;
|
|
245
|
+
|
|
246
|
+
const targetId = step.targetId;
|
|
247
|
+
|
|
248
|
+
const node = elementsRef.current.get(targetId);
|
|
249
|
+
if (!node) return;
|
|
250
|
+
|
|
251
|
+
requestAnimationFrame(() => {
|
|
252
|
+
measure(targetId, node);
|
|
253
|
+
});
|
|
254
|
+
}, [currentStepIndex, isActive, config, measure]);
|
|
255
|
+
|
|
256
|
+
useEffect(() => {
|
|
257
|
+
if (Platform.OS !== "web" || !isActive) return;
|
|
258
|
+
|
|
259
|
+
const handler = () => {
|
|
260
|
+
elementsRef.current.forEach((node, id) => {
|
|
261
|
+
measure(id, node);
|
|
262
|
+
});
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
window.addEventListener("scroll", handler, true);
|
|
266
|
+
window.addEventListener("resize", handler);
|
|
267
|
+
|
|
268
|
+
return () => {
|
|
269
|
+
window.removeEventListener("scroll", handler, true);
|
|
270
|
+
window.removeEventListener("resize", handler);
|
|
271
|
+
};
|
|
272
|
+
}, [isActive, measure]);
|
|
273
|
+
|
|
274
|
+
return register;
|
|
275
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -8,7 +8,7 @@ export {
|
|
|
8
8
|
} from "./components";
|
|
9
9
|
|
|
10
10
|
// Hooks
|
|
11
|
-
export { useGuidonRef } from "./hooks";
|
|
11
|
+
export { useGuidonRef, useGuidon } from "./hooks";
|
|
12
12
|
|
|
13
13
|
// Store and API
|
|
14
14
|
export {
|
|
@@ -51,7 +51,4 @@ export {
|
|
|
51
51
|
createCompositeAdapter,
|
|
52
52
|
} from "./persistence/adapters";
|
|
53
53
|
|
|
54
|
-
export {
|
|
55
|
-
useGuidonPersistence,
|
|
56
|
-
useShouldShowGuidon,
|
|
57
|
-
} from "./persistence/hooks";
|
|
54
|
+
export { useGuidonPersistence, useShouldShowGuidon } from "./persistence/hooks";
|
package/src/store.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { create } from "zustand";
|
|
2
2
|
import { useShallow } from "zustand/react/shallow";
|
|
3
|
-
import type {
|
|
4
|
-
GuidonConfig,
|
|
5
|
-
GuidonStore,
|
|
6
|
-
TargetMeasurements,
|
|
7
|
-
} from "./types";
|
|
3
|
+
import type { GuidonConfig, GuidonStore, TargetMeasurements } from "./types";
|
|
8
4
|
|
|
9
5
|
const initialState = {
|
|
10
6
|
config: null,
|
|
@@ -27,17 +23,20 @@ export const useGuidonStore = create<GuidonStore>((set, get) => ({
|
|
|
27
23
|
|
|
28
24
|
start: () => {
|
|
29
25
|
const { config } = get();
|
|
30
|
-
console.log(
|
|
26
|
+
console.log("[Guidon] start() called", {
|
|
31
27
|
hasConfig: !!config,
|
|
32
28
|
stepCount: config?.steps.length ?? 0,
|
|
33
29
|
});
|
|
34
30
|
|
|
35
31
|
if (!config || config.steps.length === 0) {
|
|
36
|
-
console.log(
|
|
32
|
+
console.log("[Guidon] start() early return - no config or no steps");
|
|
37
33
|
return;
|
|
38
34
|
}
|
|
39
35
|
|
|
40
|
-
console.log(
|
|
36
|
+
console.log(
|
|
37
|
+
"[Guidon] starting walkthrough with steps:",
|
|
38
|
+
config.steps.map((s) => s.id),
|
|
39
|
+
);
|
|
41
40
|
set({ isActive: true, currentStepIndex: 0, isCompleted: false });
|
|
42
41
|
|
|
43
42
|
// Call onStepEnter for the first step
|
|
@@ -50,7 +49,7 @@ export const useGuidonStore = create<GuidonStore>((set, get) => ({
|
|
|
50
49
|
|
|
51
50
|
next: () => {
|
|
52
51
|
const { config, currentStepIndex, isActive } = get();
|
|
53
|
-
console.log(
|
|
52
|
+
console.log("[Guidon] next() called", {
|
|
54
53
|
hasConfig: !!config,
|
|
55
54
|
currentStepIndex,
|
|
56
55
|
isActive,
|
|
@@ -58,27 +57,37 @@ export const useGuidonStore = create<GuidonStore>((set, get) => ({
|
|
|
58
57
|
});
|
|
59
58
|
|
|
60
59
|
if (!config || !isActive) {
|
|
61
|
-
console.log(
|
|
60
|
+
console.log("[Guidon] next() early return - config or isActive is falsy");
|
|
62
61
|
return;
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
const currentStep = config.steps[currentStepIndex];
|
|
66
|
-
console.log(
|
|
65
|
+
console.log("[Guidon] current step:", currentStep?.id ?? "undefined");
|
|
67
66
|
currentStep?.onStepExit?.();
|
|
68
67
|
|
|
69
68
|
if (currentStepIndex < config.steps.length - 1) {
|
|
70
69
|
const nextIndex = currentStepIndex + 1;
|
|
71
70
|
const nextStep = config.steps[nextIndex];
|
|
72
71
|
|
|
73
|
-
console.log(
|
|
72
|
+
console.log(
|
|
73
|
+
"[Guidon] advancing to step",
|
|
74
|
+
nextIndex,
|
|
75
|
+
nextStep?.id ?? "undefined",
|
|
76
|
+
);
|
|
74
77
|
set({ currentStepIndex: nextIndex });
|
|
75
78
|
|
|
76
79
|
nextStep?.onStepEnter?.();
|
|
77
80
|
if (nextStep) {
|
|
81
|
+
console.log(
|
|
82
|
+
"[Guidon] advancing to step",
|
|
83
|
+
nextIndex,
|
|
84
|
+
nextStep?.id ?? "undefined",
|
|
85
|
+
);
|
|
86
|
+
|
|
78
87
|
config.onStepChange?.(nextIndex, nextStep);
|
|
79
88
|
}
|
|
80
89
|
} else {
|
|
81
|
-
console.log(
|
|
90
|
+
console.log("[Guidon] last step reached, completing walkthrough");
|
|
82
91
|
// Last step completed
|
|
83
92
|
get().complete();
|
|
84
93
|
}
|
|
@@ -300,13 +309,11 @@ export const useGuidonProgress = () =>
|
|
|
300
309
|
percentage: state.config
|
|
301
310
|
? ((state.currentStepIndex + 1) / state.config.steps.length) * 100
|
|
302
311
|
: 0,
|
|
303
|
-
}))
|
|
312
|
+
})),
|
|
304
313
|
);
|
|
305
314
|
|
|
306
315
|
export const useTargetMeasurements = (targetId: string) =>
|
|
307
|
-
useGuidonStore(
|
|
308
|
-
(state: GuidonStore) => state.targetMeasurements[targetId],
|
|
309
|
-
);
|
|
316
|
+
useGuidonStore((state: GuidonStore) => state.targetMeasurements[targetId]);
|
|
310
317
|
|
|
311
318
|
/**
|
|
312
319
|
* Hook to check if the guidon is waiting for a target element to mount
|
|
@@ -330,7 +337,7 @@ export const useWaitingState = () =>
|
|
|
330
337
|
targetId: hasMeasurements ? null : targetId,
|
|
331
338
|
message: currentStep?.waitingMessage ?? null,
|
|
332
339
|
};
|
|
333
|
-
})
|
|
340
|
+
}),
|
|
334
341
|
);
|
|
335
342
|
|
|
336
343
|
/**
|