extractify.zip/components/text-editor.vue
2024-11-04 09:44:01 +03:00
Ask

41 lines
920 B
Vue

{6ec77837018035c374da07a15c19932409a77951 true 920 text-editor.vue 0xc001b29e30}

<script lang="ts" setup>
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'
import { ref, onMounted } from 'vue'
import { FilesManager } from '~/composables/files-manager';
// @ts-ignore
import { iFile } from '~/composables/worker/7zip-manager';
interface Props {
file: iFile,
filesManager: FilesManager
}
const editor = ref()
let { file, filesManager } = defineProps<Props>()
// files manager
onMounted(async () => {
const darkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
let fileContent = await filesManager.getFileContent(file.path);
monaco.editor.create(editor.value, {
value: fileContent?.toString()!,
language: file.extension,
readOnly: true,
theme: darkMode ? 'vs-dark' : 'vs-light'
})
})
</script>
<template>
<div id="editor" ref="editor"></div>
</template>
<style scoped>
#editor {
width: 100vw;
height: calc(100vh - 120px);
}
</style>