Skip to content

Commit c1cd77a

Browse files
authored
feat: add layout reverse api #162 (#163)
1 parent 9ca27a1 commit c1cd77a

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/Repl.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import SplitPane from './SplitPane.vue'
33
import Output from './output/Output.vue'
44
import { Store, ReplStore, SFCOptions } from './store'
5-
import { provide, ref, toRef } from 'vue'
5+
import { provide, ref, toRef, computed } from 'vue'
66
import type { EditorComponentType } from './editor/types'
77
import EditorContainer from './editor/EditorContainer.vue'
88
@@ -17,6 +17,7 @@ export interface Props {
1717
clearConsole?: boolean
1818
sfcOptions?: SFCOptions
1919
layout?: 'horizontal' | 'vertical'
20+
layoutReverse?: boolean
2021
ssr?: boolean
2122
previewOptions?: {
2223
headHTML?: string
@@ -37,6 +38,7 @@ const props = withDefaults(defineProps<Props>(), {
3738
showImportMap: true,
3839
showTsConfig: true,
3940
clearConsole: true,
41+
layoutReverse: false,
4042
ssr: false,
4143
previewOptions: () => ({
4244
headHTML: '',
@@ -73,6 +75,9 @@ sfcOptions.script.fs = {
7375
7476
store.init()
7577
78+
const editorSlotName = computed(() => props.layoutReverse ? 'right' : 'left')
79+
const outputSlotName = computed(() => props.layoutReverse ? 'left' : 'right')
80+
7681
provide('store', store)
7782
provide('autoresize', props.autoResize)
7883
provide('import-map', toRef(props, 'showImportMap'))
@@ -93,10 +98,10 @@ defineExpose({ reload })
9398
<template>
9499
<div class="vue-repl">
95100
<SplitPane :layout="layout">
96-
<template #left>
101+
<template #[editorSlotName]>
97102
<EditorContainer :editorComponent="editor" />
98103
</template>
99-
<template #right>
104+
<template #[outputSlotName]>
100105
<Output
101106
ref="outputRef"
102107
:editorComponent="editor"

0 commit comments

Comments
 (0)