Skip to content

Commit eb45cca

Browse files
authored
Pin searchbox at top when node library scrolls (#811)
* minor style fix * nit * Pin searchbox at top when node library scrolls
1 parent d8d6fa8 commit eb45cca

File tree

2 files changed

+43
-43
lines changed

2 files changed

+43
-43
lines changed

src/components/common/SearchBox.vue

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818
@click="$emit('showFilter', $event)"
1919
/>
2020
</IconField>
21-
<div class="search-filters" v-if="filters">
21+
<div
22+
class="search-filters pt-2 flex flex-wrap gap-2"
23+
v-if="filters?.length"
24+
>
2225
<SearchFilterChip
2326
v-for="filter in filters"
2427
:key="filter.id"
@@ -92,8 +95,4 @@ const handleInput = (event: Event) => {
9295
width: auto;
9396
border: none !important;
9497
}
95-
96-
.search-filters {
97-
@apply pt-2 flex flex-wrap gap-2;
98-
}
9998
</style>

src/components/sidebar/tabs/NodeLibrarySidebarTab.vue

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,44 @@
1919
/>
2020
</template>
2121
<template #body>
22-
<SearchBox
23-
class="node-lib-search-box"
24-
v-model:modelValue="searchQuery"
25-
@search="handleSearch"
26-
@show-filter="($event) => searchFilter.toggle($event)"
27-
@remove-filter="onRemoveFilter"
28-
:placeholder="$t('searchNodes') + '...'"
29-
filter-icon="pi pi-filter"
30-
:filters
31-
/>
32-
33-
<Popover ref="searchFilter" class="node-lib-filter-popup">
34-
<NodeSearchFilter @addFilter="onAddFilter" />
35-
</Popover>
36-
<NodeBookmarkTreeExplorer
37-
ref="nodeBookmarkTreeExplorerRef"
38-
:filtered-node-defs="filteredNodeDefs"
39-
/>
40-
<Divider v-if="nodeBookmarkStore.bookmarks.length > 0" type="dashed" />
41-
<TreeExplorer
42-
class="node-lib-tree-explorer"
43-
:roots="renderedRoot.children"
44-
v-model:expandedKeys="expandedKeys"
45-
@nodeClick="handleNodeClick"
46-
>
47-
<template #node="{ node }">
48-
<NodeTreeLeaf :node="node" />
49-
</template>
50-
</TreeExplorer>
22+
<div class="flex flex-col h-full">
23+
<div class="flex-shrink-0">
24+
<SearchBox
25+
class="node-lib-search-box mx-4 mt-4"
26+
v-model:modelValue="searchQuery"
27+
@search="handleSearch"
28+
@show-filter="($event) => searchFilter.toggle($event)"
29+
@remove-filter="onRemoveFilter"
30+
:placeholder="$t('searchNodes') + '...'"
31+
filter-icon="pi pi-filter"
32+
:filters
33+
/>
34+
35+
<Popover ref="searchFilter" class="node-lib-filter-popup">
36+
<NodeSearchFilter @addFilter="onAddFilter" />
37+
</Popover>
38+
</div>
39+
<div class="flex-grow overflow-y-auto">
40+
<NodeBookmarkTreeExplorer
41+
ref="nodeBookmarkTreeExplorerRef"
42+
:filtered-node-defs="filteredNodeDefs"
43+
/>
44+
<Divider
45+
v-if="nodeBookmarkStore.bookmarks.length > 0"
46+
type="dashed"
47+
/>
48+
<TreeExplorer
49+
class="node-lib-tree-explorer mt-1"
50+
:roots="renderedRoot.children"
51+
v-model:expandedKeys="expandedKeys"
52+
@nodeClick="handleNodeClick"
53+
>
54+
<template #node="{ node }">
55+
<NodeTreeLeaf :node="node" />
56+
</template>
57+
</TreeExplorer>
58+
</div>
59+
</div>
5160
</template>
5261
</SidebarTabTemplate>
5362
<div id="node-library-node-preview-container" />
@@ -60,7 +69,7 @@ import {
6069
ComfyNodeDefImpl,
6170
useNodeDefStore
6271
} from '@/stores/nodeDefStore'
63-
import { computed, nextTick, onMounted, ref, Ref } from 'vue'
72+
import { computed, nextTick, ref, Ref } from 'vue'
6473
import type { TreeNode } from 'primevue/treenode'
6574
import Popover from 'primevue/popover'
6675
import Divider from 'primevue/divider'
@@ -193,10 +202,6 @@ const onRemoveFilter = (filterAndValue) => {
193202
</style>
194203

195204
<style scoped>
196-
:deep(.node-lib-search-box) {
197-
@apply mx-4 mt-4;
198-
}
199-
200205
:deep(.comfy-vue-side-bar-body) {
201206
background: var(--p-tree-background);
202207
}
@@ -205,10 +210,6 @@ const onRemoveFilter = (filterAndValue) => {
205210
padding-bottom: 2px;
206211
}
207212
208-
:deep(.node-lib-tree-explorer) {
209-
padding-top: 2px;
210-
}
211-
212213
:deep(.p-divider) {
213214
margin: var(--comfy-tree-explorer-item-padding) 0px;
214215
}

0 commit comments

Comments
 (0)