qdadm 0.26.0 → 0.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qdadm",
3
- "version": "0.26.0",
3
+ "version": "0.26.2",
4
4
  "description": "Vue 3 framework for admin dashboards with PrimeVue",
5
5
  "author": "quazardous",
6
6
  "license": "MIT",
@@ -165,6 +165,14 @@ export function useListPageBuilder(config = {}) {
165
165
  // Get HookRegistry for list:alter hook (optional, may not exist in tests)
166
166
  const hooks = useHooks()
167
167
 
168
+ // ============ SESSION RESTORE ============
169
+ // Load saved filters + search from session storage (used by filterValues and searchQuery)
170
+ const savedSession = persistFilters ? getSessionFilters(filterSessionKey) : null
171
+ const savedSearch = savedSession?._search || ''
172
+ // Clone and remove _search from filters
173
+ const savedFilters = savedSession ? { ...savedSession } : null
174
+ if (savedFilters) delete savedFilters._search
175
+
168
176
  // ============ STATE ============
169
177
  const items = ref([])
170
178
  const loading = ref(false)
@@ -181,8 +189,8 @@ export function useListPageBuilder(config = {}) {
181
189
  const sortField = ref(defaultSort)
182
190
  const sortOrder = ref(defaultSortOrder)
183
191
 
184
- // Search
185
- const searchQuery = ref('')
192
+ // Search (initialized from session storage)
193
+ const searchQuery = ref(savedSearch)
186
194
  const searchConfig = ref({
187
195
  placeholder: 'Search...',
188
196
  fields: [],
@@ -472,8 +480,7 @@ export function useListPageBuilder(config = {}) {
472
480
 
473
481
  // ============ FILTERS ============
474
482
  const filtersMap = ref(new Map())
475
- // Load saved filters from session storage
476
- const savedFilters = persistFilters ? getSessionFilters(filterSessionKey) : null
483
+ // filterValues initialized from savedFilters (loaded in SESSION RESTORE section)
477
484
  const filterValues = ref(savedFilters || {})
478
485
 
479
486
  function addFilter(name, filterConfig) {
@@ -896,48 +903,24 @@ export function useListPageBuilder(config = {}) {
896
903
  }
897
904
 
898
905
  /**
899
- * Restore filter values from URL query params (priority) or session storage
906
+ * Apply URL query params as overrides (session already loaded at init)
900
907
  */
901
908
  function restoreFilters() {
902
- // Priority 1: URL query params
903
- const urlFilters = {}
909
+ // URL params override session values
904
910
  for (const key of filtersMap.value.keys()) {
905
911
  if (route.query[key] !== undefined) {
906
- // Parse value (handle booleans, numbers, etc.)
907
912
  let value = route.query[key]
908
913
  if (value === 'true') value = true
909
914
  else if (value === 'false') value = false
910
915
  else if (value === 'null') value = null
911
916
  else if (!isNaN(Number(value)) && value !== '') value = Number(value)
912
- urlFilters[key] = value
917
+ filterValues.value[key] = value
913
918
  }
914
919
  }
915
- // Restore search from URL
920
+ // URL search overrides session search
916
921
  if (route.query.search) {
917
922
  searchQuery.value = route.query.search
918
923
  }
919
-
920
- // Priority 2: Session storage (only for filters/search not in URL)
921
- const sessionData = persistFilters ? getSessionFilters(filterSessionKey) : null
922
-
923
- // Extract search from session (stored as _search)
924
- if (sessionData?._search && !route.query.search) {
925
- searchQuery.value = sessionData._search
926
- }
927
-
928
- // Remove _search from session data before merging with filters
929
- const sessionFilters = sessionData ? { ...sessionData } : null
930
- if (sessionFilters) delete sessionFilters._search
931
-
932
- // Merge: URL takes priority over session
933
- const restoredFilters = { ...sessionFilters, ...urlFilters }
934
-
935
- // Apply restored values
936
- for (const [name, value] of Object.entries(restoredFilters)) {
937
- if (filtersMap.value.has(name)) {
938
- filterValues.value[name] = value
939
- }
940
- }
941
924
  }
942
925
 
943
926
  // ============ ACTIONS ============