File tree Expand file tree Collapse file tree 2 files changed +56
-0
lines changed
packages/svelte/tests/runtime-runes/samples/transition-each-3 Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { flushSync } from '../../../../src/index-client.js' ;
2
+ import { test } from '../../test' ;
3
+
4
+ export default test ( {
5
+ async test ( { assert, raf, target } ) {
6
+ const btn1 = target . querySelector ( 'button' ) ;
7
+
8
+ btn1 ?. click ( ) ;
9
+
10
+ assert . htmlEqual (
11
+ target . innerHTML ,
12
+ '<button>Toggle</button><div><div>1</div><div>2</div><div>3</div></div>'
13
+ ) ;
14
+
15
+ flushSync ( ) ;
16
+ raf . tick ( 50 ) ;
17
+
18
+ assert . htmlEqual (
19
+ target . innerHTML ,
20
+ '<button>Toggle</button><div style="overflow: hidden; opacity: 0;"><div>1</div><div>2</div><div>3</div></div>'
21
+ ) ;
22
+
23
+ await Promise . resolve ( ) ;
24
+
25
+ flushSync ( ) ;
26
+ raf . tick ( 500 ) ;
27
+
28
+ assert . htmlEqual (
29
+ target . innerHTML ,
30
+ '<button>Toggle</button><div style=""><div>3</div><div>4</div></div>'
31
+ ) ;
32
+ }
33
+ } ) ;
Original file line number Diff line number Diff line change
1
+ <script >
2
+ import { slide } from ' svelte/transition' ;
3
+
4
+ let toggle = $state (true );
5
+ let items = $state ([ 1 , 2 , 3 ]);
6
+
7
+ const handle_toggle = async () => {
8
+ toggle = false ;
9
+ await Promise .resolve ();
10
+ items = [3 , 4 ];
11
+ toggle = true ;
12
+ };
13
+ </script >
14
+
15
+ <button onclick ={handle_toggle }>Toggle</button >
16
+
17
+ {#if toggle }
18
+ <div transition:slide ={{ duration : 500 }}>
19
+ {#each items as item (item )}
20
+ <div >{item }</div >
21
+ {/each }
22
+ </div >
23
+ {/if }
You can’t perform that action at this time.
0 commit comments