8
8
9
9
<v-row dense >
10
10
<v-col cols =" 12" class =" image-container" :style =" `column-count: ${columnCount};`" >
11
- <div v-for =" image in displayItems" :key =" image.name " @click =" onClickImage(image.name )" class =" cursor-pointer" >
11
+ <div v-for =" image in displayItems" :key =" image.uri.rawURI " @click =" onClickImage(image.uri.rawURI )" class =" cursor-pointer" >
12
12
<ImageItem
13
13
:base-dir =" baseDir"
14
- :name =" image.name "
14
+ :image =" image"
15
15
style =" margin-bottom : 1em "
16
- :class =" selected[image.name ] ? 'image-selected border-lg' : ''"
16
+ :class =" selected[image.uri.rawURI ] ? 'image-selected border-lg' : ''"
17
17
>
18
18
<span v-if =" search.showSimilarity" class =" text-caption" >
19
19
{{ image.similarity }}
29
29
</v-container >
30
30
</v-app-bar >
31
31
32
- <v-app-bar location =" bottom" elevation =" 0" v-if =" selectedPaths .length > 0" density =" compact" >
32
+ <v-app-bar location =" bottom" elevation =" 0" v-if =" selectedImages .length > 0" density =" compact" >
33
33
<v-container >
34
34
<v-row >
35
- <v-col cols =" 8" ></v-col >
36
- <v-col cols =" 4" >
37
- <ImageDeletion :base-dir =" baseDir" :file-names = " selectedPaths " @onDeleted =" onDeleted" />
35
+ <v-col cols =" 6 " sm = " 8" ></v-col >
36
+ <v-col cols =" 6 " sm = " 4" >
37
+ <ImageDeletion :base-dir =" baseDir" :images = " selectedImages " @onDeleted =" onDeleted" />
38
38
</v-col >
39
39
</v-row >
40
40
</v-container >
@@ -49,6 +49,7 @@ import { ImageResult } from '../text/TextEmbedding.vue'
49
49
import ImageDeletion from ' ./ImageDeletion.vue'
50
50
import { mapState } from " pinia"
51
51
import { useSettingsStore } from " ../../store/settings.ts"
52
+ import { URI } from " ../../database/uri.ts"
52
53
53
54
export default defineComponent ({
54
55
name: ' ImagePaging' ,
@@ -70,8 +71,8 @@ export default defineComponent({
70
71
data() {
71
72
return {
72
73
page: 1 ,
73
- selected: {} as { [key : string ]: boolean },
74
- deleted: {} as { [key : string ]: boolean },
74
+ selected: {} as { [key : URI ]: boolean },
75
+ deleted: {} as { [key : URI ]: boolean },
75
76
}
76
77
},
77
78
computed: {
@@ -95,10 +96,7 @@ export default defineComponent({
95
96
return 1
96
97
},
97
98
view() {
98
- return this .images .filter ((i ) => {
99
- const name = i .path .substring (this .baseDir .name .length + 1 )
100
- return ! this .deleted [name ]
101
- })
99
+ return this .images .filter ((i ) => ! this .deleted [i .uri .rawURI ])
102
100
},
103
101
pageCount() {
104
102
return Math .ceil (this .view .length / this .limitToUse )
@@ -114,32 +112,28 @@ export default defineComponent({
114
112
115
113
const imageItems = [] as Image []
116
114
for (let result of this .view .slice (this .start , this .end )) {
117
- if (result .path .startsWith (` ${this .baseDir .name }/ ` )) {
118
- const image = {
119
- name: result .path .substring (this .baseDir .name .length + 1 ),
120
- similarity: result .similarity ,
121
- }
122
- imageItems .push (image )
115
+ if (result .uri .directory === this .baseDir .name ) {
116
+ imageItems .push (result )
123
117
}
124
118
}
125
119
return imageItems
126
120
},
127
- selectedPaths() {
128
- return Object . keys ( this .selected )
121
+ selectedImages() : Image [] {
122
+ return this . images . filter (( i ) => this .selected [ i . uri . rawURI ] )
129
123
},
130
124
},
131
125
methods: {
132
- onClickImage(name : string ) {
133
- if (this .selected [name ]) {
134
- delete this .selected [name ]
126
+ onClickImage(uri : URI ) {
127
+ if (this .selected [uri ]) {
128
+ delete this .selected [uri ]
135
129
} else {
136
- this .selected [name ] = true
130
+ this .selected [uri ] = true
137
131
}
138
132
},
139
- onDeleted(deleted : string []) {
140
- for (let path of deleted ) {
141
- this .deleted [path ] = true
142
- delete this .selected [path ]
133
+ onDeleted(deleted : Image []) {
134
+ for (let deletedImage of deleted ) {
135
+ this .deleted [deletedImage . uri . rawURI ] = true
136
+ delete this .selected [deletedImage . uri . rawURI ]
143
137
}
144
138
},
145
139
},
0 commit comments