File tree 4 files changed +10
-5
lines changed
frameworks/svelte-webpack5/templates
4 files changed +10
-5
lines changed Original file line number Diff line number Diff line change 1
1
<script >
2
2
import { onMount } from ' svelte' ;
3
+ export let svelteVersion;
3
4
export let decorator;
4
5
export let decoratorProps = {};
5
6
export let component;
14
15
return instance || decoratorInstance;
15
16
}
16
17
17
- if (on) {
18
+ if (on && svelteVersion < 5 ) {
18
19
// Attach svelte event listeners.
19
20
Object .keys (on).forEach ((eventName ) => {
20
21
onMount (() => getInstance ().$on (eventName, on[eventName]));
Original file line number Diff line number Diff line change 2
2
import SlotDecorator from ' ./SlotDecorator.svelte' ;
3
3
import { dedent } from ' ts-dedent' ;
4
4
5
+ export let svelteVersion;
5
6
export let name;
6
7
export let title;
7
8
export let storyFn;
55
56
}
56
57
</script >
57
58
58
- <SlotDecorator {Component } {props } on ={{ ... eventsFromArgTypes , ... on }} />
59
+ <SlotDecorator {svelteVersion } { Component } {props } on ={{ ... eventsFromArgTypes , ... on }} />
Original file line number Diff line number Diff line change 1
1
<script >
2
2
import { onMount } from ' svelte' ;
3
3
4
+ export let svelteVersion;
4
5
export let decorator = undefined ;
5
6
export let Component;
6
7
export let props = {};
9
10
let instance;
10
11
let decoratorInstance;
11
12
12
- if (on) {
13
+ if (on && svelteVersion < 5 ) {
13
14
// Attach Svelte event listeners in Svelte v4
14
15
// In Svelte v5 this is not possible anymore as instances are no longer classes with $on() properties, so it will be a no-op
15
- onMount (() => {
16
+ onMount (() => {
16
17
Object .entries (on).forEach (([eventName , eventCallback ]) => {
17
18
// instance can be undefined if a decorator doesn't have <slot/>
18
19
const inst = instance ?? decoratorInstance;
19
20
inst? .$on ? .(eventName, eventCallback)
20
21
});
21
- });
22
+ });
22
23
}
23
24
< / script>
24
25
Original file line number Diff line number Diff line change @@ -77,6 +77,7 @@ function renderToCanvasV4(
77
77
const mountedComponent = new PreviewRender ( {
78
78
target : canvasElement ,
79
79
props : {
80
+ svelteVersion : 4 ,
80
81
storyFn,
81
82
storyContext,
82
83
name,
@@ -148,6 +149,7 @@ function renderToCanvasV5(
148
149
name,
149
150
title,
150
151
showError,
152
+ svelteVersion : 5 ,
151
153
} ) ;
152
154
const mountedComponent = svelte . mount ( PreviewRender , {
153
155
target : canvasElement ,
You can’t perform that action at this time.
0 commit comments