1515 :disable =" finalSelectedPageIds.length === 0"
1616 @click =" deselectAll()"
1717 />
18+
19+ <Gap style =" width : 26px " />
20+
21+ <Checkbox
22+ label =" Show deleted pages"
23+ v-model =" showDeletedPages"
24+ />
1825 </div >
1926
2027 <Gap style =" height : 16px " />
3138 @unselect =" (pageId) => baseSelectedPageIds.delete(pageId)"
3239 style =" max-height : 100% ; border-radius : 10px ; background-color : #383838 "
3340 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+ "
3452 >
3553 <template #item =" { itemId: groupPageId } " >
3654 <q-item-section >
@@ -132,12 +150,15 @@ const groupId = inject<string>('groupId')!;
132150
133151const realtimeCtx = inject <RealtimeContext >(' realtimeCtx' )! ;
134152
135- const basePageIds = inject <Ref <string []>>(' pageIds' )! ;
153+ const basePageIds = inject <Ref <Set <string >>>(' pageIds' )! ;
154+
136155const finalPageIds = computed (() =>
137- basePageIds .value .filter (
156+ Array . from ( basePageIds .value ) .filter (
138157 (pageId ) =>
139158 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 )),
141162 ),
142163);
143164
@@ -148,6 +169,8 @@ const finalSelectedPageIds = computed(() =>
148169 finalPageIds .value .filter ((pageId ) => baseSelectedPageIds .value .has (pageId )),
149170);
150171
172+ const showDeletedPages = ref (false );
173+
151174function selectAll() {
152175 for (const pageId of finalPageIds .value ) {
153176 baseSelectedPageIds .value .add (pageId );
@@ -164,10 +187,10 @@ async function onLoad(index: number, done: (stop?: boolean) => void) {
164187 const response = await trpcClient .groups .getPages .query ({
165188 groupId ,
166189
167- lastPageId: basePageIds .value .at (- 1 ),
190+ lastPageId: Array . from ( basePageIds .value ) .at (- 1 ),
168191 });
169192
170- basePageIds . value . push ( ... response . pageIds );
193+ response . pageIds . forEach (( pageId ) => basePageIds . value . add ( pageId ) );
171194 hasMorePages .value = response .hasMore ;
172195 } catch (error ) {
173196 handleError (error );
0 commit comments