Skip to content

Commit c647c56

Browse files
authored
Merge pull request #7637 from QwikDev/v2-dont-wrap-static-objects
fix: don't wrap static objects with signal
2 parents e38fff6 + 6dbd58f commit c647c56

File tree

9 files changed

+54
-80
lines changed

9 files changed

+54
-80
lines changed

.changeset/olive-yaks-prove.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@qwik.dev/core': patch
3+
---
4+
5+
fix: don't wrap static objects with signal

packages/qwik/src/core/reactive-primitives/internal-api.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ export const _wrapProp = <T extends Record<any, any>, P extends keyof T>(...args
5656
return wrappedValue;
5757
}
5858
}
59-
// We need to forward the access to the original object
60-
return getWrapped(args);
59+
// the object is not reactive, so we can just return the value
60+
return obj[prop];
6161
};
6262

6363
/** @internal */

packages/qwik/src/core/shared/shared-serialization.unit.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,8 @@ describe('shared-serialization', () => {
415415
`);
416416
});
417417
it(title(TypeIds.WrappedSignal), async () => {
418-
const propSignal = _wrapProp({ foo: 3 }, 'foo');
418+
const foo = createSignal(3);
419+
const propSignal = _wrapProp(foo, 'value');
419420
if (propSignal.value) {
420421
Math.random();
421422
}
@@ -437,18 +438,16 @@ describe('shared-serialization', () => {
437438
1 WrappedSignal [
438439
Number 1
439440
Array [
440-
Object [
441-
String "foo"
441+
Signal [
442442
Number 3
443443
]
444-
RootRef 2
444+
String "value"
445445
]
446446
Constant null
447447
Number 3
448448
Constant null
449449
]
450-
2 RootRef "1 1 0 0"
451-
(88 chars)"
450+
(74 chars)"
452451
`);
453452
});
454453
it(title(TypeIds.ComputedSignal), async () => {

packages/qwik/src/core/tests/component.spec.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -962,15 +962,15 @@ describe.each([
962962
<Component>
963963
<div>
964964
{'Child '}
965-
<Signal ssr-required>{'1'}</Signal>
965+
{'1'}
966966
{', active: '}
967967
<Signal ssr-required>{'false'}</Signal>
968968
</div>
969969
</Component>
970970
<Component>
971971
<div>
972972
{'Child '}
973-
<Signal ssr-required>{'2'}</Signal>
973+
{'2'}
974974
{', active: '}
975975
<Signal ssr-required>{'true'}</Signal>
976976
</div>
@@ -989,15 +989,15 @@ describe.each([
989989
<Component>
990990
<div>
991991
{'Child '}
992-
<Signal ssr-required>{'1'}</Signal>
992+
{'1'}
993993
{', active: '}
994994
<Signal ssr-required>{'true'}</Signal>
995995
</div>
996996
</Component>
997997
<Component>
998998
<div>
999999
{'Child '}
1000-
<Signal ssr-required>{'2'}</Signal>
1000+
{'2'}
10011001
{', active: '}
10021002
<Signal ssr-required>{'false'}</Signal>
10031003
</div>

packages/qwik/src/core/tests/inline-component.spec.tsx

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
Fragment,
44
Fragment as InlineComponent,
55
Fragment as Projection,
6-
Fragment as Signal,
76
Slot,
87
component$,
98
useSignal,
@@ -262,19 +261,13 @@ describe.each([
262261
<footer>
263262
<button></button>
264263
<InlineComponent>
265-
<div>
266-
<Signal ssr-required>qwik</Signal>
267-
</div>
264+
<div>qwik</div>
268265
</InlineComponent>
269266
<InlineComponent>
270-
<div>
271-
<Signal ssr-required>foo</Signal>
272-
</div>
267+
<div>foo</div>
273268
</InlineComponent>
274269
<InlineComponent>
275-
<div>
276-
<Signal ssr-required>bar</Signal>
277-
</div>
270+
<div>bar</div>
278271
</InlineComponent>
279272
</footer>
280273
</Component>
@@ -287,19 +280,13 @@ describe.each([
287280
<footer>
288281
<button></button>
289282
<InlineComponent>
290-
<div>
291-
<Signal ssr-required>bar</Signal>
292-
</div>
283+
<div>bar</div>
293284
</InlineComponent>
294285
<InlineComponent>
295-
<div>
296-
<Signal ssr-required>foo</Signal>
297-
</div>
286+
<div>foo</div>
298287
</InlineComponent>
299288
<InlineComponent>
300-
<div>
301-
<Signal ssr-required>qwik</Signal>
302-
</div>
289+
<div>qwik</div>
303290
</InlineComponent>
304291
</footer>
305292
</Component>
@@ -566,7 +553,7 @@ describe.each([
566553
<InlineComponent>
567554
<Component>
568555
<div>
569-
<Signal>aaa</Signal>
556+
aaa
570557
{': '}
571558
<Projection>
572559
<div>
@@ -620,12 +607,12 @@ describe.each([
620607
<InlineComponent>
621608
<Component>
622609
<div>
623-
<Signal>{'bar'}</Signal>
610+
{'bar'}
624611
{': '}
625612
<Projection>Test</Projection>
626613
<Component>
627614
<div>
628-
<Signal>{'bbb'}</Signal>
615+
{'bbb'}
629616
{': '}
630617
<Projection>Test2</Projection>
631618
</div>

packages/qwik/src/core/tests/projection.spec.tsx

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
Fragment as Component,
33
component$,
44
createContextId,
5-
Fragment as DerivedSignal,
5+
Fragment as WrappedSignal,
66
Fragment,
77
Fragment as InlineComponent,
88
jsx,
@@ -474,7 +474,7 @@ describe.each([
474474
<span>
475475
<Projection />
476476
{'('}
477-
<DerivedSignal>render-content</DerivedSignal>
477+
render-content
478478
{')'}
479479
</span>
480480
</InlineComponent>
@@ -491,7 +491,7 @@ describe.each([
491491
<span>
492492
<Projection>{'parent-content'}</Projection>
493493
{'('}
494-
<DerivedSignal>child-content</DerivedSignal>
494+
child-content
495495
{')'}
496496
</span>
497497
</InlineComponent>
@@ -831,7 +831,7 @@ describe.each([
831831
<Projection ssr-required>
832832
<Fragment ssr-required>
833833
{'DEFAULT '}
834-
<DerivedSignal ssr-required>{'0'}</DerivedSignal>
834+
<WrappedSignal ssr-required>{'0'}</WrappedSignal>
835835
</Fragment>
836836
</Projection>
837837
<Projection ssr-required>{render === ssrRenderToDom ? '' : null}</Projection>
@@ -842,14 +842,14 @@ describe.each([
842842
<Projection ssr-required>
843843
<span q:slot="start">
844844
{'START '}
845-
<DerivedSignal ssr-required>{'0'}</DerivedSignal>
845+
<WrappedSignal ssr-required>{'0'}</WrappedSignal>
846846
</span>
847847
</Projection>
848848
<Projection ssr-required>{render === ssrRenderToDom ? '' : null}</Projection>
849849
<Projection ssr-required>
850850
<span q:slot="end">
851851
{'END '}
852-
<DerivedSignal ssr-required>{'0'}</DerivedSignal>
852+
<WrappedSignal ssr-required>{'0'}</WrappedSignal>
853853
</span>
854854
</Projection>
855855
</div>
@@ -896,7 +896,7 @@ describe.each([
896896
<Projection ssr-required>
897897
<Fragment ssr-required>
898898
{'DEFAULT '}
899-
<DerivedSignal ssr-required>{'1'}</DerivedSignal>
899+
<WrappedSignal ssr-required>{'1'}</WrappedSignal>
900900
</Fragment>
901901
</Projection>
902902
<Projection ssr-required>{render === ssrRenderToDom ? '' : null}</Projection>
@@ -907,14 +907,14 @@ describe.each([
907907
<Projection ssr-required>
908908
<span q:slot="start">
909909
{'START '}
910-
<DerivedSignal ssr-required>{'1'}</DerivedSignal>
910+
<WrappedSignal ssr-required>{'1'}</WrappedSignal>
911911
</span>
912912
</Projection>
913913
<Projection ssr-required>{render === ssrRenderToDom ? '' : null}</Projection>
914914
<Projection ssr-required>
915915
<span q:slot="end">
916916
{'END '}
917-
<DerivedSignal ssr-required>{'1'}</DerivedSignal>
917+
<WrappedSignal ssr-required>{'1'}</WrappedSignal>
918918
</span>
919919
</Projection>
920920
</div>
@@ -1344,7 +1344,7 @@ describe.each([
13441344
<Component>
13451345
<span class="child">
13461346
<Projection>
1347-
<DerivedSignal>child-content</DerivedSignal>
1347+
<WrappedSignal>child-content</WrappedSignal>
13481348
</Projection>
13491349
</span>
13501350
</Component>
@@ -1359,7 +1359,7 @@ describe.each([
13591359
<Component>
13601360
<span class="child">
13611361
<Projection>
1362-
<DerivedSignal>{''}</DerivedSignal>
1362+
<WrappedSignal>{''}</WrappedSignal>
13631363
</Projection>
13641364
</span>
13651365
</Component>
@@ -1378,7 +1378,7 @@ describe.each([
13781378
<Component>
13791379
<span class="child">
13801380
<Projection>
1381-
<DerivedSignal>child-content</DerivedSignal>
1381+
<WrappedSignal>child-content</WrappedSignal>
13821382
</Projection>
13831383
</span>
13841384
</Component>
@@ -1439,7 +1439,7 @@ describe.each([
14391439
<Component>
14401440
<span class="child">
14411441
<Projection>
1442-
<DerivedSignal>{''}</DerivedSignal>
1442+
<WrappedSignal>{''}</WrappedSignal>
14431443
</Projection>
14441444
</span>
14451445
</Component>
@@ -1462,7 +1462,7 @@ describe.each([
14621462
<Component>
14631463
<span class="child">
14641464
<Projection>
1465-
<DerivedSignal>child-content</DerivedSignal>
1465+
<WrappedSignal>child-content</WrappedSignal>
14661466
</Projection>
14671467
</span>
14681468
</Component>
@@ -1480,7 +1480,7 @@ describe.each([
14801480
<Component>
14811481
<span class="child">
14821482
<Projection>
1483-
<DerivedSignal>{''}</DerivedSignal>
1483+
<WrappedSignal>{''}</WrappedSignal>
14841484
</Projection>
14851485
</span>
14861486
</Component>
@@ -1495,7 +1495,7 @@ describe.each([
14951495
<Component>
14961496
<span class="child">
14971497
<Projection>
1498-
<DerivedSignal>{'child-content'}</DerivedSignal>
1498+
<WrappedSignal>{'child-content'}</WrappedSignal>
14991499
</Projection>
15001500
</span>
15011501
</Component>
@@ -1525,7 +1525,7 @@ describe.each([
15251525
<Component>
15261526
<span class="child">
15271527
<Projection>
1528-
<DerivedSignal>child-content</DerivedSignal>
1528+
<WrappedSignal>child-content</WrappedSignal>
15291529
</Projection>
15301530
</span>
15311531
</Component>
@@ -2505,7 +2505,7 @@ describe.each([
25052505
<Component ssr-required>
25062506
<Projection ssr-required>
25072507
<div q:slot="a">
2508-
Alpha <DerivedSignal ssr-required>{'123'}</DerivedSignal>
2508+
Alpha <WrappedSignal ssr-required>{'123'}</WrappedSignal>
25092509
</div>
25102510
</Projection>
25112511
</Component>
@@ -2533,7 +2533,7 @@ describe.each([
25332533
<Component ssr-required>
25342534
<Projection ssr-required>
25352535
<div q:slot="b">
2536-
Bravo <DerivedSignal ssr-required>{'124'}</DerivedSignal>
2536+
Bravo <WrappedSignal ssr-required>{'124'}</WrappedSignal>
25372537
</div>
25382538
</Projection>
25392539
</Component>
@@ -2593,7 +2593,7 @@ describe.each([
25932593
<Projection ssr-required>
25942594
<div q:slot="b">
25952595
{'Bravo '}
2596-
<DerivedSignal ssr-required>1</DerivedSignal>
2596+
<WrappedSignal ssr-required>1</WrappedSignal>
25972597
</div>
25982598
</Projection>
25992599
</Component>

packages/qwik/src/core/tests/render-namespace.spec.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import {
55
useSignal,
66
Fragment as Component,
77
Fragment,
8-
Fragment as Signal,
98
type JSXOutput,
109
} from '@qwik.dev/core';
1110
import { HTML_NS, MATH_NS, QContainerAttr, SVG_NS } from '../shared/utils/markers';
@@ -206,9 +205,7 @@ describe.each([
206205
<Component ssr-required>
207206
<svg key="hi" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
208207
<circle cx="15" cy="15" r="50"></circle>
209-
<Signal ssr-required>
210-
<Fragment ssr-required></Fragment>
211-
</Signal>
208+
<Fragment ssr-required></Fragment>
212209
</svg>
213210
</Component>
214211
</button>
@@ -227,9 +224,7 @@ describe.each([
227224
<Component>
228225
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
229226
<circle cx="15" cy="15" r="50"></circle>
230-
<Signal>
231-
<line x1="0" y1="80" x2="100" y2="20" stroke="black" key="1"></line>
232-
</Signal>
227+
<line x1="0" y1="80" x2="100" y2="20" stroke="black" key="1"></line>
233228
</svg>
234229
</Component>
235230
</button>
@@ -254,9 +249,7 @@ describe.each([
254249
<Component>
255250
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
256251
<circle cx="15" cy="15" r="50"></circle>
257-
<Signal>
258-
<Fragment></Fragment>
259-
</Signal>
252+
<Fragment></Fragment>
260253
</svg>
261254
</Component>
262255
</button>

0 commit comments

Comments
 (0)