mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-04 21:22:07 +00:00
## Summary Merges latest changes from `main` as of 10-06-2025. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5965-Merge-main-as-of-10-06-2025-into-rh-test-2856d73d3650812cb95fd8917278a770) by [Unito](https://www.unito.io) --------- Signed-off-by: Marcel Petrick <mail@marcelpetrick.it> Co-authored-by: filtered <176114999+webfiltered@users.noreply.github.com> Co-authored-by: Christian Byrne <cbyrne@comfy.org> Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Alexander Brown <drjkl@comfy.org> Co-authored-by: Benjamin Lu <benceruleanlu@proton.me> Co-authored-by: Terry Jia <terryjia88@gmail.com> Co-authored-by: snomiao <snomiao@gmail.com> Co-authored-by: Simula_r <18093452+simula-r@users.noreply.github.com> Co-authored-by: Jake Schroeder <jake.schroeder@isophex.com> Co-authored-by: Comfy Org PR Bot <snomiao+comfy-pr@gmail.com> Co-authored-by: AustinMroz <4284322+AustinMroz@users.noreply.github.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com> Co-authored-by: Marcel Petrick <mail@marcelpetrick.it> Co-authored-by: Alexander Brown <DrJKL0424@gmail.com> Co-authored-by: Benjamin Lu <benjaminlu1107@gmail.com> Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com> Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe> Co-authored-by: JakeSchroeder <jake@axiom.co> Co-authored-by: AustinMroz <austin@comfy.org> Co-authored-by: DrJKL <DrJKL@users.noreply.github.com> Co-authored-by: ComfyUI Wiki <contact@comfyui-wiki.com>
63 lines
1.7 KiB
Vue
63 lines
1.7 KiB
Vue
<template>
|
|
<Drawer
|
|
v-model:visible="terminalVisible"
|
|
:header
|
|
position="bottom"
|
|
style="height: max(50vh, 34rem)"
|
|
>
|
|
<BaseTerminal @created="terminalCreated" @unmounted="terminalUnmounted" />
|
|
</Drawer>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import type { Terminal } from '@xterm/xterm'
|
|
import Drawer from 'primevue/drawer'
|
|
import type { Ref } from 'vue'
|
|
import { onMounted } from 'vue'
|
|
|
|
import BaseTerminal from '@/components/bottomPanel/tabs/terminal/BaseTerminal.vue'
|
|
import type { useTerminal } from '@/composables/bottomPanelTabs/useTerminal'
|
|
import { useTerminalBuffer } from '@/composables/bottomPanelTabs/useTerminalBuffer'
|
|
import { electronAPI } from '@/utils/envUtil'
|
|
|
|
// Model
|
|
const terminalVisible = defineModel<boolean>({ required: true })
|
|
const props = defineProps<{
|
|
header: string
|
|
defaultMessage: string
|
|
}>()
|
|
|
|
const electron = electronAPI()
|
|
|
|
/** The actual output of all terminal commands - not rendered */
|
|
const buffer = useTerminalBuffer()
|
|
let xterm: Terminal | null = null
|
|
|
|
// Created and destroyed with the Drawer - contents copied from hidden buffer
|
|
const terminalCreated = (
|
|
{ terminal, useAutoSize }: ReturnType<typeof useTerminal>,
|
|
root: Ref<HTMLElement | undefined>
|
|
) => {
|
|
xterm = terminal
|
|
useAutoSize({ root, autoRows: true, autoCols: true })
|
|
terminal.write(props.defaultMessage)
|
|
buffer.copyTo(terminal)
|
|
|
|
terminal.options.cursorBlink = false
|
|
terminal.options.cursorStyle = 'bar'
|
|
terminal.options.cursorInactiveStyle = 'bar'
|
|
terminal.options.disableStdin = true
|
|
}
|
|
|
|
const terminalUnmounted = () => {
|
|
xterm = null
|
|
}
|
|
|
|
onMounted(async () => {
|
|
electron.onLogMessage((message: string) => {
|
|
buffer.write(message)
|
|
xterm?.write(message)
|
|
})
|
|
})
|
|
</script>
|