@@ -20,41 +20,27 @@ import { AdminAccessDenied, AdminLoading } from '~/components/admin'
2020import { useAdminGuard } from '~/hooks/useAdminGuard'
2121import { useDeleteWithConfirmation } from '~/hooks/useDeleteWithConfirmation'
2222
23+ const searchSchema = v . object ( {
24+ entryTypes : v . optional ( v . array ( entryTypeSchema ) ) ,
25+ libraries : v . optional ( v . array ( libraryIdSchema ) ) ,
26+ partners : v . optional ( v . array ( v . string ( ) ) ) ,
27+ tags : v . optional ( v . array ( v . string ( ) ) ) ,
28+ releaseLevels : v . optional ( v . array ( releaseLevelSchema ) ) ,
29+ includePrerelease : v . optional ( v . boolean ( ) ) ,
30+ featured : v . optional ( v . boolean ( ) ) ,
31+ search : v . optional ( v . string ( ) ) ,
32+ page : v . optional ( v . number ( ) , 1 ) ,
33+ pageSize : v . optional ( v . pipe ( v . number ( ) , v . integer ( ) , v . minValue ( 1 ) ) , 50 ) ,
34+ viewMode : v . optional (
35+ v . fallback ( v . picklist ( [ 'table' , 'timeline' ] ) , 'table' ) ,
36+ 'table' ,
37+ ) ,
38+ expanded : v . optional ( v . array ( v . string ( ) ) ) ,
39+ } )
40+
2341export const Route = createFileRoute ( '/admin/feed/' ) ( {
2442 component : FeedAdminPage ,
25- validateSearch : ( search : Record < string , unknown > ) => {
26- const hasReleaseLevels = 'releaseLevels' in search
27- const releaseLevelsValue = search . releaseLevels
28-
29- return v . parse (
30- v . object ( {
31- entryTypes : v . optional ( v . array ( entryTypeSchema ) ) ,
32- libraries : v . optional ( v . array ( libraryIdSchema ) ) ,
33- partners : v . optional ( v . array ( v . string ( ) ) ) ,
34- tags : v . optional ( v . array ( v . string ( ) ) ) ,
35- releaseLevels : hasReleaseLevels
36- ? v . fallback (
37- v . array ( releaseLevelSchema ) ,
38- Array . isArray ( releaseLevelsValue ) ? releaseLevelsValue : [ ] ,
39- )
40- : v . optional ( v . array ( releaseLevelSchema ) ) ,
41- includePrerelease : v . optional ( v . boolean ( ) ) ,
42- featured : v . optional ( v . boolean ( ) ) ,
43- search : v . optional ( v . string ( ) ) ,
44- page : v . optional ( v . number ( ) , 1 ) ,
45- pageSize : v . optional (
46- v . pipe ( v . number ( ) , v . integer ( ) , v . minValue ( 1 ) ) ,
47- 50 ,
48- ) ,
49- viewMode : v . optional (
50- v . fallback ( v . picklist ( [ 'table' , 'timeline' ] ) , 'table' ) ,
51- 'table' ,
52- ) ,
53- expanded : v . optional ( v . array ( v . string ( ) ) ) ,
54- } ) ,
55- search ,
56- )
57- } ,
43+ validateSearch : searchSchema ,
5844} )
5945
6046function FeedAdminPage ( ) {
0 commit comments