{"version":3,"file":"users-loader.mjs","sources":["../../../../src/lib/routing/loaders/users-loader.ts"],"sourcesContent":["import type { LoaderFunctionArgs } from 'react-router-dom';\nimport { queryClient } from '@/lib/queries/queryClient';\nimport { usersListQueryOptions, userDetailQueryOptions } from '@/lib/queries/users';\n\n/**\n * Data router loader that prefetches users data before rendering.\n */\nexport async function usersLoader({ request, params }: LoaderFunctionArgs): Promise<null> {\n  const url = new URL(request.url);\n  const userId = params.id;\n\n  // If viewing a specific user, prefetch it\n  if (userId !== null && userId !== undefined && userId !== '') {\n    await queryClient.prefetchQuery(userDetailQueryOptions(userId));\n  } else {\n    // Otherwise, prefetch the users list\n    const page = parseInt(url.searchParams.get('page') ?? '1', 10);\n    const pageSize = parseInt(url.searchParams.get('limit') ?? '10', 10);\n    const search = url.searchParams.get('search') ?? undefined;\n    const role = url.searchParams.get('role') as\n      | 'admin'\n      | 'manager'\n      | 'user'\n      | 'viewer'\n      | undefined;\n\n    await queryClient.prefetchQuery(usersListQueryOptions({ page, pageSize, search, role }));\n  }\n\n  return null;\n}\n"],"names":["usersLoader","request","params","url","userId","queryClient","userDetailQueryOptions","page","pageSize","search","role","usersListQueryOptions"],"mappings":";;AAOA,eAAsBA,EAAY,EAAE,SAAAC,GAAS,QAAAC,KAA6C;AACxF,QAAMC,IAAM,IAAI,IAAIF,EAAQ,GAAG,GACzBG,IAASF,EAAO;AAGtB,MAAIE,KAAW,QAAgCA,MAAW;AACxD,UAAMC,EAAY,cAAcC,EAAuBF,CAAM,CAAC;AAAA,OACzD;AAEL,UAAMG,IAAO,SAASJ,EAAI,aAAa,IAAI,MAAM,KAAK,KAAK,EAAE,GACvDK,IAAW,SAASL,EAAI,aAAa,IAAI,OAAO,KAAK,MAAM,EAAE,GAC7DM,IAASN,EAAI,aAAa,IAAI,QAAQ,KAAK,QAC3CO,IAAOP,EAAI,aAAa,IAAI,MAAM;AAOxC,UAAME,EAAY,cAAcM,EAAsB,EAAE,MAAAJ,GAAM,UAAAC,GAAU,QAAAC,GAAQ,MAAAC,EAAA,CAAM,CAAC;AAAA,EACzF;AAEA,SAAO;AACT;"}