mockaton 8.16.2 → 8.16.4
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/README.md +3 -3
- package/package.json +1 -1
- package/src/Dashboard.css +131 -114
- package/src/Dashboard.js +31 -28
package/README.md
CHANGED
|
@@ -29,9 +29,9 @@ Nonetheless, there’s a programmatic API, which is handy
|
|
|
29
29
|
for setting up tests (see **Commander API** section).
|
|
30
30
|
|
|
31
31
|
<picture>
|
|
32
|
-
<source media="(prefers-color-scheme: light)" srcset="pixaton-tests/macos/pic-for-readme.
|
|
33
|
-
<source media="(prefers-color-scheme: dark)" srcset="pixaton-tests/macos/pic-for-readme.
|
|
34
|
-
<img alt="Mockaton Dashboard" src="pixaton-tests/macos/pic-for-readme.
|
|
32
|
+
<source media="(prefers-color-scheme: light)" srcset="pixaton-tests/macos/pic-for-readme.vp962x800.light.gold.png">
|
|
33
|
+
<source media="(prefers-color-scheme: dark)" srcset="pixaton-tests/macos/pic-for-readme.vp962x800.dark.gold.png">
|
|
34
|
+
<img alt="Mockaton Dashboard" src="pixaton-tests/macos/pic-for-readme.vp962x800.light.gold.png">
|
|
35
35
|
</picture>
|
|
36
36
|
|
|
37
37
|
|
package/package.json
CHANGED
package/src/Dashboard.css
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--boxShadow1: 0 2px 1px -1px rgba(0, 0, 0, 0.15), 0 1px 1px 0 rgba(0, 0, 0, 0.15), 0 1px 3px 0 rgba(0, 0, 0, 0.1);
|
|
3
2
|
--radius: 4px;
|
|
4
|
-
--
|
|
3
|
+
--boxShadow1: 0 3px 1px -1px rgba(0, 0, 0, 0.04), 0 1px 1px 0 rgba(0, 0, 0, 0.1), 0 1px 3px 0 rgba(0, 0, 0, 0.1);
|
|
5
4
|
}
|
|
6
5
|
|
|
7
6
|
@media (prefers-color-scheme: light) {
|
|
@@ -12,9 +11,10 @@
|
|
|
12
11
|
--colorBackground: #fff;
|
|
13
12
|
--colorComboBoxHeaderBackground: #fff;
|
|
14
13
|
--colorComboBoxBackground: #eee;
|
|
15
|
-
--colorHeaderBackground: #
|
|
16
|
-
--colorSecondaryButtonBackground: #
|
|
17
|
-
--
|
|
14
|
+
--colorHeaderBackground: #f0f0f0;
|
|
15
|
+
--colorSecondaryButtonBackground: #fcfcfc;
|
|
16
|
+
--colorSecondaryActionBorder: #ddd;
|
|
17
|
+
--colorSecondaryAction: #666;
|
|
18
18
|
--colorDisabledMockSelector: #444;
|
|
19
19
|
--colorHover: #dfefff;
|
|
20
20
|
--colorLabel: #444;
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
:root {
|
|
28
28
|
--color4xxBackground: #403630;
|
|
29
29
|
--colorAccent: #2495ff;
|
|
30
|
-
--colorBackground: #
|
|
30
|
+
--colorBackground: #181818;
|
|
31
31
|
--colorHeaderBackground: #111;
|
|
32
32
|
--colorComboBoxBackground: #2a2a2a;
|
|
33
33
|
--colorSecondaryButtonBackground: #2a2a2a;
|
|
34
|
+
--colorSecondaryActionBorder: #333;
|
|
34
35
|
--colorSecondaryAction: #999;
|
|
35
36
|
--colorComboBoxHeaderBackground: #222;
|
|
36
37
|
--colorDisabledMockSelector: #b9b9b9;
|
|
@@ -42,15 +43,22 @@
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
html,
|
|
46
|
+
html,
|
|
47
|
+
body {
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
height: 100%;
|
|
50
|
+
padding: 0;
|
|
46
51
|
margin: 0;
|
|
52
|
+
background: var(--colorHeaderBackground);
|
|
47
53
|
font-size: 12px;
|
|
48
54
|
}
|
|
49
55
|
body {
|
|
50
|
-
|
|
56
|
+
display: grid;
|
|
57
|
+
grid-template-rows: auto 1fr;
|
|
51
58
|
background: var(--colorBackground);
|
|
52
59
|
color: var(--colorText);
|
|
53
60
|
}
|
|
61
|
+
|
|
54
62
|
* {
|
|
55
63
|
box-sizing: border-box;
|
|
56
64
|
padding: 0;
|
|
@@ -59,6 +67,7 @@ body {
|
|
|
59
67
|
font-family: system-ui, sans-serif;
|
|
60
68
|
font-size: 100%;
|
|
61
69
|
outline: 0;
|
|
70
|
+
scrollbar-width: thin;
|
|
62
71
|
}
|
|
63
72
|
|
|
64
73
|
select, a, input, button, summary {
|
|
@@ -79,6 +88,7 @@ input[type=checkbox] ~ svg {
|
|
|
79
88
|
}
|
|
80
89
|
|
|
81
90
|
select {
|
|
91
|
+
border: 1px solid transparent;
|
|
82
92
|
font-size: 100%;
|
|
83
93
|
color: var(--colorText);
|
|
84
94
|
cursor: pointer;
|
|
@@ -86,38 +96,41 @@ select {
|
|
|
86
96
|
border-radius: var(--radius);
|
|
87
97
|
appearance: none;
|
|
88
98
|
background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23888888'><path d='M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z'/></svg>") no-repeat;
|
|
89
|
-
background-color: var(--colorComboBoxBackground);
|
|
90
99
|
background-size: 16px;
|
|
91
100
|
background-position: 100% center;
|
|
92
101
|
|
|
93
102
|
&:enabled {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
103
|
+
border-color: var(--colorSecondaryActionBorder);
|
|
104
|
+
background-color: var(--colorSecondaryButtonBackground);
|
|
105
|
+
&:hover {
|
|
106
|
+
border-color: var(--colorHover);
|
|
107
|
+
cursor: pointer;
|
|
108
|
+
background-color: var(--colorHover);
|
|
109
|
+
}
|
|
99
110
|
}
|
|
100
111
|
&:disabled {
|
|
101
112
|
cursor: not-allowed;
|
|
102
113
|
}
|
|
103
114
|
}
|
|
104
115
|
|
|
105
|
-
|
|
106
|
-
color: var(--colorRed);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.Header {
|
|
110
|
-
position: fixed;
|
|
111
|
-
z-index: 100;
|
|
112
|
-
top: 0;
|
|
113
|
-
left: 0;
|
|
116
|
+
header {
|
|
114
117
|
display: flex;
|
|
115
118
|
width: 100%;
|
|
116
|
-
align-items: flex-end;
|
|
117
119
|
padding: 16px;
|
|
118
120
|
background: var(--colorHeaderBackground);
|
|
119
121
|
box-shadow: var(--boxShadow1);
|
|
120
|
-
|
|
122
|
+
|
|
123
|
+
> div {
|
|
124
|
+
display: flex;
|
|
125
|
+
flex-wrap: wrap;
|
|
126
|
+
align-items: flex-end;
|
|
127
|
+
gap: 10px;
|
|
128
|
+
|
|
129
|
+
@media (max-width: 860px) {
|
|
130
|
+
max-width: 500px;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
121
134
|
|
|
122
135
|
img {
|
|
123
136
|
width: 130px;
|
|
@@ -151,11 +164,11 @@ select {
|
|
|
151
164
|
width: 100%;
|
|
152
165
|
height: 28px;
|
|
153
166
|
padding: 4px 8px;
|
|
167
|
+
border: 0;
|
|
154
168
|
border-right: 3px solid transparent;
|
|
155
169
|
margin-top: 4px;
|
|
156
170
|
color: var(--colorText);
|
|
157
171
|
font-size: 11px;
|
|
158
|
-
box-shadow: var(--boxShadow1);
|
|
159
172
|
background-color: var(--colorComboBoxHeaderBackground);
|
|
160
173
|
border-radius: var(--radius);
|
|
161
174
|
}
|
|
@@ -215,90 +228,76 @@ select {
|
|
|
215
228
|
color: var(--colorRed);
|
|
216
229
|
border-radius: 50px;
|
|
217
230
|
|
|
218
|
-
|
|
219
231
|
&:hover {
|
|
220
232
|
background: var(--colorRed);
|
|
221
233
|
color: white;
|
|
222
|
-
box-shadow: var(--boxShadow1);
|
|
223
234
|
}
|
|
224
235
|
}
|
|
225
236
|
}
|
|
226
237
|
|
|
227
238
|
|
|
228
|
-
|
|
229
|
-
display:
|
|
239
|
+
main {
|
|
240
|
+
display: grid;
|
|
241
|
+
min-height: 0;
|
|
242
|
+
grid-template-columns: min(820px) 1fr;
|
|
243
|
+
|
|
244
|
+
@media (max-width: 1160px) {
|
|
245
|
+
grid-template-columns: min(620px) 1fr;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@media (max-width: 960px) {
|
|
249
|
+
grid-template-columns: 100%;
|
|
250
|
+
grid-template-rows: 1fr 1fr;
|
|
251
|
+
|
|
252
|
+
.leftSide {
|
|
253
|
+
box-shadow: var(--boxShadow1);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.leftSide {
|
|
258
|
+
padding: 16px;
|
|
259
|
+
padding-bottom: 0;
|
|
260
|
+
overflow-y: auto;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.rightSide {
|
|
264
|
+
padding-top: 16px;
|
|
265
|
+
padding-left: 16px;
|
|
266
|
+
overflow-y: auto;
|
|
267
|
+
}
|
|
230
268
|
}
|
|
231
269
|
|
|
232
270
|
table {
|
|
233
271
|
border-collapse: collapse;
|
|
234
272
|
|
|
235
273
|
th {
|
|
236
|
-
padding-top: 20px;
|
|
237
274
|
padding-bottom: 2px;
|
|
238
|
-
padding-left:
|
|
275
|
+
padding-left: 110px;
|
|
239
276
|
text-align: left;
|
|
240
277
|
}
|
|
241
278
|
|
|
242
|
-
|
|
243
|
-
border-
|
|
279
|
+
tbody {
|
|
280
|
+
border-bottom: 20px solid transparent;
|
|
244
281
|
}
|
|
245
282
|
}
|
|
246
283
|
|
|
247
|
-
.
|
|
248
|
-
|
|
249
|
-
align-items: flex-start;
|
|
250
|
-
margin-top: 64px;
|
|
251
|
-
|
|
252
|
-
&.empty {
|
|
253
|
-
margin-top: 80px;
|
|
254
|
-
}
|
|
284
|
+
.empty {
|
|
285
|
+
margin-top: 80px;
|
|
255
286
|
}
|
|
256
287
|
|
|
257
288
|
|
|
258
|
-
.PayloadViewer {
|
|
259
|
-
position: sticky;
|
|
260
|
-
top: 62px;
|
|
261
|
-
width: 50%;
|
|
262
|
-
margin-top: 62px;
|
|
263
|
-
margin-left: 20px;
|
|
264
|
-
|
|
265
|
-
h2 {
|
|
266
|
-
padding-top: 20px;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
pre {
|
|
270
|
-
overflow: auto;
|
|
271
|
-
max-height: calc(100vh - 72px);
|
|
272
|
-
padding-top: 12px;
|
|
273
|
-
|
|
274
|
-
code {
|
|
275
|
-
white-space: pre;
|
|
276
|
-
tab-size: 2;
|
|
277
|
-
font-family: monospace;
|
|
278
|
-
|
|
279
|
-
* {
|
|
280
|
-
font-family: monospace;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
|
|
286
289
|
.PreviewLink {
|
|
287
290
|
position: relative;
|
|
288
|
-
left: -
|
|
291
|
+
left: -8px;
|
|
289
292
|
display: inline-block;
|
|
290
|
-
width:
|
|
291
|
-
padding: 8px
|
|
293
|
+
width: 100%;
|
|
294
|
+
padding: 8px;
|
|
295
|
+
margin-left: 4px;
|
|
292
296
|
border-radius: var(--radius);
|
|
293
297
|
color: var(--colorAccent);
|
|
294
298
|
text-decoration: none;
|
|
295
299
|
word-break: break-word;
|
|
296
300
|
|
|
297
|
-
span {
|
|
298
|
-
opacity: 0.6;
|
|
299
|
-
filter: saturate(0);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
301
|
&:hover {
|
|
303
302
|
background: var(--colorHover);
|
|
304
303
|
}
|
|
@@ -309,11 +308,10 @@ table {
|
|
|
309
308
|
}
|
|
310
309
|
|
|
311
310
|
.MockSelector {
|
|
312
|
-
width:
|
|
313
|
-
height:
|
|
311
|
+
width: 100%;
|
|
312
|
+
height: 26px;
|
|
314
313
|
padding-right: 5px;
|
|
315
314
|
padding-left: 16px;
|
|
316
|
-
border: 0;
|
|
317
315
|
text-align: right;
|
|
318
316
|
direction: rtl;
|
|
319
317
|
text-overflow: ellipsis;
|
|
@@ -329,6 +327,7 @@ table {
|
|
|
329
327
|
}
|
|
330
328
|
&:disabled {
|
|
331
329
|
padding-right: 4px;
|
|
330
|
+
border-color: transparent;
|
|
332
331
|
appearance: none;
|
|
333
332
|
background: transparent;
|
|
334
333
|
cursor: default;
|
|
@@ -363,33 +362,32 @@ table {
|
|
|
363
362
|
margin-left: 8px;
|
|
364
363
|
> input {
|
|
365
364
|
&:checked ~ svg {
|
|
365
|
+
border-color: var(--colorAccent);
|
|
366
366
|
fill: var(--colorAccent);
|
|
367
367
|
background: var(--colorAccent);
|
|
368
368
|
stroke: var(--colorBackground);
|
|
369
369
|
}
|
|
370
370
|
|
|
371
371
|
&:enabled:hover:not(:checked) ~ svg {
|
|
372
|
-
border-color: var(--
|
|
372
|
+
border-color: var(--colorHover);
|
|
373
373
|
background: var(--colorHover);
|
|
374
374
|
stroke: var(--colorText);
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
|
|
378
378
|
> svg {
|
|
379
|
-
width:
|
|
380
|
-
height:
|
|
379
|
+
width: 22px;
|
|
380
|
+
height: 22px;
|
|
381
|
+
border: 1px solid var(--colorSecondaryActionBorder);
|
|
381
382
|
stroke-width: 2.5px;
|
|
382
383
|
border-radius: 50%;
|
|
383
|
-
background: var(--colorSecondaryButtonBackground);
|
|
384
|
-
box-shadow: var(--boxShadow1);
|
|
385
384
|
}
|
|
386
385
|
}
|
|
387
386
|
|
|
388
387
|
.ProxyToggler {
|
|
389
388
|
padding: 1px 3px;
|
|
390
|
-
|
|
391
|
-
border-radius: var(--
|
|
392
|
-
box-shadow: var(--boxShadow1);
|
|
389
|
+
border: 1px solid var(--colorSecondaryActionBorder);
|
|
390
|
+
border-radius: var(--radius);
|
|
393
391
|
|
|
394
392
|
&:has(input:checked),
|
|
395
393
|
&:has(input:disabled) {
|
|
@@ -414,7 +412,7 @@ table {
|
|
|
414
412
|
}
|
|
415
413
|
|
|
416
414
|
&:disabled ~ svg {
|
|
417
|
-
stroke-opacity: 0.
|
|
415
|
+
stroke-opacity: 0.4;
|
|
418
416
|
cursor: not-allowed;
|
|
419
417
|
box-shadow: none;
|
|
420
418
|
fill: transparent;
|
|
@@ -430,7 +428,7 @@ table {
|
|
|
430
428
|
width: 18px;
|
|
431
429
|
height: 18px;
|
|
432
430
|
stroke-width: 2px;
|
|
433
|
-
border-radius: var(--
|
|
431
|
+
border-radius: var(--radius);
|
|
434
432
|
}
|
|
435
433
|
}
|
|
436
434
|
|
|
@@ -452,6 +450,7 @@ table {
|
|
|
452
450
|
}
|
|
453
451
|
|
|
454
452
|
&:checked ~ span {
|
|
453
|
+
border-color: var(--colorRed);
|
|
455
454
|
color: white;
|
|
456
455
|
background: var(--colorRed);
|
|
457
456
|
}
|
|
@@ -459,20 +458,52 @@ table {
|
|
|
459
458
|
|
|
460
459
|
> span {
|
|
461
460
|
padding: 4px;
|
|
461
|
+
border: 1px solid var(--colorSecondaryActionBorder);
|
|
462
462
|
font-size: 10px;
|
|
463
463
|
font-weight: bold;
|
|
464
464
|
color: var(--colorSecondaryAction);
|
|
465
|
-
border-radius: var(--
|
|
466
|
-
background: var(--colorSecondaryButtonBackground);
|
|
467
|
-
box-shadow: var(--boxShadow1);
|
|
465
|
+
border-radius: var(--radius);
|
|
468
466
|
|
|
469
467
|
&:hover {
|
|
468
|
+
border-color: var(--colorLightRed);
|
|
470
469
|
background: var(--colorLightRed);
|
|
471
470
|
color: var(--colorRed);
|
|
472
471
|
}
|
|
473
472
|
}
|
|
474
473
|
}
|
|
475
474
|
|
|
475
|
+
|
|
476
|
+
.StaticFilesList {
|
|
477
|
+
a {
|
|
478
|
+
display: inline-block;
|
|
479
|
+
padding: 6px 0;
|
|
480
|
+
border-radius: var(--radius);
|
|
481
|
+
color: var(--colorAccent);
|
|
482
|
+
text-decoration: none;
|
|
483
|
+
|
|
484
|
+
&:hover {
|
|
485
|
+
text-decoration: underline;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
.PayloadViewer {
|
|
492
|
+
pre {
|
|
493
|
+
padding-top: 12px;
|
|
494
|
+
|
|
495
|
+
code {
|
|
496
|
+
white-space: pre;
|
|
497
|
+
tab-size: 2;
|
|
498
|
+
font-family: monospace;
|
|
499
|
+
|
|
500
|
+
* {
|
|
501
|
+
font-family: monospace;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
|
|
476
507
|
.SpinnerClock {
|
|
477
508
|
display: flex;
|
|
478
509
|
width: 36px;
|
|
@@ -499,26 +530,13 @@ table {
|
|
|
499
530
|
}
|
|
500
531
|
}
|
|
501
532
|
|
|
533
|
+
.red {
|
|
534
|
+
color: var(--colorRed);
|
|
535
|
+
}
|
|
502
536
|
|
|
503
|
-
.
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
a {
|
|
507
|
-
display: inline-block;
|
|
508
|
-
padding: 6px 0;
|
|
509
|
-
border-radius: var(--radius);
|
|
510
|
-
color: var(--colorAccent);
|
|
511
|
-
text-decoration: none;
|
|
512
|
-
|
|
513
|
-
&:hover {
|
|
514
|
-
text-decoration: underline;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
span {
|
|
518
|
-
opacity: 0.6;
|
|
519
|
-
filter: saturate(0);
|
|
520
|
-
}
|
|
521
|
-
}
|
|
537
|
+
.dittoDir {
|
|
538
|
+
opacity: 0.9;
|
|
539
|
+
filter: saturate(0);
|
|
522
540
|
}
|
|
523
541
|
|
|
524
542
|
|
|
@@ -526,7 +544,6 @@ table {
|
|
|
526
544
|
* Prism
|
|
527
545
|
*/
|
|
528
546
|
|
|
529
|
-
|
|
530
547
|
@media (prefers-color-scheme: dark) {
|
|
531
548
|
.token.cdata, .token.comment, .token.doctype, .token.prolog {
|
|
532
549
|
color: #8292a2
|
package/src/Dashboard.js
CHANGED
|
@@ -24,15 +24,16 @@ const Strings = {
|
|
|
24
24
|
fallback_server_placeholder: 'Type Server Address',
|
|
25
25
|
got: 'Got',
|
|
26
26
|
internal_server_error: 'Internal Server Error',
|
|
27
|
-
mock: 'Mock',
|
|
28
27
|
no_mocks_found: 'No mocks found',
|
|
29
28
|
not_found: 'Not Found',
|
|
30
29
|
pick_comment: 'Pick Comment…',
|
|
30
|
+
preview: 'Preview',
|
|
31
31
|
proxied: 'Proxied',
|
|
32
32
|
proxy_toggler: 'Proxy Toggler',
|
|
33
33
|
reset: 'Reset',
|
|
34
34
|
save_proxied: 'Save Mocks',
|
|
35
|
-
static_get: 'Static GET'
|
|
35
|
+
static_get: 'Static GET',
|
|
36
|
+
title: 'Mockaton'
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
const CSS = {
|
|
@@ -41,9 +42,9 @@ const CSS = {
|
|
|
41
42
|
FallbackBackend: 'FallbackBackend',
|
|
42
43
|
Field: 'Field',
|
|
43
44
|
GlobalDelayField: 'GlobalDelayField',
|
|
44
|
-
Header: 'Header',
|
|
45
45
|
InternalServerErrorToggler: 'InternalServerErrorToggler',
|
|
46
|
-
|
|
46
|
+
MainLeftSide: 'leftSide',
|
|
47
|
+
MainRightSide: 'rightSide',
|
|
47
48
|
MockList: 'MockList',
|
|
48
49
|
MockSelector: 'MockSelector',
|
|
49
50
|
NotFoundToggler: 'NotFoundToggler',
|
|
@@ -57,11 +58,12 @@ const CSS = {
|
|
|
57
58
|
SpinnerClockMinuteHand: 'MinuteHand',
|
|
58
59
|
StaticFilesList: 'StaticFilesList',
|
|
59
60
|
|
|
60
|
-
red: 'red',
|
|
61
|
-
empty: 'empty',
|
|
62
61
|
chosen: 'chosen',
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
dittoDir: 'dittoDir',
|
|
63
|
+
empty: 'empty',
|
|
64
|
+
nonDefault: 'nonDefault',
|
|
65
|
+
red: 'red',
|
|
66
|
+
status4xx: 'status4xx'
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
const r = createElement
|
|
@@ -83,20 +85,20 @@ function init() {
|
|
|
83
85
|
mockaton.getProxyFallback(),
|
|
84
86
|
mockaton.listStaticFiles()
|
|
85
87
|
].map(api => api.then(response => response.ok && response.json())))
|
|
86
|
-
.then(data => document.body.replaceChildren(App(data)))
|
|
88
|
+
.then(data => document.body.replaceChildren(...App(data)))
|
|
87
89
|
.catch(onError)
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
function App([brokersByMethod, cookies, comments, delay, collectProxied, fallbackAddress, staticBrokers]) {
|
|
91
93
|
globalDelay = delay
|
|
92
|
-
return
|
|
93
|
-
r(
|
|
94
|
-
|
|
95
|
-
r('
|
|
96
|
-
r(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
r(PayloadViewer)))
|
|
94
|
+
return [
|
|
95
|
+
r(Header, { cookies, comments, delay, fallbackAddress, collectProxied }),
|
|
96
|
+
r('main', null,
|
|
97
|
+
r('div', { className: CSS.MainLeftSide },
|
|
98
|
+
r(MockList, { brokersByMethod, canProxy: Boolean(fallbackAddress) }),
|
|
99
|
+
r(StaticFilesList, { brokers: staticBrokers })),
|
|
100
|
+
r('div', { className: CSS.MainRightSide },
|
|
101
|
+
r(PayloadViewer)))]
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
|
|
@@ -104,13 +106,14 @@ function App([brokersByMethod, cookies, comments, delay, collectProxied, fallbac
|
|
|
104
106
|
|
|
105
107
|
function Header({ cookies, comments, delay, fallbackAddress, collectProxied }) {
|
|
106
108
|
return (
|
|
107
|
-
r('
|
|
109
|
+
r('header', null,
|
|
108
110
|
r(Logo),
|
|
109
|
-
r(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
r('div', null,
|
|
112
|
+
r(CookieSelector, { cookies }),
|
|
113
|
+
r(BulkSelector, { comments }),
|
|
114
|
+
r(GlobalDelayField, { delay }),
|
|
115
|
+
r(ProxyFallbackField, { fallbackAddress, collectProxied }),
|
|
116
|
+
r(ResetButton))))
|
|
114
117
|
}
|
|
115
118
|
|
|
116
119
|
function Logo() {
|
|
@@ -249,10 +252,10 @@ function MockList({ brokersByMethod, canProxy }) {
|
|
|
249
252
|
const hasMocks = Object.keys(brokersByMethod).length
|
|
250
253
|
if (!hasMocks)
|
|
251
254
|
return (
|
|
252
|
-
r('div', { className:
|
|
255
|
+
r('div', { className: CSS.empty },
|
|
253
256
|
Strings.no_mocks_found))
|
|
254
257
|
return (
|
|
255
|
-
r('div',
|
|
258
|
+
r('div', null,
|
|
256
259
|
r('table', null, Object.entries(brokersByMethod).map(([method, brokers]) =>
|
|
257
260
|
r(SectionByMethod, { method, brokers, canProxy })))))
|
|
258
261
|
}
|
|
@@ -296,7 +299,7 @@ function PreviewLink({ method, urlMask, urlMaskDittoed }) {
|
|
|
296
299
|
href: urlMask,
|
|
297
300
|
onClick
|
|
298
301
|
}, ditto
|
|
299
|
-
? [r('span',
|
|
302
|
+
? [r('span', { className: CSS.dittoDir }, ditto), tail]
|
|
300
303
|
: tail))
|
|
301
304
|
}
|
|
302
305
|
|
|
@@ -414,7 +417,7 @@ function StaticFilesList({ brokers }) {
|
|
|
414
417
|
if (!Object.keys(brokers).length)
|
|
415
418
|
return null
|
|
416
419
|
const dp = dittoSplitPaths(Object.keys(brokers)).map(([ditto, tail]) => ditto
|
|
417
|
-
? [r('span',
|
|
420
|
+
? [r('span', { className: CSS.dittoDir }, ditto), tail]
|
|
418
421
|
: tail)
|
|
419
422
|
return (
|
|
420
423
|
r('table', { className: CSS.StaticFilesList },
|
|
@@ -493,7 +496,7 @@ const payloadViewerRef = useRef()
|
|
|
493
496
|
function PayloadViewer() {
|
|
494
497
|
return (
|
|
495
498
|
r('div', { className: CSS.PayloadViewer },
|
|
496
|
-
r('h2', { ref: payloadViewerTitleRef }, Strings.
|
|
499
|
+
r('h2', { ref: payloadViewerTitleRef }, Strings.preview),
|
|
497
500
|
r('pre', null,
|
|
498
501
|
r('code', { ref: payloadViewerRef }, Strings.click_link_to_preview))))
|
|
499
502
|
}
|