diff --git a/src/Repl.vue b/src/Repl.vue index 341d6b56..aacc41c6 100644 --- a/src/Repl.vue +++ b/src/Repl.vue @@ -2,7 +2,7 @@ import SplitPane from './SplitPane.vue' import Output from './output/Output.vue' import { Store, ReplStore, SFCOptions } from './store' -import { provide, toRef } from 'vue' +import { provide, ref, toRef } from 'vue' import type { EditorComponentType } from './editor/types' import EditorContainer from './editor/EditorContainer.vue' @@ -47,6 +47,7 @@ if (!props.editor) { throw new Error('The "editor" prop is now required.') } +const outputRef = ref>() const { store } = props const sfcOptions = (store.options = props.sfcOptions || {}) if (!sfcOptions.script) { @@ -71,6 +72,15 @@ provide('autoresize', props.autoResize) provide('import-map', toRef(props, 'showImportMap')) provide('clear-console', toRef(props, 'clearConsole')) provide('preview-options', props.previewOptions) + +/** + * Reload the preview iframe + */ +function reload() { + outputRef.value?.reload() +} + +defineExpose({ reload })