|
12 | 12 | let currentContent = ''; |
13 | 13 | let code = ''; |
14 | 14 | let html = ''; |
15 | | - export let viewOnly = false; |
| 15 | + export let mode = 'normal'; |
16 | 16 | export let changedCode = () => {}; |
17 | 17 | export let files = []; |
18 | 18 | export let injectedLibraries = []; |
|
82 | 82 |
|
83 | 83 | } |
84 | 84 |
|
| 85 | + $: showEditor = (mode === 'normal' || mode === 'minimal') |
| 86 | + $: showTabs = (mode === 'normal' || mode === 'view') |
| 87 | + $: showFiles = (mode === 'normal' || mode === 'view') |
| 88 | +
|
85 | 89 | $: currentFile = files[currentFileIndex] |
86 | 90 |
|
87 | 91 | $: if(editor && currentFile) { |
|
129 | 133 |
|
130 | 134 | <div class="{cssStyles.container}" > |
131 | 135 | <div class="result-container {cssStyles.resultContainer}"> |
132 | | - {#if !viewOnly } |
133 | | - <div class:hidden="{viewOnly}" class="{cssStyles.editor}"> |
134 | | - <div class="{cssStyles.editorActions.container}"> |
135 | | - {#each files as { name }, i} |
136 | | - <div class="{cssStyles.editorActions.tabItem}"> |
137 | | - <a class:active="{currentFileIndex == i}" class="{cssStyles.editorActions.link}" on:click="{() => showFile(i)}">{name}</a> |
138 | | - </div> |
139 | | - {/each} |
140 | | - </div> |
| 136 | + {#if showEditor} |
| 137 | + <div class:hidden="{!showEditor}" class="{cssStyles.editor}"> |
| 138 | + {#if showFiles} |
| 139 | + <div class="{cssStyles.editorActions.container}"> |
| 140 | + {#each files as { name }, i} |
| 141 | + <div class="{cssStyles.editorActions.tabItem}"> |
| 142 | + <a class:active="{currentFileIndex == i}" class="{cssStyles.editorActions.link}" on:click="{() => showFile(i)}">{name}</a> |
| 143 | + </div> |
| 144 | + {/each} |
| 145 | + </div> |
| 146 | + {/if} |
141 | 147 | <Editor bind:this={editor} on:change={debounceChangeCode}/> |
142 | 148 | </div> |
143 | 149 | {/if} |
144 | | - <div class:view-only="{viewOnly}" class="{cssStyles.viewerContainer}"> |
145 | | - <div class="{cssStyles.viewerActions.container}"> |
146 | | - <div class="{cssStyles.viewerActions.tabItem}"> |
147 | | - <a class:active="{tab == 'viewer'}" class="{cssStyles.viewerActions.link}" on:click="{() => showResult()}">Result</a> |
148 | | - </div> |
149 | | - <div class="{cssStyles.viewerActions.tabItem}"> |
150 | | - <a class:active="{tab == 'console'}" class="{cssStyles.viewerActions.link}" on:click="{() => showConsole()}">Console</a> |
| 150 | + <div class:view-only="{!showEditor}" class="{cssStyles.viewerContainer}"> |
| 151 | + {#if showTabs} |
| 152 | + <div class="{cssStyles.viewerActions.container}"> |
| 153 | + <div class="{cssStyles.viewerActions.tabItem}"> |
| 154 | + <a class:active="{tab == 'viewer'}" class="{cssStyles.viewerActions.link}" on:click="{() => showResult()}">Result</a> |
| 155 | + </div> |
| 156 | + <div class="{cssStyles.viewerActions.tabItem}"> |
| 157 | + <a class:active="{tab == 'console'}" class="{cssStyles.viewerActions.link}" on:click="{() => showConsole()}">Console</a> |
| 158 | + </div> |
151 | 159 | </div> |
152 | | - </div> |
| 160 | + {/if} |
153 | 161 | <div class="{cssStyles.viewerConsoleContainer}"> |
154 | 162 | <div class:hidden="{tab != 'viewer'}" class="{cssStyles.viewer}"> |
155 | 163 | <Viewer bind:ready={ready} {code} {injectedLibraries} {html} {injectedJS} /> |
|
0 commit comments