-
Notifications
You must be signed in to change notification settings - Fork 438
feat: right side panel #6952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: right side panel #6952
Changes from 21 commits
9056052
2f2f65a
cd3e809
c1bbb7b
fd6defc
1677667
7e9ece2
ff1b9ad
2c33757
464c9b2
828c836
d47af09
56f8f29
8370166
f2fcdd5
e10a0b9
0159622
4be493c
aa429ee
3774b6c
d7fa9a9
cc34422
952f4a1
560339b
0a22d28
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -44,6 +44,20 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </IconButton> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <CurrentUserButton v-if="isLoggedIn" class="shrink-0" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <LoginButton v-else-if="isDesktop" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <IconButton | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| v-if="!isRightSidePanelOpen" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| v-tooltip.bottom="rightSidePanelTooltipConfig" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| type="transparent" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| size="sm" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class="mr-2 transition-colors duration-200 ease-in-out hover:bg-secondary-background-hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-background" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| :aria-pressed="isRightSidePanelOpen" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| :aria-label="t('rightSidePanel.togglePanel')" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @click="toggleRightSidePanel" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <i | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class="icon-[lucide--panel-right] block size-4 text-muted-foreground" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </IconButton> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+47
to
+60
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove The button is only rendered when the panel is closed ( Consider one of these approaches:
Apply this diff to remove the unnecessary <IconButton
v-if="!isRightSidePanelOpen"
v-tooltip.bottom="rightSidePanelTooltipConfig"
type="transparent"
size="sm"
class="mr-2 transition-colors duration-200 ease-in-out hover:bg-secondary-background-hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-background"
- :aria-pressed="isRightSidePanelOpen"
:aria-label="t('rightSidePanel.togglePanel')"
@click="toggleRightSidePanel"
>📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <QueueProgressOverlay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| v-model:expanded="isQueueOverlayExpanded" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -68,10 +82,12 @@ import { useCurrentUser } from '@/composables/auth/useCurrentUser' | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { buildTooltipConfig } from '@/composables/useTooltipConfig' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { app } from '@/scripts/app' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { useQueueStore } from '@/stores/queueStore' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { useRightSidePanelStore } from '@/stores/workspace/rightSidePanelStore' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { useWorkspaceStore } from '@/stores/workspaceStore' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { isElectron } from '@/utils/envUtil' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const workspaceStore = useWorkspaceStore() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const rightSidePanelStore = useRightSidePanelStore() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const { isLoggedIn } = useCurrentUser() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const isDesktop = isElectron() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const { t } = useI18n() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -88,6 +104,16 @@ const queueHistoryButtonBackgroundClass = computed(() => | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| : 'bg-secondary-background' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // Right side panel toggle | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const isRightSidePanelOpen = computed(() => rightSidePanelStore.isOpen) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const rightSidePanelTooltipConfig = computed(() => | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| buildTooltipConfig(t('rightSidePanel.togglePanel')) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const toggleRightSidePanel = () => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rightSidePanelStore.togglePanel() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // Maintain support for legacy topbar elements attached by custom scripts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const legacyCommandsContainerRef = ref<HTMLElement>() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onMounted(() => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
find src -name "LiteGraphCanvasSplitterOverlay.vue" -type fRepository: Comfy-Org/ComfyUI_frontend
Length of output: 119
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 123
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 7416
🏁 Script executed:
head -n 220 src/components/LiteGraphCanvasSplitterOverlay.vue | cat -nRepository: Comfy-Org/ComfyUI_frontend
Length of output: 7416
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 5988
🏁 Script executed:
sed -n '170,185p' src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 338
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 4310
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 1545
🏁 Script executed:
grep -n "sidebarLocation" src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 613
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 2581
🏁 Script executed:
grep -n "topPositionedSidebar\|leftPositionedSidebar\|rightPositionedSidebar" src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 52
🏁 Script executed:
grep -rn "sidebarLocation.*right\|right.*sidebar" src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 377
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 2581
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 2293
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 52
🏁 Script executed:
sed -n '20,45p' src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 886
🏁 Script executed:
sed -n '15,50p' src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 1206
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 377
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 156
🏁 Script executed:
ast-grep --pattern 'defineProps<$_>()'Repository: Comfy-Org/ComfyUI_frontend
Length of output: 52
🏁 Script executed:
grep -n "computed" src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 553
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 1878
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 1420
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 52
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 96
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 52
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 52
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 920
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 2309
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 1502
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 534
🏁 Script executed:
ls -la src/components/ | grep -i sidebarRepository: Comfy-Org/ComfyUI_frontend
Length of output: 127
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 240
🏁 Script executed:
Repository: Comfy-Org/ComfyUI_frontend
Length of output: 2044
🏁 Script executed:
grep -n "rightPositionedSidebar\|const.*sidebar\|computed.*sidebar" src/components/LiteGraphCanvasSplitterOverlay.vueRepository: Comfy-Org/ComfyUI_frontend
Length of output: 217
Right-side panel can coexist with right-positioned sidebar, creating layout constraints
When
sidebarLocation === 'right'andrightSidePanelVisible === true, both panels appear in the same horizontal splitter:Test this layout on smaller viewports to verify the main canvas remains usable and gutter handles discoverable when both right-side panels are visible. Consider whether adaptive sizing or constraints are needed when both panels are enabled.
🤖 Prompt for AI Agents