[Manager] Always show info panel (#3114)

Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
Christian Byrne
2025-03-17 16:35:34 -07:00
committed by GitHub
parent 384b3f3218
commit da415e9d80
9 changed files with 48 additions and 40 deletions

View File

@@ -18,17 +18,15 @@
v-model:selectedTab="selectedTab" v-model:selectedTab="selectedTab"
/> />
<div <div
class="flex-1 overflow-auto" class="flex-1 overflow-auto pr-80"
:class="{ :class="{
'transition-all duration-300': isSmallScreen, 'transition-all duration-300': isSmallScreen,
'pl-80': isSideNavOpen || !isSmallScreen, 'pl-80': isSideNavOpen || !isSmallScreen,
'pl-8': !isSideNavOpen && isSmallScreen, 'pl-8': !isSideNavOpen && isSmallScreen
'pr-80': showInfoPanel
}" }"
> >
<div class="px-6 pt-6 flex flex-col h-full"> <div class="px-6 pt-6 flex flex-col h-full">
<RegistrySearchBar <RegistrySearchBar
v-if="!hideSearchBar"
v-model:searchQuery="searchQuery" v-model:searchQuery="searchQuery"
v-model:searchMode="searchMode" v-model:searchMode="searchMode"
:searchResults="searchResults" :searchResults="searchResults"
@@ -80,7 +78,6 @@
</div> </div>
</div> </div>
<div <div
v-if="showInfoPanel"
class="w-80 border-l-0 border-surface-border absolute right-0 top-0 bottom-0 flex z-20" class="w-80 border-l-0 border-surface-border absolute right-0 top-0 bottom-0 flex z-20"
> >
<ContentDivider orientation="vertical" :width="0.2" /> <ContentDivider orientation="vertical" :width="0.2" />
@@ -125,7 +122,6 @@ const {
isOpen: isSideNavOpen, isOpen: isSideNavOpen,
toggle: toggleSideNav toggle: toggleSideNav
} = useResponsiveCollapse() } = useResponsiveCollapse()
const hideSearchBar = computed(() => isSmallScreen.value && showInfoPanel.value)
const tabs = ref<TabItem[]>([ const tabs = ref<TabItem[]>([
{ id: 'all', label: t('g.all'), icon: 'pi-list' }, { id: 'all', label: t('g.all'), icon: 'pi-list' },
@@ -211,6 +207,5 @@ const handleGridContainerClick = (event: MouseEvent) => {
} }
} }
const showInfoPanel = computed(() => selectedNodePacks.value.length > 0)
const hasMultipleSelections = computed(() => selectedNodePacks.value.length > 1) const hasMultipleSelections = computed(() => selectedNodePacks.value.length > 1)
</script> </script>

View File

@@ -1,39 +1,46 @@
<template> <template>
<div class="flex flex-col h-full z-40 hidden-scrollbar w-80"> <template v-if="nodePack">
<div class="p-6 flex-1 overflow-hidden text-sm"> <div class="flex flex-col h-full z-40 hidden-scrollbar w-80">
<InfoPanelHeader :node-packs="[nodePack]" /> <div class="p-6 flex-1 overflow-hidden text-sm">
<div class="mb-6"> <InfoPanelHeader :node-packs="[nodePack]" />
<MetadataRow <div class="mb-6">
v-if="isPackInstalled(nodePack.id)" <MetadataRow
:label="t('manager.filter.enabled')" v-if="isPackInstalled(nodePack.id)"
class="flex" :label="t('manager.filter.enabled')"
style="align-items: center" class="flex"
> style="align-items: center"
<PackEnableToggle :node-pack="nodePack" /> >
</MetadataRow> <PackEnableToggle :node-pack="nodePack" />
<MetadataRow </MetadataRow>
v-for="item in infoItems" <MetadataRow
v-show="item.value !== undefined && item.value !== null" v-for="item in infoItems"
:key="item.key" v-show="item.value !== undefined && item.value !== null"
:label="item.label" :key="item.key"
:value="item.value" :label="item.label"
/> :value="item.value"
<MetadataRow :label="t('g.status')">
<PackStatusMessage
:status-type="
nodePack.status as components['schemas']['NodeVersionStatus']
"
/> />
</MetadataRow> <MetadataRow :label="t('g.status')">
<MetadataRow :label="t('manager.version')"> <PackStatusMessage
<PackVersionBadge :node-pack="nodePack" /> :status-type="
</MetadataRow> nodePack.status as components['schemas']['NodeVersionStatus']
</div> "
<div class="mb-6 overflow-hidden"> />
<InfoTabs :node-pack="nodePack" /> </MetadataRow>
<MetadataRow :label="t('manager.version')">
<PackVersionBadge :node-pack="nodePack" />
</MetadataRow>
</div>
<div class="mb-6 overflow-hidden">
<InfoTabs :node-pack="nodePack" />
</div>
</div> </div>
</div> </div>
</div> </template>
<template v-else>
<div class="mt-4 mx-8 flex-1 overflow-hidden text-sm">
{{ $t('manager.infoPanelEmpty') }}
</div>
</template>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@@ -1,6 +1,6 @@
<template> <template>
<Card <Card
class="w-full h-full inline-flex flex-col justify-between items-start overflow-hidden rounded-2xl shadow-elevation-4 dark-theme:bg-dark-elevation-1 transition-all duration-200" class="w-full h-full inline-flex flex-col justify-between items-start overflow-hidden rounded-2xl shadow-elevation-3 dark-theme:bg-dark-elevation-2 transition-all duration-200"
:class="{ :class="{
'outline outline-[6px] outline-[var(--p-primary-color)]': isSelected 'outline outline-[6px] outline-[var(--p-primary-color)]': isSelected
}" }"

View File

@@ -99,6 +99,7 @@
}, },
"manager": { "manager": {
"title": "Custom Nodes Manager", "title": "Custom Nodes Manager",
"infoPanelEmpty": "Click an item to see the info",
"restartToApplyChanges": "To apply changes, please restart ComfyUI", "restartToApplyChanges": "To apply changes, please restart ComfyUI",
"loadingVersions": "Loading versions...", "loadingVersions": "Loading versions...",
"selectVersion": "Select Version", "selectVersion": "Select Version",

View File

@@ -387,6 +387,7 @@
"enabled": "Activé", "enabled": "Activé",
"nodePack": "Pack de Nœuds" "nodePack": "Pack de Nœuds"
}, },
"infoPanelEmpty": "Cliquez sur un élément pour voir les informations",
"installSelected": "Installer sélectionné", "installSelected": "Installer sélectionné",
"lastUpdated": "Dernière mise à jour", "lastUpdated": "Dernière mise à jour",
"latestVersion": "Dernière", "latestVersion": "Dernière",

View File

@@ -387,6 +387,7 @@
"enabled": "有効", "enabled": "有効",
"nodePack": "ノードパック" "nodePack": "ノードパック"
}, },
"infoPanelEmpty": "アイテムをクリックして情報を表示します",
"installSelected": "選択したものをインストール", "installSelected": "選択したものをインストール",
"lastUpdated": "最終更新日", "lastUpdated": "最終更新日",
"latestVersion": "最新", "latestVersion": "最新",

View File

@@ -387,6 +387,7 @@
"enabled": "활성화", "enabled": "활성화",
"nodePack": "노드 팩" "nodePack": "노드 팩"
}, },
"infoPanelEmpty": "정보를 보려면 항목을 클릭하세요",
"installSelected": "선택한 항목 설치", "installSelected": "선택한 항목 설치",
"lastUpdated": "마지막 업데이트", "lastUpdated": "마지막 업데이트",
"latestVersion": "최신", "latestVersion": "최신",

View File

@@ -387,6 +387,7 @@
"enabled": "Включено", "enabled": "Включено",
"nodePack": "Пакет Узлов" "nodePack": "Пакет Узлов"
}, },
"infoPanelEmpty": "Нажмите на элемент, чтобы увидеть информацию",
"installSelected": "Установить выбранное", "installSelected": "Установить выбранное",
"lastUpdated": "Последнее обновление", "lastUpdated": "Последнее обновление",
"latestVersion": "Последняя", "latestVersion": "Последняя",

View File

@@ -387,6 +387,7 @@
"enabled": "已启用", "enabled": "已启用",
"nodePack": "节点包" "nodePack": "节点包"
}, },
"infoPanelEmpty": "点击一个项目查看信息",
"installSelected": "安装选定", "installSelected": "安装选定",
"lastUpdated": "最后更新", "lastUpdated": "最后更新",
"latestVersion": "最新", "latestVersion": "最新",