@@ -10,12 +10,13 @@ import { loadState } from '@nextcloud/initial-state'
1010import axios from '@nextcloud/axios'
1111import { generateOcsUrl } from '@nextcloud/router'
1212import logger from '../helpers/logger'
13+ import { getTimePresetRange } from '../utils/timePresets.js'
1314
1415export const useFiltersStore = defineStore ( 'filter' , {
1516 state : ( ) => ( {
1617 chips : { } ,
17- filter_modified : loadState ( 'libresign' , 'filters' , { filter_modified : '' } ) . filter_modified ,
18- filter_status : loadState ( 'libresign' , 'filters' , { filter_status : '' } ) . filter_status ,
18+ filter_modified : loadState ( 'libresign' , 'filters' , { } ) . files_list_filter_modified ?? '' ,
19+ filter_status : loadState ( 'libresign' , 'filters' , { } ) . files_list_filter_status ?? ''
1920 } ) ,
2021
2122 getters : {
@@ -29,13 +30,20 @@ export const useFiltersStore = defineStore('filter', {
2930 return [ ]
3031 }
3132 } ,
33+ /**
34+ * Returns { start, end } in ms for the saved modified preset, or null.
35+ * Computed fresh on each access so date boundaries are always current.
36+ */
37+ filterModifiedRange ( state ) {
38+ return getTimePresetRange ( state . filter_modified )
39+ } ,
3240 } ,
3341
42+
3443 actions : {
3544 async onFilterUpdateChips ( event ) {
3645 this . chips = { ...this . chips , [ event . id ] : [ ...event . detail ] }
3746
38- emit ( 'libresign:filters:update' )
3947 logger . debug ( 'File list filter chips updated' , { chips : event . detail } )
4048
4149 } ,
@@ -47,18 +55,20 @@ export const useFiltersStore = defineStore('filter', {
4755 if ( event . id == 'modified' ) {
4856 let value = this . chips [ 'modified' ] [ 0 ] ?. id || '' ;
4957
50- await axios . put ( generateOcsUrl ( '/apps/libresign/api/v1/account/config/{key}' , { key : 'filter_modified ' } ) , {
58+ await axios . put ( generateOcsUrl ( '/apps/libresign/api/v1/account/config/{key}' , { key : 'files_list_filter_modified ' } ) , {
5159 value,
5260 } )
5361
62+ this . filter_modified = value
63+
5464 emit ( 'libresign:filters:update' )
5565 }
5666
5767 if ( event . id == 'status' ) {
5868
5969 const value = event . detail . length > 0 ? JSON . stringify ( event . detail . map ( item => item . id ) ) : '' ;
6070
61- await axios . put ( generateOcsUrl ( '/apps/libresign/api/v1/account/config/{key}' , { key : 'filter_status ' } ) , {
71+ await axios . put ( generateOcsUrl ( '/apps/libresign/api/v1/account/config/{key}' , { key : 'files_list_filter_status ' } ) , {
6272 value,
6373 } )
6474
0 commit comments