@@ -20,6 +20,7 @@ import MenuList from "@mui/material/MenuList"
20
20
import { useSearchParams } from "react-router-dom"
21
21
import { useQuery } from "@tanstack/react-query"
22
22
import { getUsers , getTemplates } from "api/api"
23
+ import Skeleton , { SkeletonProps } from "@mui/material/Skeleton"
23
24
24
25
/** Filter */
25
26
@@ -258,6 +259,20 @@ type StatusAutocomplete = ReturnType<typeof useStatusAutocomplete>
258
259
259
260
/** Components */
260
261
262
+ const FilterSkeleton = ( props : SkeletonProps ) => {
263
+ return (
264
+ < Skeleton
265
+ variant = "rectangular"
266
+ height = { 36 }
267
+ { ...props }
268
+ sx = { {
269
+ bgcolor : ( theme ) => theme . palette . background . paperLight ,
270
+ borderRadius : "6px" ,
271
+ } }
272
+ />
273
+ )
274
+ }
275
+
261
276
export const Filter = ( {
262
277
filter,
263
278
autocomplete,
@@ -270,6 +285,21 @@ export const Filter = ({
270
285
}
271
286
} ) => {
272
287
const hasFilterQuery = filter . query !== ""
288
+ const isIinitializingFilters =
289
+ autocomplete . status . isInitializing ||
290
+ autocomplete . templates . isInitializing ||
291
+ autocomplete . users . isInitializing
292
+
293
+ if ( isIinitializingFilters ) {
294
+ return (
295
+ < Box display = "flex" sx = { { gap : 1 , mb : 2 } } >
296
+ < FilterSkeleton width = "100%" />
297
+ < FilterSkeleton width = { 120 } />
298
+ < FilterSkeleton width = { 120 } />
299
+ < FilterSkeleton width = { 120 } />
300
+ </ Box >
301
+ )
302
+ }
273
303
274
304
return (
275
305
< Box display = "flex" sx = { { gap : 1 , mb : 2 } } >
0 commit comments