@@ -85,6 +85,54 @@ function Playground() {
85
85
[ ] ,
86
86
) ;
87
87
88
+ const onChangeOverlay = useCallback (
89
+ async ( value : string | undefined , _ : editor . IModelContentChangedEvent ) => {
90
+ try {
91
+ setChangedLoading ( true ) ;
92
+ result . current = value || "" ;
93
+ const response = await ApplyOverlay (
94
+ original . current ,
95
+ result . current ,
96
+ true ,
97
+ ) ;
98
+ if ( response . type == "success" ) {
99
+ setApplyOverlayMode ( "original+overlay" ) ;
100
+ changed . current = response . result || "" ;
101
+ setError ( "" ) ;
102
+ setOverlayMarkers ( [ ] ) ;
103
+ const info = await GetInfo ( changed . current , false ) ;
104
+ tryHandlePageTitle ( JSON . parse ( info ) ) ;
105
+ } else if ( response . type == "incomplete" ) {
106
+ setApplyOverlayMode ( "jsonpathexplorer" ) ;
107
+ changed . current = response . result || "" ;
108
+ setError ( "" ) ;
109
+ setOverlayMarkers ( [ ] ) ;
110
+ } else if ( response . type == "error" ) {
111
+ setApplyOverlayMode ( "jsonpathexplorer" ) ;
112
+ setOverlayMarkers ( [
113
+ {
114
+ startLineNumber : response . line ,
115
+ endLineNumber : response . line ,
116
+ startColumn : response . col ,
117
+ endColumn : response . col + 1000 , // end of line
118
+ message : response . error ,
119
+ severity : MarkerSeverity . Error , // Use MarkerSeverity from Monaco
120
+ } ,
121
+ ] ) ;
122
+ }
123
+ } catch ( e : unknown ) {
124
+ if ( e instanceof Error ) {
125
+ setError ( e . message ) ;
126
+ }
127
+ } finally {
128
+ setChangedLoading ( false ) ;
129
+ }
130
+ } ,
131
+ [ ] ,
132
+ ) ;
133
+
134
+ const onChangeOverlayDebounced = useDebounceCallback ( onChangeOverlay , 500 ) ;
135
+
88
136
const getShareUrl = useCallback ( async ( ) => {
89
137
try {
90
138
setShareUrlLoading ( true ) ;
@@ -146,20 +194,7 @@ function Playground() {
146
194
original . current = decompressed . original ;
147
195
result . current = decompressed . result ;
148
196
149
- const changedNew = await ApplyOverlay (
150
- original . current ,
151
- result . current ,
152
- false ,
153
- ) ;
154
- if ( changedNew . type == "success" ) {
155
- const info = await GetInfo ( original . current , false ) ;
156
- const parsedInfo = JSON . parse ( info ) ;
157
- tryHandlePageTitle ( parsedInfo ) ;
158
- posthog . capture ( "overlay.speakeasy.com:load-shared" , {
159
- openapi : parsedInfo ,
160
- } ) ;
161
- changed . current = changedNew . result ;
162
- }
197
+ await onChangeOverlay ( result . current , { } as any ) ;
163
198
} catch ( error : any ) {
164
199
console . error ( "invalid share url:" , error . message ) ;
165
200
}
@@ -241,54 +276,6 @@ function Playground() {
241
276
242
277
const onChangeBDebounced = useDebounceCallback ( onChangeB , 500 ) ;
243
278
244
- const onChangeC = useCallback (
245
- async ( value : string | undefined , _ : editor . IModelContentChangedEvent ) => {
246
- try {
247
- setChangedLoading ( true ) ;
248
- result . current = value || "" ;
249
- const response = await ApplyOverlay (
250
- original . current ,
251
- result . current ,
252
- true ,
253
- ) ;
254
- if ( response . type == "success" ) {
255
- setApplyOverlayMode ( "original+overlay" ) ;
256
- changed . current = response . result || "" ;
257
- setError ( "" ) ;
258
- setOverlayMarkers ( [ ] ) ;
259
- const info = await GetInfo ( changed . current , false ) ;
260
- tryHandlePageTitle ( JSON . parse ( info ) ) ;
261
- } else if ( response . type == "incomplete" ) {
262
- setApplyOverlayMode ( "jsonpathexplorer" ) ;
263
- changed . current = response . result || "" ;
264
- setError ( "" ) ;
265
- setOverlayMarkers ( [ ] ) ;
266
- } else if ( response . type == "error" ) {
267
- setApplyOverlayMode ( "jsonpathexplorer" ) ;
268
- setOverlayMarkers ( [
269
- {
270
- startLineNumber : response . line ,
271
- endLineNumber : response . line ,
272
- startColumn : response . col ,
273
- endColumn : response . col + 1000 , // end of line
274
- message : response . error ,
275
- severity : MarkerSeverity . Error , // Use MarkerSeverity from Monaco
276
- } ,
277
- ] ) ;
278
- }
279
- } catch ( e : unknown ) {
280
- if ( e instanceof Error ) {
281
- setError ( e . message ) ;
282
- }
283
- } finally {
284
- setChangedLoading ( false ) ;
285
- }
286
- } ,
287
- [ ] ,
288
- ) ;
289
-
290
- const onChangeCDebounced = useDebounceCallback ( onChangeC , 500 ) ;
291
-
292
279
const ref = useRef < ImperativePanelGroupHandle > ( null ) ;
293
280
294
281
const maxLayout = useCallback ( ( index : number ) => {
@@ -460,7 +447,7 @@ function Playground() {
460
447
< Editor
461
448
readonly = { false }
462
449
value = { result . current }
463
- onChange = { onChangeCDebounced }
450
+ onChange = { onChangeOverlayDebounced }
464
451
loading = { resultLoading }
465
452
markers = { overlayMarkers }
466
453
title = { "Overlay" }
0 commit comments