soiz1's picture
Upload folder using huggingface_hub
4d70170 verified
<script>
import { defineAsyncComponent, reactive, watch } from 'vue'
import { BridgeEvents } from '@vue-devtools/shared-utils'
import { useBridge } from '@front/features/bridge'
import { darkMode } from '@front/util/theme'
const CodeEditor = defineAsyncComponent(() => import(
/* webpackChunkName: "CodeEditor" */
'@front/features/code/CodeEditor.vue'
))
export default {
components: {
CodeEditor,
},
props: {
instanceId: {
type: String,
required: true,
},
},
emits: ['close'],
setup(props) {
const {
onBridge,
bridge,
} = useBridge()
const result = reactive({
code: '',
})
let pendingId
watch(() => props.instanceId, (value) => {
pendingId = value
bridge.send(BridgeEvents.TO_BACK_COMPONENT_RENDER_CODE, { instanceId: value })
}, { immediate: true })
onBridge(BridgeEvents.TO_FRONT_COMPONENT_RENDER_CODE, ({ instanceId, code }) => {
if (instanceId === pendingId) {
result.code = code
}
})
return {
result,
darkMode,
}
},
}
</script>
<template>
<div class="bg-white dark:bg-black flex flex-col overflow-hidden">
<div class="flex items-center px-2 py-1 space-x-2 flex-none">
<div class="flex-1">
Render code
</div>
<VueButton
class="icon-button flat flex-none"
icon-left="close"
@click="$emit('close')"
/>
</div>
<CodeEditor
v-model="result.code"
:options="{
readOnly: true,
minimap: {
enabled: false,
},
}"
:theme="darkMode ? 'github-dark' : 'github-light'"
language="javascript"
class="flex-1"
/>
</div>
</template>