rn-studio 0.3.0 → 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/bin/rn-studio-server.js +66 -1
- package/dist/StudioProvider.d.ts.map +1 -1
- package/dist/StudioProvider.js +106 -5
- package/dist/StudioProvider.js.map +1 -1
- package/dist/ast/AstEngine.d.ts.map +1 -1
- package/dist/ast/AstEngine.js +13 -6
- package/dist/ast/AstEngine.js.map +1 -1
- package/dist/ast/PreviewState.d.ts +41 -0
- package/dist/ast/PreviewState.d.ts.map +1 -0
- package/dist/ast/PreviewState.js +159 -0
- package/dist/ast/PreviewState.js.map +1 -0
- package/dist/components/InspectorPanel.js +73 -8
- package/dist/components/InspectorPanel.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/types.d.ts +18 -0
- package/dist/types.d.ts.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
package/bin/rn-studio-server.js
CHANGED
|
@@ -14,9 +14,11 @@ const { WebSocketServer } = require('ws');
|
|
|
14
14
|
|
|
15
15
|
let AstEngine;
|
|
16
16
|
let UndoStack;
|
|
17
|
+
let PreviewState;
|
|
17
18
|
try {
|
|
18
19
|
AstEngine = require('../dist/ast/AstEngine');
|
|
19
20
|
UndoStack = require('../dist/ast/UndoStack');
|
|
21
|
+
PreviewState = require('../dist/ast/PreviewState');
|
|
20
22
|
} catch (err) {
|
|
21
23
|
console.error(
|
|
22
24
|
'[rn-studio] Unable to load dist modules. Did you run `npm run build`?',
|
|
@@ -129,6 +131,60 @@ wss.on('connection', (ws) => {
|
|
|
129
131
|
return;
|
|
130
132
|
}
|
|
131
133
|
|
|
134
|
+
if (msg.type === 'BEGIN_PREVIEW') {
|
|
135
|
+
const file = msg.payload && msg.payload.file;
|
|
136
|
+
if (file) {
|
|
137
|
+
PreviewState.begin(file);
|
|
138
|
+
console.log(`[rn-studio] ⋯ preview begin: ${file}`);
|
|
139
|
+
}
|
|
140
|
+
ws.send(JSON.stringify({ type: 'ACK', payload: { success: true } }));
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (msg.type === 'COMMIT_PREVIEW') {
|
|
145
|
+
const result = PreviewState.commit();
|
|
146
|
+
if (result && result.editCount > 0) {
|
|
147
|
+
console.log(
|
|
148
|
+
`[rn-studio] ✓ preview commit: ${result.editCount} edit${
|
|
149
|
+
result.editCount === 1 ? '' : 's'
|
|
150
|
+
} (${result.file})`,
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
ws.send(
|
|
154
|
+
JSON.stringify({
|
|
155
|
+
type: 'ACK',
|
|
156
|
+
payload: {
|
|
157
|
+
success: true,
|
|
158
|
+
message: result ? `committed ${result.editCount}` : 'nothing to commit',
|
|
159
|
+
},
|
|
160
|
+
}),
|
|
161
|
+
);
|
|
162
|
+
broadcastStackState();
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (msg.type === 'CANCEL_PREVIEW') {
|
|
167
|
+
const result = PreviewState.cancel();
|
|
168
|
+
if (result && result.editCount > 0) {
|
|
169
|
+
console.log(
|
|
170
|
+
`[rn-studio] ↺ preview cancel: reverted ${result.editCount} edit${
|
|
171
|
+
result.editCount === 1 ? '' : 's'
|
|
172
|
+
} (${result.file})`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
ws.send(
|
|
176
|
+
JSON.stringify({
|
|
177
|
+
type: 'ACK',
|
|
178
|
+
payload: {
|
|
179
|
+
success: true,
|
|
180
|
+
message: result ? `reverted ${result.editCount}` : 'nothing to cancel',
|
|
181
|
+
},
|
|
182
|
+
}),
|
|
183
|
+
);
|
|
184
|
+
broadcastStackState();
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
|
|
132
188
|
if (msg.type === 'PROP_CHANGE') {
|
|
133
189
|
ws.send(
|
|
134
190
|
JSON.stringify({
|
|
@@ -152,7 +208,16 @@ wss.on('connection', (ws) => {
|
|
|
152
208
|
}
|
|
153
209
|
});
|
|
154
210
|
|
|
155
|
-
ws.on('close', () =>
|
|
211
|
+
ws.on('close', () => {
|
|
212
|
+
console.log('[rn-studio] Client disconnected');
|
|
213
|
+
// Abandon any in-flight preview so a stale buffer can't bleed
|
|
214
|
+
// into a later session on a different file.
|
|
215
|
+
if (PreviewState.isActive()) {
|
|
216
|
+
PreviewState.cancel();
|
|
217
|
+
console.log('[rn-studio] (preview auto-cancelled on disconnect)');
|
|
218
|
+
broadcastStackState();
|
|
219
|
+
}
|
|
220
|
+
});
|
|
156
221
|
});
|
|
157
222
|
|
|
158
223
|
process.on('SIGINT', () => {
|
|
@@ -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
|
|
@@ -63,7 +64,11 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
63
64
|
const [selectedComponent, setSelectedComponent] = (0, react_1.useState)(null);
|
|
64
65
|
const [canUndo, setCanUndo] = (0, react_1.useState)(false);
|
|
65
66
|
const [canRedo, setCanRedo] = (0, react_1.useState)(false);
|
|
67
|
+
const [hasPendingPreview, setHasPendingPreview] = (0, react_1.useState)(false);
|
|
66
68
|
const bridgeRef = (0, react_1.useRef)(null);
|
|
69
|
+
// Keep the current preview file in a ref so effect cleanup can
|
|
70
|
+
// auto-commit without re-running every render.
|
|
71
|
+
const previewFileRef = (0, react_1.useRef)(null);
|
|
67
72
|
if (!bridgeRef.current) {
|
|
68
73
|
bridgeRef.current = new WebSocketBridge_1.WebSocketBridge(serverPort);
|
|
69
74
|
}
|
|
@@ -109,7 +114,7 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
109
114
|
componentName: saved.componentName,
|
|
110
115
|
source: saved,
|
|
111
116
|
props,
|
|
112
|
-
styles:
|
|
117
|
+
styles: (0, extractStyles_1.extractStylesFromFiber)(fiber),
|
|
113
118
|
children: [],
|
|
114
119
|
};
|
|
115
120
|
// Silently restore in ACTIVE state so the user can tap the
|
|
@@ -123,22 +128,66 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
123
128
|
cancelled = true;
|
|
124
129
|
};
|
|
125
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
|
+
}, []);
|
|
153
|
+
/**
|
|
154
|
+
* Tell the server to consolidate any pending preview edits into a
|
|
155
|
+
* single undo entry. Safe to call even if no preview is active.
|
|
156
|
+
*/
|
|
157
|
+
const autoCommitPreview = (0, react_1.useCallback)(() => {
|
|
158
|
+
if (previewFileRef.current) {
|
|
159
|
+
bridgeRef.current?.send({ type: 'COMMIT_PREVIEW' });
|
|
160
|
+
previewFileRef.current = null;
|
|
161
|
+
}
|
|
162
|
+
setHasPendingPreview(false);
|
|
163
|
+
}, []);
|
|
126
164
|
const toggleActive = (0, react_1.useCallback)(() => {
|
|
165
|
+
autoCommitPreview();
|
|
127
166
|
setState((s) => {
|
|
128
167
|
if (s === 'IDLE')
|
|
129
168
|
return 'ACTIVE';
|
|
130
169
|
setSelectedComponent(null);
|
|
131
170
|
return 'IDLE';
|
|
132
171
|
});
|
|
133
|
-
}, []);
|
|
172
|
+
}, [autoCommitPreview]);
|
|
134
173
|
const selectComponent = (0, react_1.useCallback)((node) => {
|
|
174
|
+
// If switching components, auto-commit the previous preview.
|
|
175
|
+
autoCommitPreview();
|
|
135
176
|
setSelectedComponent(node);
|
|
136
177
|
setState('SELECTED');
|
|
137
|
-
|
|
178
|
+
// Begin a fresh preview for the new selection's file so any
|
|
179
|
+
// style edits land in the preview buffer, not the main stack.
|
|
180
|
+
bridgeRef.current?.send({
|
|
181
|
+
type: 'BEGIN_PREVIEW',
|
|
182
|
+
payload: { file: node.source.file },
|
|
183
|
+
});
|
|
184
|
+
previewFileRef.current = node.source.file;
|
|
185
|
+
}, [autoCommitPreview]);
|
|
138
186
|
const clearSelection = (0, react_1.useCallback)(() => {
|
|
187
|
+
autoCommitPreview();
|
|
139
188
|
setSelectedComponent(null);
|
|
140
189
|
setState('ACTIVE');
|
|
141
|
-
}, []);
|
|
190
|
+
}, [autoCommitPreview]);
|
|
142
191
|
const updateStyle = (0, react_1.useCallback)((key, value) => {
|
|
143
192
|
const current = selectedComponent;
|
|
144
193
|
if (!current)
|
|
@@ -147,6 +196,7 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
147
196
|
type: 'STYLE_CHANGE',
|
|
148
197
|
payload: { source: current.source, key, value },
|
|
149
198
|
});
|
|
199
|
+
setHasPendingPreview(true);
|
|
150
200
|
// Optimistically update the local styles list so the editor
|
|
151
201
|
// reflects the new value without a round-trip.
|
|
152
202
|
setSelectedComponent({
|
|
@@ -165,17 +215,65 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
165
215
|
type: 'STYLE_CHANGE',
|
|
166
216
|
payload: { source: current.source, key, value },
|
|
167
217
|
});
|
|
218
|
+
setHasPendingPreview(true);
|
|
168
219
|
setSelectedComponent({
|
|
169
220
|
...current,
|
|
170
221
|
styles: upsertLocalStyle(current.styles, key, value),
|
|
171
222
|
});
|
|
172
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]);
|
|
173
233
|
const undo = (0, react_1.useCallback)(() => {
|
|
174
234
|
bridgeRef.current?.send({ type: 'UNDO' });
|
|
175
|
-
|
|
235
|
+
scheduleRefresh();
|
|
236
|
+
}, [scheduleRefresh]);
|
|
176
237
|
const redo = (0, react_1.useCallback)(() => {
|
|
177
238
|
bridgeRef.current?.send({ type: 'REDO' });
|
|
239
|
+
scheduleRefresh();
|
|
240
|
+
}, [scheduleRefresh]);
|
|
241
|
+
const commitPreview = (0, react_1.useCallback)(() => {
|
|
242
|
+
if (!previewFileRef.current) {
|
|
243
|
+
setHasPendingPreview(false);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
bridgeRef.current?.send({ type: 'COMMIT_PREVIEW' });
|
|
247
|
+
// Immediately re-open a fresh preview buffer on the same file so
|
|
248
|
+
// the user can keep editing the same component without losing
|
|
249
|
+
// preview safety on the next change.
|
|
250
|
+
const file = previewFileRef.current;
|
|
251
|
+
bridgeRef.current?.send({
|
|
252
|
+
type: 'BEGIN_PREVIEW',
|
|
253
|
+
payload: { file },
|
|
254
|
+
});
|
|
255
|
+
setHasPendingPreview(false);
|
|
178
256
|
}, []);
|
|
257
|
+
const cancelPreview = (0, react_1.useCallback)(() => {
|
|
258
|
+
if (!previewFileRef.current) {
|
|
259
|
+
setHasPendingPreview(false);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
bridgeRef.current?.send({ type: 'CANCEL_PREVIEW' });
|
|
263
|
+
// After the server restores the file, Metro Fast Refresh will
|
|
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.
|
|
267
|
+
const file = previewFileRef.current;
|
|
268
|
+
setHasPendingPreview(false);
|
|
269
|
+
scheduleRefresh();
|
|
270
|
+
// Re-open a fresh preview buffer on the same file so the next
|
|
271
|
+
// round of edits stays safely sandboxed.
|
|
272
|
+
bridgeRef.current?.send({
|
|
273
|
+
type: 'BEGIN_PREVIEW',
|
|
274
|
+
payload: { file },
|
|
275
|
+
});
|
|
276
|
+
}, [scheduleRefresh]);
|
|
179
277
|
const setAppRootRef = (0, react_1.useCallback)((r) => {
|
|
180
278
|
exports.appRootRef.current = r;
|
|
181
279
|
}, []);
|
|
@@ -192,6 +290,9 @@ const StudioProviderInner = ({ serverPort, bubblePosition, children }) => {
|
|
|
192
290
|
redo,
|
|
193
291
|
canUndo,
|
|
194
292
|
canRedo,
|
|
293
|
+
hasPendingPreview,
|
|
294
|
+
commitPreview,
|
|
295
|
+
cancelPreview,
|
|
195
296
|
};
|
|
196
297
|
return (react_1.default.createElement(StudioContext_1.StudioContext.Provider, { value: ctx },
|
|
197
298
|
react_1.default.createElement(react_native_1.View, { ref: setAppRootRef, collapsable: false, style: { flex: 1 } }, children),
|
|
@@ -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":"AstEngine.d.ts","sourceRoot":"","sources":["../../src/ast/AstEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AstEngine.d.ts","sourceRoot":"","sources":["../../src/ast/AstEngine.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAgHD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoKtE"}
|
package/dist/ast/AstEngine.js
CHANGED
|
@@ -66,6 +66,7 @@ const parser = __importStar(require("@babel/parser"));
|
|
|
66
66
|
const recast = __importStar(require("recast"));
|
|
67
67
|
const fs = __importStar(require("fs"));
|
|
68
68
|
const UndoStack_1 = require("./UndoStack");
|
|
69
|
+
const PreviewState = __importStar(require("./PreviewState"));
|
|
69
70
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
70
71
|
const b = recast.types.builders;
|
|
71
72
|
function buildLiteral(value) {
|
|
@@ -281,11 +282,17 @@ async function rewriteStyle(opts) {
|
|
|
281
282
|
if (output === source)
|
|
282
283
|
return;
|
|
283
284
|
fs.writeFileSync(file, output, 'utf-8');
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
285
|
+
// If a preview is active on this file, absorb the edit into the
|
|
286
|
+
// preview buffer instead of pushing a new undo entry. Otherwise the
|
|
287
|
+
// edit is a regular committed change.
|
|
288
|
+
const absorbed = PreviewState.recordEdit(file);
|
|
289
|
+
if (!absorbed) {
|
|
290
|
+
(0, UndoStack_1.pushEdit)({
|
|
291
|
+
file,
|
|
292
|
+
before: source,
|
|
293
|
+
after: output,
|
|
294
|
+
label: `${key} = ${value}`,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
290
297
|
}
|
|
291
298
|
//# sourceMappingURL=AstEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AstEngine.js","sourceRoot":"","sources":["../../src/ast/AstEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AstEngine.js","sourceRoot":"","sources":["../../src/ast/AstEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Called by the server when the client sends BEGIN_PREVIEW after
|
|
3
|
+
* selecting a component. Captures the file's current on-disk state
|
|
4
|
+
* so it can be restored on cancel. If a preview was already active
|
|
5
|
+
* for a different file, it is auto-committed first.
|
|
6
|
+
*/
|
|
7
|
+
export declare function begin(file: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* Called by AstEngine.rewriteStyle after a successful write. Returns
|
|
10
|
+
* true if the edit was absorbed into the preview buffer (and should
|
|
11
|
+
* therefore NOT be pushed to the main undo stack). Returns false if
|
|
12
|
+
* there is no active preview or the edit targeted a different file.
|
|
13
|
+
*/
|
|
14
|
+
export declare function recordEdit(file: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Called when the user taps ✓. Consolidates every edit made during
|
|
17
|
+
* the preview into a single undo entry with the label "preview",
|
|
18
|
+
* then clears the buffer.
|
|
19
|
+
*/
|
|
20
|
+
export declare function commit(): {
|
|
21
|
+
file: string;
|
|
22
|
+
editCount: number;
|
|
23
|
+
} | null;
|
|
24
|
+
/**
|
|
25
|
+
* Called when the user taps ↺. Restores the exact original file
|
|
26
|
+
* content and clears the buffer. Metro Fast Refresh picks up the
|
|
27
|
+
* restore automatically. No entry is pushed to the undo stack.
|
|
28
|
+
*/
|
|
29
|
+
export declare function cancel(): {
|
|
30
|
+
file: string;
|
|
31
|
+
editCount: number;
|
|
32
|
+
} | null;
|
|
33
|
+
export declare function isActive(): boolean;
|
|
34
|
+
export declare function getState(): {
|
|
35
|
+
active: boolean;
|
|
36
|
+
file: string | null;
|
|
37
|
+
editCount: number;
|
|
38
|
+
};
|
|
39
|
+
/** Called on disconnect or manual reset. */
|
|
40
|
+
export declare function reset(): void;
|
|
41
|
+
//# sourceMappingURL=PreviewState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewState.d.ts","sourceRoot":"","sources":["../../src/ast/PreviewState.ts"],"names":[],"mappings":"AA8BA;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAYxC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmBnE;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWnE;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,QAAQ,IAAI;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAMA;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,IAAI,IAAI,CAE5B"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.begin = begin;
|
|
37
|
+
exports.recordEdit = recordEdit;
|
|
38
|
+
exports.commit = commit;
|
|
39
|
+
exports.cancel = cancel;
|
|
40
|
+
exports.isActive = isActive;
|
|
41
|
+
exports.getState = getState;
|
|
42
|
+
exports.reset = reset;
|
|
43
|
+
/**
|
|
44
|
+
* PreviewState
|
|
45
|
+
*
|
|
46
|
+
* Server-side state machine for rn-studio's preview mode. While a
|
|
47
|
+
* preview is active, style changes are still written to disk (so
|
|
48
|
+
* Metro Fast Refresh can visually reflect the edit) but they are
|
|
49
|
+
* held back from the main undo stack.
|
|
50
|
+
*
|
|
51
|
+
* The user has two ways out:
|
|
52
|
+
*
|
|
53
|
+
* - `commit()` — the NET diff between the original and current
|
|
54
|
+
* file is pushed as a single undo entry labeled "preview", and
|
|
55
|
+
* the preview buffer is cleared.
|
|
56
|
+
*
|
|
57
|
+
* - `cancel()` — the original file content is written back to
|
|
58
|
+
* disk verbatim, and the preview buffer is cleared. From the
|
|
59
|
+
* user's perspective it is as if the edits never happened: the
|
|
60
|
+
* file is pristine, the undo stack is untouched.
|
|
61
|
+
*/
|
|
62
|
+
const fs = __importStar(require("fs"));
|
|
63
|
+
const UndoStack_1 = require("./UndoStack");
|
|
64
|
+
let active = null;
|
|
65
|
+
/**
|
|
66
|
+
* Called by the server when the client sends BEGIN_PREVIEW after
|
|
67
|
+
* selecting a component. Captures the file's current on-disk state
|
|
68
|
+
* so it can be restored on cancel. If a preview was already active
|
|
69
|
+
* for a different file, it is auto-committed first.
|
|
70
|
+
*/
|
|
71
|
+
function begin(file) {
|
|
72
|
+
if (active && active.file !== file) {
|
|
73
|
+
// Auto-commit the previous preview so we never leak state.
|
|
74
|
+
commit();
|
|
75
|
+
}
|
|
76
|
+
if (active && active.file === file) {
|
|
77
|
+
// Already previewing this file — nothing to do.
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (!fs.existsSync(file))
|
|
81
|
+
return;
|
|
82
|
+
const originalContent = fs.readFileSync(file, 'utf-8');
|
|
83
|
+
active = { file, originalContent, editCount: 0 };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Called by AstEngine.rewriteStyle after a successful write. Returns
|
|
87
|
+
* true if the edit was absorbed into the preview buffer (and should
|
|
88
|
+
* therefore NOT be pushed to the main undo stack). Returns false if
|
|
89
|
+
* there is no active preview or the edit targeted a different file.
|
|
90
|
+
*/
|
|
91
|
+
function recordEdit(file) {
|
|
92
|
+
if (!active || active.file !== file)
|
|
93
|
+
return false;
|
|
94
|
+
active.editCount++;
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Called when the user taps ✓. Consolidates every edit made during
|
|
99
|
+
* the preview into a single undo entry with the label "preview",
|
|
100
|
+
* then clears the buffer.
|
|
101
|
+
*/
|
|
102
|
+
function commit() {
|
|
103
|
+
if (!active)
|
|
104
|
+
return null;
|
|
105
|
+
const { file, originalContent, editCount } = active;
|
|
106
|
+
active = null;
|
|
107
|
+
if (editCount === 0)
|
|
108
|
+
return { file, editCount: 0 };
|
|
109
|
+
try {
|
|
110
|
+
const currentContent = fs.readFileSync(file, 'utf-8');
|
|
111
|
+
if (currentContent !== originalContent) {
|
|
112
|
+
(0, UndoStack_1.pushEdit)({
|
|
113
|
+
file,
|
|
114
|
+
before: originalContent,
|
|
115
|
+
after: currentContent,
|
|
116
|
+
label: `preview (${editCount} edit${editCount === 1 ? '' : 's'})`,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// File gone / unreadable — nothing to commit.
|
|
122
|
+
}
|
|
123
|
+
return { file, editCount };
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Called when the user taps ↺. Restores the exact original file
|
|
127
|
+
* content and clears the buffer. Metro Fast Refresh picks up the
|
|
128
|
+
* restore automatically. No entry is pushed to the undo stack.
|
|
129
|
+
*/
|
|
130
|
+
function cancel() {
|
|
131
|
+
if (!active)
|
|
132
|
+
return null;
|
|
133
|
+
const { file, originalContent, editCount } = active;
|
|
134
|
+
active = null;
|
|
135
|
+
if (editCount === 0)
|
|
136
|
+
return { file, editCount: 0 };
|
|
137
|
+
try {
|
|
138
|
+
fs.writeFileSync(file, originalContent, 'utf-8');
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Best-effort; caller surfaces any error back to the client.
|
|
142
|
+
}
|
|
143
|
+
return { file, editCount };
|
|
144
|
+
}
|
|
145
|
+
function isActive() {
|
|
146
|
+
return active !== null;
|
|
147
|
+
}
|
|
148
|
+
function getState() {
|
|
149
|
+
return {
|
|
150
|
+
active: active !== null,
|
|
151
|
+
file: active ? active.file : null,
|
|
152
|
+
editCount: active ? active.editCount : 0,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/** Called on disconnect or manual reset. */
|
|
156
|
+
function reset() {
|
|
157
|
+
active = null;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=PreviewState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewState.js","sourceRoot":"","sources":["../../src/ast/PreviewState.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,18 +76,33 @@ const InspectorPanel = () => {
|
|
|
76
76
|
};
|
|
77
77
|
exports.InspectorPanel = InspectorPanel;
|
|
78
78
|
const PanelChrome = ({ tab, setTab, onDismiss }) => {
|
|
79
|
-
const { selectedComponent, undo, redo, canUndo, canRedo } = (0, StudioProvider_1.useStudio)();
|
|
79
|
+
const { selectedComponent, undo, redo, canUndo, canRedo, hasPendingPreview, commitPreview, cancelPreview, } = (0, StudioProvider_1.useStudio)();
|
|
80
80
|
return (react_1.default.createElement(react_native_1.View, null,
|
|
81
81
|
react_1.default.createElement(react_native_1.View, { style: styles.handleWrap },
|
|
82
82
|
react_1.default.createElement(react_native_1.View, { style: styles.handle })),
|
|
83
83
|
react_1.default.createElement(react_native_1.View, { style: styles.header },
|
|
84
|
-
react_1.default.createElement(react_native_1.
|
|
84
|
+
react_1.default.createElement(react_native_1.View, { style: styles.titleWrap },
|
|
85
|
+
react_1.default.createElement(react_native_1.Text, { style: styles.title, numberOfLines: 1 }, selectedComponent ? selectedComponent.componentName : 'Inspector'),
|
|
86
|
+
hasPendingPreview && (react_1.default.createElement(react_native_1.View, { style: styles.previewBadge },
|
|
87
|
+
react_1.default.createElement(react_native_1.View, { style: styles.previewDot }),
|
|
88
|
+
react_1.default.createElement(react_native_1.Text, { style: styles.previewBadgeText }, "Preview")))),
|
|
85
89
|
react_1.default.createElement(react_native_1.View, { style: styles.headerActions },
|
|
86
|
-
react_1.default.createElement(
|
|
87
|
-
react_1.default.createElement(react_native_1.
|
|
88
|
-
|
|
89
|
-
react_1.default.createElement(react_native_1.
|
|
90
|
-
|
|
90
|
+
hasPendingPreview ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
91
|
+
react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: cancelPreview, hitSlop: { top: 12, bottom: 12, left: 6, right: 6 }, style: [styles.headerBtn, styles.cancelBtn], accessibilityLabel: "Cancel preview" },
|
|
92
|
+
react_1.default.createElement(react_native_1.Text, { style: styles.cancelBtnText }, "\u21BA")),
|
|
93
|
+
react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: commitPreview, hitSlop: { top: 12, bottom: 12, left: 6, right: 6 }, style: [styles.headerBtn, styles.commitBtn], accessibilityLabel: "Commit preview" },
|
|
94
|
+
react_1.default.createElement(react_native_1.Text, { style: styles.commitBtnText }, "\u2713")))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
95
|
+
react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: undo, disabled: !canUndo, hitSlop: { top: 12, bottom: 12, left: 6, right: 6 }, style: [styles.headerBtn, !canUndo && styles.headerBtnDisabled] },
|
|
96
|
+
react_1.default.createElement(react_native_1.Text, { style: [
|
|
97
|
+
styles.headerBtnText,
|
|
98
|
+
!canUndo && styles.headerBtnTextDisabled,
|
|
99
|
+
] }, "\u21B6")),
|
|
100
|
+
react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: redo, disabled: !canRedo, hitSlop: { top: 12, bottom: 12, left: 6, right: 6 }, style: [styles.headerBtn, !canRedo && styles.headerBtnDisabled] },
|
|
101
|
+
react_1.default.createElement(react_native_1.Text, { style: [
|
|
102
|
+
styles.headerBtnText,
|
|
103
|
+
!canRedo && styles.headerBtnTextDisabled,
|
|
104
|
+
] }, "\u21B7")))),
|
|
105
|
+
react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: onDismiss, hitSlop: { top: 12, bottom: 12, left: 8, right: 12 }, style: styles.headerBtn },
|
|
91
106
|
react_1.default.createElement(react_native_1.Text, { style: styles.close }, "\u2715")))),
|
|
92
107
|
react_1.default.createElement(react_native_1.View, { style: styles.tabs },
|
|
93
108
|
react_1.default.createElement(TabButton, { label: "Styles", active: tab === 'styles', onPress: () => setTab('styles') }),
|
|
@@ -168,7 +183,37 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
168
183
|
paddingHorizontal: 16,
|
|
169
184
|
paddingVertical: 12,
|
|
170
185
|
},
|
|
171
|
-
|
|
186
|
+
titleWrap: {
|
|
187
|
+
flex: 1,
|
|
188
|
+
flexDirection: 'row',
|
|
189
|
+
alignItems: 'center',
|
|
190
|
+
gap: 8,
|
|
191
|
+
},
|
|
192
|
+
title: { color: '#fff', fontSize: 16, fontWeight: '700', flexShrink: 1 },
|
|
193
|
+
previewBadge: {
|
|
194
|
+
flexDirection: 'row',
|
|
195
|
+
alignItems: 'center',
|
|
196
|
+
gap: 5,
|
|
197
|
+
backgroundColor: 'rgba(124,155,255,0.15)',
|
|
198
|
+
borderWidth: 1,
|
|
199
|
+
borderColor: 'rgba(124,155,255,0.4)',
|
|
200
|
+
paddingHorizontal: 7,
|
|
201
|
+
paddingVertical: 2,
|
|
202
|
+
borderRadius: 10,
|
|
203
|
+
},
|
|
204
|
+
previewDot: {
|
|
205
|
+
width: 6,
|
|
206
|
+
height: 6,
|
|
207
|
+
borderRadius: 3,
|
|
208
|
+
backgroundColor: '#7C9BFF',
|
|
209
|
+
},
|
|
210
|
+
previewBadgeText: {
|
|
211
|
+
color: '#7C9BFF',
|
|
212
|
+
fontSize: 10,
|
|
213
|
+
fontWeight: '700',
|
|
214
|
+
letterSpacing: 0.5,
|
|
215
|
+
textTransform: 'uppercase',
|
|
216
|
+
},
|
|
172
217
|
headerActions: {
|
|
173
218
|
flexDirection: 'row',
|
|
174
219
|
alignItems: 'center',
|
|
@@ -194,6 +239,26 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
194
239
|
headerBtnTextDisabled: {
|
|
195
240
|
color: '#333',
|
|
196
241
|
},
|
|
242
|
+
cancelBtn: {
|
|
243
|
+
backgroundColor: 'rgba(251,191,36,0.15)',
|
|
244
|
+
borderWidth: 1,
|
|
245
|
+
borderColor: 'rgba(251,191,36,0.4)',
|
|
246
|
+
},
|
|
247
|
+
cancelBtnText: {
|
|
248
|
+
color: '#FBBF24',
|
|
249
|
+
fontSize: 16,
|
|
250
|
+
fontWeight: '800',
|
|
251
|
+
lineHeight: 18,
|
|
252
|
+
},
|
|
253
|
+
commitBtn: {
|
|
254
|
+
backgroundColor: '#7C9BFF',
|
|
255
|
+
},
|
|
256
|
+
commitBtnText: {
|
|
257
|
+
color: '#0a0a0a',
|
|
258
|
+
fontSize: 16,
|
|
259
|
+
fontWeight: '800',
|
|
260
|
+
lineHeight: 18,
|
|
261
|
+
},
|
|
197
262
|
close: { color: '#888', fontSize: 16 },
|
|
198
263
|
tabs: { flexDirection: 'row', backgroundColor: '#1a1a1a' },
|
|
199
264
|
tab: { flex: 1, paddingVertical: 12, alignItems: 'center' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectorPanel.js","sourceRoot":"","sources":["../../src/components/InspectorPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,+CAQsB;AACtB,sDAA8C;AAC9C,+CAA4C;AAC5C,mDAAgD;AAIhD,MAAM,aAAa,GAAG,yBAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACtD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AAErD;;;;;;;GAOG;AACI,MAAM,cAAc,GAAa,GAAG,EAAE;IAC3C,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,IAAA,0BAAS,GAAE,CAAC;IAC1D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAM,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,IAAI,uBAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IACpE,MAAM,OAAO,GAAG,CAAC,CAAC,iBAAiB,CAAC;IAEpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,uBAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;YAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YACnC,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,CAAC;SACR,CAAC,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,CACL;QACE,8BAAC,+BAAgB,IACf,aAAa,EAAE,CAAC,EAChB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,CAAC,QAAQ,GACtB;QACF,8BAAC,uBAAQ,CAAC,IAAI,IACZ,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YAEtD,8BAAC,WAAW,IACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,GACzB;YACF,8BAAC,mBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO;gBACxB,GAAG,KAAK,QAAQ,IAAI,8BAAC,yBAAW,OAAG;gBACnC,GAAG,KAAK,MAAM,IAAI,8BAAC,6BAAa,OAAG;gBACnC,GAAG,KAAK,OAAO,IAAI,8BAAC,SAAS,OAAG,CAC5B,CACO,CACf,CACJ,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,cAAc,kBAyCzB;AAEF,MAAM,WAAW,GAIZ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"InspectorPanel.js","sourceRoot":"","sources":["../../src/components/InspectorPanel.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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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -54,6 +54,15 @@ export interface StudioContextValue {
|
|
|
54
54
|
/** Current undo/redo stack depths, updated by server ACKs. */
|
|
55
55
|
canUndo: boolean;
|
|
56
56
|
canRedo: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Preview mode: true while the current selection has unsaved edits
|
|
59
|
+
* held in the server's preview buffer. Commit (✓) consolidates
|
|
60
|
+
* them into a single undo entry; cancel (↺) restores the file to
|
|
61
|
+
* its state at the moment the component was selected.
|
|
62
|
+
*/
|
|
63
|
+
hasPendingPreview: boolean;
|
|
64
|
+
commitPreview: () => void;
|
|
65
|
+
cancelPreview: () => void;
|
|
57
66
|
}
|
|
58
67
|
/** WebSocket message protocol — discriminated union. */
|
|
59
68
|
export type StudioMessage = {
|
|
@@ -83,6 +92,15 @@ export type StudioMessage = {
|
|
|
83
92
|
undo: number;
|
|
84
93
|
redo: number;
|
|
85
94
|
};
|
|
95
|
+
} | {
|
|
96
|
+
type: 'BEGIN_PREVIEW';
|
|
97
|
+
payload: {
|
|
98
|
+
file: string;
|
|
99
|
+
};
|
|
100
|
+
} | {
|
|
101
|
+
type: 'COMMIT_PREVIEW';
|
|
102
|
+
} | {
|
|
103
|
+
type: 'CANCEL_PREVIEW';
|
|
86
104
|
} | {
|
|
87
105
|
type: 'PING';
|
|
88
106
|
} | {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;CAC1B;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,aAAa,GACb,WAAW,GACX,UAAU,CAAC;AAEf,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,eAAe,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3D,0DAA0D;IAC1D,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAC1E,wDAAwD;IACxD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,mCAAmC;IACnC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"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"}
|