15
15
:disable =" finalSelectedPageIds.length === 0"
16
16
@click =" deselectAll()"
17
17
/>
18
+
19
+ <Gap style =" width : 26px " />
20
+
21
+ <Checkbox
22
+ label =" Show deleted pages"
23
+ v-model =" showDeletedPages"
24
+ />
18
25
</div >
19
26
20
27
<Gap style =" height : 16px " />
31
38
@unselect =" (pageId) => baseSelectedPageIds.delete(pageId)"
32
39
style =" max-height : 100% ; border-radius : 10px ; background-color : #383838 "
33
40
class =" overflow-auto"
41
+ :item-props ="
42
+ (pageId) => ({
43
+ style: {
44
+ color:
45
+ realtimeCtx.hget('page', pageId, 'permanent-deletion-date') !=
46
+ null
47
+ ? '#ff9696'
48
+ : undefined,
49
+ },
50
+ })
51
+ "
34
52
>
35
53
<template #item =" { itemId: groupPageId } " >
36
54
<q-item-section >
@@ -132,12 +150,15 @@ const groupId = inject<string>('groupId')!;
132
150
133
151
const realtimeCtx = inject <RealtimeContext >(' realtimeCtx' )! ;
134
152
135
- const basePageIds = inject <Ref <string []>>(' pageIds' )! ;
153
+ const basePageIds = inject <Ref <Set <string >>>(' pageIds' )! ;
154
+
136
155
const finalPageIds = computed (() =>
137
- basePageIds .value .filter (
156
+ Array . from ( basePageIds .value ) .filter (
138
157
(pageId ) =>
139
158
realtimeCtx .hget (' page' , pageId , ' exists' ) &&
140
- realtimeCtx .hget (' page' , pageId , ' permanent-deletion-date' ) == null ,
159
+ (realtimeCtx .hget (' page' , pageId , ' permanent-deletion-date' ) == null ||
160
+ (showDeletedPages .value &&
161
+ realtimeCtx .hget (' page' , pageId , ' permanent-deletion-date' ) != null )),
141
162
),
142
163
);
143
164
@@ -148,6 +169,8 @@ const finalSelectedPageIds = computed(() =>
148
169
finalPageIds .value .filter ((pageId ) => baseSelectedPageIds .value .has (pageId )),
149
170
);
150
171
172
+ const showDeletedPages = ref (false );
173
+
151
174
function selectAll() {
152
175
for (const pageId of finalPageIds .value ) {
153
176
baseSelectedPageIds .value .add (pageId );
@@ -164,10 +187,10 @@ async function onLoad(index: number, done: (stop?: boolean) => void) {
164
187
const response = await trpcClient .groups .getPages .query ({
165
188
groupId ,
166
189
167
- lastPageId: basePageIds .value .at (- 1 ),
190
+ lastPageId: Array . from ( basePageIds .value ) .at (- 1 ),
168
191
});
169
192
170
- basePageIds . value . push ( ... response . pageIds );
193
+ response . pageIds . forEach (( pageId ) => basePageIds . value . add ( pageId ) );
171
194
hasMorePages .value = response .hasMore ;
172
195
} catch (error ) {
173
196
handleError (error );
0 commit comments