rn-studio 0.3.1 → 0.3.2
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/StudioProvider.d.ts.map +1 -1
- package/dist/StudioProvider.js +44 -15
- package/dist/StudioProvider.js.map +1 -1
- package/dist/components/SelectionOverlay.d.ts.map +1 -1
- package/dist/components/SelectionOverlay.js +3 -30
- package/dist/components/SelectionOverlay.js.map +1 -1
- package/dist/utils/extractStyles.d.ts +8 -0
- package/dist/utils/extractStyles.d.ts.map +1 -0
- package/dist/utils/extractStyles.js +73 -0
- package/dist/utils/extractStyles.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioProvider.d.ts","sourceRoot":"","sources":["../src/StudioProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,gBAAgB,EAMjB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StudioProvider.d.ts","sourceRoot":"","sources":["../src/StudioProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,gBAAgB,EAMjB,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACd,YAAY,EACZ,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB,UAAU,KAAM,SAAQ,OAAO,CAAC,YAAY,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;GAIG;AAEH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAqB,CAAC;AAEnE,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAe,EACf,UAAiB,EACjB,cAA+B,GAChC,EAAE,KAAK,qBAYP;AAsSD,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,0EAA0E;AAC1E,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C"}
|
package/dist/StudioProvider.js
CHANGED
|
@@ -45,6 +45,7 @@ const SelectionOverlay_1 = require("./components/SelectionOverlay");
|
|
|
45
45
|
const InspectorPanel_1 = require("./components/InspectorPanel");
|
|
46
46
|
const persistence_1 = require("./utils/persistence");
|
|
47
47
|
const findFiberBySource_1 = require("./utils/findFiberBySource");
|
|
48
|
+
const extractStyles_1 = require("./utils/extractStyles");
|
|
48
49
|
/**
|
|
49
50
|
* Shared mutable ref to the app root view. Populated by
|
|
50
51
|
* `<StudioProvider>` and consumed by `<SelectionOverlay>` for
|
|
@@ -113,7 +114,7 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
113
114
|
componentName: saved.componentName,
|
|
114
115
|
source: saved,
|
|
115
116
|
props,
|
|
116
|
-
styles:
|
|
117
|
+
styles: (0, extractStyles_1.extractStylesFromFiber)(fiber),
|
|
117
118
|
children: [],
|
|
118
119
|
};
|
|
119
120
|
// Silently restore in ACTIVE state so the user can tap the
|
|
@@ -127,6 +128,28 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
127
128
|
cancelled = true;
|
|
128
129
|
};
|
|
129
130
|
}, []);
|
|
131
|
+
/**
|
|
132
|
+
* Re-read the currently selected component's styles from the live
|
|
133
|
+
* React fiber tree. Called after undo/redo/cancel operations where
|
|
134
|
+
* the file on disk has changed and Metro Fast Refresh has committed
|
|
135
|
+
* new props to the component. Without this, the inspector would
|
|
136
|
+
* show stale or empty style lists.
|
|
137
|
+
*/
|
|
138
|
+
const refreshSelection = (0, react_1.useCallback)(() => {
|
|
139
|
+
setSelectedComponent((prev) => {
|
|
140
|
+
if (!prev)
|
|
141
|
+
return prev;
|
|
142
|
+
const fiber = (0, findFiberBySource_1.findFiberBySource)(prev.source);
|
|
143
|
+
if (!fiber)
|
|
144
|
+
return prev;
|
|
145
|
+
const props = (fiber.memoizedProps || {});
|
|
146
|
+
return {
|
|
147
|
+
...prev,
|
|
148
|
+
props,
|
|
149
|
+
styles: (0, extractStyles_1.extractStylesFromFiber)(fiber),
|
|
150
|
+
};
|
|
151
|
+
});
|
|
152
|
+
}, []);
|
|
130
153
|
/**
|
|
131
154
|
* Tell the server to consolidate any pending preview edits into a
|
|
132
155
|
* single undo entry. Safe to call even if no preview is active.
|
|
@@ -198,12 +221,23 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
198
221
|
styles: upsertLocalStyle(current.styles, key, value),
|
|
199
222
|
});
|
|
200
223
|
}, [selectedComponent]);
|
|
224
|
+
/**
|
|
225
|
+
* Wait for Metro Fast Refresh to commit the updated file into the
|
|
226
|
+
* running JS bundle, then re-read the selected component's styles
|
|
227
|
+
* from the live fiber tree. ~350 ms covers typical Fast Refresh
|
|
228
|
+
* latencies on both iOS Simulator and Android Emulator.
|
|
229
|
+
*/
|
|
230
|
+
const scheduleRefresh = (0, react_1.useCallback)(() => {
|
|
231
|
+
setTimeout(refreshSelection, 350);
|
|
232
|
+
}, [refreshSelection]);
|
|
201
233
|
const undo = (0, react_1.useCallback)(() => {
|
|
202
234
|
bridgeRef.current?.send({ type: 'UNDO' });
|
|
203
|
-
|
|
235
|
+
scheduleRefresh();
|
|
236
|
+
}, [scheduleRefresh]);
|
|
204
237
|
const redo = (0, react_1.useCallback)(() => {
|
|
205
238
|
bridgeRef.current?.send({ type: 'REDO' });
|
|
206
|
-
|
|
239
|
+
scheduleRefresh();
|
|
240
|
+
}, [scheduleRefresh]);
|
|
207
241
|
const commitPreview = (0, react_1.useCallback)(() => {
|
|
208
242
|
if (!previewFileRef.current) {
|
|
209
243
|
setHasPendingPreview(false);
|
|
@@ -227,24 +261,19 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
227
261
|
}
|
|
228
262
|
bridgeRef.current?.send({ type: 'CANCEL_PREVIEW' });
|
|
229
263
|
// After the server restores the file, Metro Fast Refresh will
|
|
230
|
-
// re-render the component with its original styles.
|
|
231
|
-
//
|
|
232
|
-
//
|
|
233
|
-
// time the user taps the component).
|
|
264
|
+
// re-render the component with its original styles. Refresh the
|
|
265
|
+
// inspector's style list from the live fiber so the editor
|
|
266
|
+
// reflects the restored values.
|
|
234
267
|
const file = previewFileRef.current;
|
|
235
268
|
setHasPendingPreview(false);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
styles: [],
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
// Re-open a fresh preview buffer on the same file.
|
|
269
|
+
scheduleRefresh();
|
|
270
|
+
// Re-open a fresh preview buffer on the same file so the next
|
|
271
|
+
// round of edits stays safely sandboxed.
|
|
243
272
|
bridgeRef.current?.send({
|
|
244
273
|
type: 'BEGIN_PREVIEW',
|
|
245
274
|
payload: { file },
|
|
246
275
|
});
|
|
247
|
-
}, [
|
|
276
|
+
}, [scheduleRefresh]);
|
|
248
277
|
const setAppRootRef = (0, react_1.useCallback)((r) => {
|
|
249
278
|
exports.appRootRef.current = r;
|
|
250
279
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioProvider.js","sourceRoot":"","sources":["../src/StudioProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"StudioProvider.js","sourceRoot":"","sources":["../src/StudioProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionOverlay.d.ts","sourceRoot":"","sources":["../../src/components/SelectionOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectionOverlay.d.ts","sourceRoot":"","sources":["../../src/components/SelectionOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AA8K3D;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAuHpC,CAAC"}
|
|
@@ -38,6 +38,7 @@ const react_1 = __importStar(require("react"));
|
|
|
38
38
|
const react_native_1 = require("react-native");
|
|
39
39
|
const StudioProvider_1 = require("../StudioProvider");
|
|
40
40
|
const autoScroll_1 = require("../utils/autoScroll");
|
|
41
|
+
const extractStyles_1 = require("../utils/extractStyles");
|
|
41
42
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
42
43
|
// React Native's built-in inspector data API. Uses the React DevTools
|
|
43
44
|
// hook under the hood and works on both the Fabric and legacy
|
|
@@ -64,35 +65,7 @@ function triggerHaptic(type) {
|
|
|
64
65
|
}
|
|
65
66
|
catch { }
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
-
if (typeof value === 'number')
|
|
69
|
-
return 'number';
|
|
70
|
-
if (typeof value === 'boolean')
|
|
71
|
-
return 'boolean';
|
|
72
|
-
if (typeof value === 'string') {
|
|
73
|
-
if (/color/i.test(key) ||
|
|
74
|
-
/^#[0-9a-f]{3,8}$/i.test(value) ||
|
|
75
|
-
/^rgba?\(/i.test(value) ||
|
|
76
|
-
/^hsla?\(/i.test(value)) {
|
|
77
|
-
return 'color';
|
|
78
|
-
}
|
|
79
|
-
return 'string';
|
|
80
|
-
}
|
|
81
|
-
return 'string';
|
|
82
|
-
}
|
|
83
|
-
function extractStyles(rawStyle) {
|
|
84
|
-
const flat = (react_native_1.StyleSheet.flatten(rawStyle) || {});
|
|
85
|
-
const out = [];
|
|
86
|
-
for (const key of Object.keys(flat)) {
|
|
87
|
-
const value = flat[key];
|
|
88
|
-
if (value == null)
|
|
89
|
-
continue;
|
|
90
|
-
if (typeof value === 'object')
|
|
91
|
-
continue; // skip nested (shadowOffset etc.)
|
|
92
|
-
out.push({ key, value, type: inferStyleType(key, value) });
|
|
93
|
-
}
|
|
94
|
-
return out;
|
|
95
|
-
}
|
|
68
|
+
// extractStyles now lives in ../utils/extractStyles for reuse.
|
|
96
69
|
/**
|
|
97
70
|
* Excludes known library paths so the AST engine only ever rewrites
|
|
98
71
|
* files in the user's project.
|
|
@@ -246,7 +219,7 @@ const SelectionOverlay = () => {
|
|
|
246
219
|
}
|
|
247
220
|
return true;
|
|
248
221
|
}
|
|
249
|
-
const nodeStyles = extractStyles(resolved.props.style);
|
|
222
|
+
const nodeStyles = (0, extractStyles_1.extractStyles)(resolved.props.style);
|
|
250
223
|
const node = {
|
|
251
224
|
id: `${resolved.source.file}:${resolved.source.line}:${resolved.source.column}`,
|
|
252
225
|
componentName: resolved.componentName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionOverlay.js","sourceRoot":"","sources":["../../src/components/SelectionOverlay.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,+CAKsB;AACtB,sDAA0D;AAC1D,oDAA4D;
|
|
1
|
+
{"version":3,"file":"SelectionOverlay.js","sourceRoot":"","sources":["../../src/components/SelectionOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StyleProperty } from '../types';
|
|
2
|
+
export declare function extractStyles(rawStyle: unknown): StyleProperty[];
|
|
3
|
+
/**
|
|
4
|
+
* Walks a fiber (and its host children) looking for a `style` prop,
|
|
5
|
+
* then flattens it into an array of StyleProperty entries.
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractStylesFromFiber(fiber: any): StyleProperty[];
|
|
8
|
+
//# sourceMappingURL=extractStyles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractStyles.d.ts","sourceRoot":"","sources":["../../src/utils/extractStyles.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAwB9C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,EAAE,CAahE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,EAAE,CAuBlE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractStyles = extractStyles;
|
|
4
|
+
exports.extractStylesFromFiber = extractStylesFromFiber;
|
|
5
|
+
/**
|
|
6
|
+
* extractStyles
|
|
7
|
+
*
|
|
8
|
+
* Converts a raw React Native style prop (object, array, StyleSheet
|
|
9
|
+
* ID, etc.) into a flat `StyleProperty[]` list suitable for rendering
|
|
10
|
+
* in the inspector. Shared between `SelectionOverlay` (building the
|
|
11
|
+
* initial selection) and `StudioProvider` (refreshing the current
|
|
12
|
+
* selection after undo/redo/cancel).
|
|
13
|
+
*/
|
|
14
|
+
const react_native_1 = require("react-native");
|
|
15
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
16
|
+
function inferStyleType(key, value) {
|
|
17
|
+
if (typeof value === 'number')
|
|
18
|
+
return 'number';
|
|
19
|
+
if (typeof value === 'boolean')
|
|
20
|
+
return 'boolean';
|
|
21
|
+
if (typeof value === 'string') {
|
|
22
|
+
if (/color/i.test(key) ||
|
|
23
|
+
/^#[0-9a-f]{3,8}$/i.test(value) ||
|
|
24
|
+
/^rgba?\(/i.test(value) ||
|
|
25
|
+
/^hsla?\(/i.test(value)) {
|
|
26
|
+
return 'color';
|
|
27
|
+
}
|
|
28
|
+
return 'string';
|
|
29
|
+
}
|
|
30
|
+
return 'string';
|
|
31
|
+
}
|
|
32
|
+
function extractStyles(rawStyle) {
|
|
33
|
+
const flat = (react_native_1.StyleSheet.flatten(rawStyle) || {});
|
|
34
|
+
const out = [];
|
|
35
|
+
for (const key of Object.keys(flat)) {
|
|
36
|
+
const value = flat[key];
|
|
37
|
+
if (value == null)
|
|
38
|
+
continue;
|
|
39
|
+
if (typeof value === 'object')
|
|
40
|
+
continue; // skip nested (shadowOffset etc.)
|
|
41
|
+
out.push({ key, value, type: inferStyleType(key, value) });
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Walks a fiber (and its host children) looking for a `style` prop,
|
|
47
|
+
* then flattens it into an array of StyleProperty entries.
|
|
48
|
+
*/
|
|
49
|
+
function extractStylesFromFiber(fiber) {
|
|
50
|
+
if (!fiber)
|
|
51
|
+
return [];
|
|
52
|
+
// First try the fiber's own memoizedProps.
|
|
53
|
+
const ownProps = fiber.memoizedProps;
|
|
54
|
+
if (ownProps && ownProps.style !== undefined) {
|
|
55
|
+
return extractStyles(ownProps.style);
|
|
56
|
+
}
|
|
57
|
+
// Fall back to the first host-fiber descendant that has a style
|
|
58
|
+
// prop — useful when the selected fiber is a component wrapper
|
|
59
|
+
// whose rendered host actually holds the resolved styles.
|
|
60
|
+
let current = fiber.child;
|
|
61
|
+
let safety = 0;
|
|
62
|
+
while (current && safety < 20) {
|
|
63
|
+
safety++;
|
|
64
|
+
if (typeof current.type === 'string') {
|
|
65
|
+
const p = current.memoizedProps;
|
|
66
|
+
if (p && p.style !== undefined)
|
|
67
|
+
return extractStyles(p.style);
|
|
68
|
+
}
|
|
69
|
+
current = current.child;
|
|
70
|
+
}
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=extractStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractStyles.js","sourceRoot":"","sources":["../../src/utils/extractStyles.ts"],"names":[],"mappings":";;AAkCA,sCAaC;AAMD,wDAuBC;AA5ED;;;;;;;;GAQG;AACH,+CAA0C;AAG1C,uDAAuD;AAEvD,SAAS,cAAc,CACrB,GAAW,EACX,KAAsB;IAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IACE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAClB,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EACvB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,aAAa,CAAC,QAAiB;IAC7C,MAAM,IAAI,GAAG,CAAC,yBAAU,CAAC,OAAO,CAAC,QAAe,CAAC,IAAI,EAAE,CAGtD,CAAC;IACF,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,IAAI,IAAI;YAAE,SAAS;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS,CAAC,kCAAkC;QAC3E,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,KAAU;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAoD,CAAC;IAC5E,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,gEAAgE;IAChE,+DAA+D;IAC/D,0DAA0D;IAC1D,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,OAAO,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC;QACT,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAoD,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|