mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-01 22:09:55 +00:00
A major, full rewrite of linear mode, now under the name "Simple Mode". - Fixes widget styling - Adds a new simplified history - Adds support for non-image outputs - Supports right sidebar - Allows and panning on the output image preview - Provides support for drag and drop zones - Moves workflow notes into a popover. - Allows scrolling through outputs with Ctrl+scroll or arrow keys The primary means of accessing Simple Mode is a toggle button on the bottom right. This button is only shown if a feature flag is enabled, or the user has already seen linear mode during the current session. Simple Mode can also be accessed by - Using the toggle linear mode keybind - Loading a workflow that that was saved in Simple Mode workflow - Loading a template url with appropriate parameter <img width="1790" height="1387" alt="image" src="https://github.com/user-attachments/assets/d86a4a41-dfbf-41e7-a6d9-146473005606" /> Known issues: - Outputs on cloud are not filtered to those produced by the current workflow. - Output filtering has been globally disabled for consistency - Outputs will load more items on scroll, but does not unload - Performance may be reduced on weak devices with very large histories. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7734-linear-v2-2d16d73d3650819b8a10f150ff12ea22) by [Unito](https://www.unito.io)
45 lines
939 B
Vue
45 lines
939 B
Vue
<script setup lang="ts">
|
|
import { ref, useTemplateRef } from 'vue'
|
|
|
|
import ZoomPane from '@/components/ui/ZoomPane.vue'
|
|
|
|
const { src } = defineProps<{
|
|
src: string
|
|
mobile?: boolean
|
|
}>()
|
|
|
|
const imageRef = useTemplateRef('imageRef')
|
|
const width = ref('')
|
|
const height = ref('')
|
|
</script>
|
|
<template>
|
|
<ZoomPane v-if="!mobile" v-slot="slotProps" class="flex-1 w-full">
|
|
<img
|
|
ref="imageRef"
|
|
:src
|
|
v-bind="slotProps"
|
|
@load="
|
|
() => {
|
|
if (!imageRef) return
|
|
width = `${imageRef.naturalWidth}`
|
|
height = `${imageRef.naturalHeight}`
|
|
}
|
|
"
|
|
/>
|
|
</ZoomPane>
|
|
<img
|
|
v-else
|
|
ref="imageRef"
|
|
class="w-full"
|
|
:src
|
|
@load="
|
|
() => {
|
|
if (!imageRef) return
|
|
width = `${imageRef.naturalWidth}`
|
|
height = `${imageRef.naturalHeight}`
|
|
}
|
|
"
|
|
/>
|
|
<span class="self-center md:z-10" v-text="`${width} x ${height}`" />
|
|
</template>
|