forked from sveltejs/svelte
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.svelte
37 lines (28 loc) · 889 Bytes
/
main.svelte
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<script>
import { beforeUpdate } from 'svelte';
import Editor from './Editor.svelte';
import ComponentSelector from './ComponentSelector.svelte';
export let components;
export let selectedComponent;
export let compiled;
let previouslySelectedComponent;
beforeUpdate(() => {
components.forEach(component => {
if (component === selectedComponent) return;
component.compiled = component.source.toUpperCase();
});
if (selectedComponent !== previouslySelectedComponent) {
selectedComponent.compiled = selectedComponent.source.toUpperCase();
updateBundle();
previouslySelectedComponent = selectedComponent;
}
});
function updateBundle() {
compiled = components.map(component => component.compiled).join('\n');
}
</script>
<ComponentSelector {components} bind:selectedComponent/>
<Editor bind:code={selectedComponent.source} />
<pre>
{compiled}
</pre>