@strato-admin/faker-ecommerce 0.1.0 → 0.3.0
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/dist/dataProvider.js +1 -2
- package/dist/generate.d.ts +2 -1
- package/dist/generate.js +15 -8
- package/dist/ra-core/src/auth/LogoutOnMount.d.ts +8 -0
- package/dist/ra-core/src/auth/LogoutOnMount.js +16 -0
- package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.d.ts +22 -0
- package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.js +41 -0
- package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.d.ts +21 -0
- package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.js +30 -0
- package/dist/ra-core/src/auth/convertLegacyAuthProvider.d.ts +12 -0
- package/dist/ra-core/src/auth/convertLegacyAuthProvider.js +19 -0
- package/dist/ra-core/src/auth/index.d.ts +27 -0
- package/dist/ra-core/src/auth/index.js +34 -0
- package/dist/ra-core/src/auth/types.d.ts +7 -0
- package/dist/ra-core/src/auth/types.js +5 -0
- package/dist/ra-core/src/auth/useAuthProvider.d.ts +10 -0
- package/dist/ra-core/src/auth/useAuthProvider.js +11 -0
- package/dist/ra-core/src/auth/useAuthState.d.ts +48 -0
- package/dist/ra-core/src/auth/useAuthState.js +171 -0
- package/dist/ra-core/src/auth/useAuthenticated.d.ts +36 -0
- package/dist/ra-core/src/auth/useAuthenticated.js +34 -0
- package/dist/ra-core/src/auth/useCanAccess.d.ts +56 -0
- package/dist/ra-core/src/auth/useCanAccess.js +108 -0
- package/dist/ra-core/src/auth/useCanAccessCallback.d.ts +39 -0
- package/dist/ra-core/src/auth/useCanAccessCallback.js +45 -0
- package/dist/ra-core/src/auth/useCanAccessResources.d.ts +67 -0
- package/dist/ra-core/src/auth/useCanAccessResources.js +92 -0
- package/dist/ra-core/src/auth/useCheckAuth.d.ts +48 -0
- package/dist/ra-core/src/auth/useCheckAuth.js +76 -0
- package/dist/ra-core/src/auth/useGetIdentity.d.ts +41 -0
- package/dist/ra-core/src/auth/useGetIdentity.js +86 -0
- package/dist/ra-core/src/auth/useGetPermissions.d.ts +41 -0
- package/dist/ra-core/src/auth/useGetPermissions.js +47 -0
- package/dist/ra-core/src/auth/useHandleAuthCallback.d.ts +20 -0
- package/dist/ra-core/src/auth/useHandleAuthCallback.js +83 -0
- package/dist/ra-core/src/auth/useIsAuthPending.d.ts +13 -0
- package/dist/ra-core/src/auth/useIsAuthPending.js +30 -0
- package/dist/ra-core/src/auth/useLogin.d.ts +34 -0
- package/dist/ra-core/src/auth/useLogin.js +78 -0
- package/dist/ra-core/src/auth/useLogout.d.ts +31 -0
- package/dist/ra-core/src/auth/useLogout.js +117 -0
- package/dist/ra-core/src/auth/useLogoutIfAccessDenied.d.ts +42 -0
- package/dist/ra-core/src/auth/useLogoutIfAccessDenied.js +111 -0
- package/dist/ra-core/src/auth/usePermissions.d.ts +41 -0
- package/dist/ra-core/src/auth/usePermissions.js +123 -0
- package/dist/ra-core/src/controller/button/index.d.ts +7 -0
- package/dist/ra-core/src/controller/button/index.js +7 -0
- package/dist/ra-core/src/controller/button/useBulkDeleteController.d.ts +14 -0
- package/dist/ra-core/src/controller/button/useBulkDeleteController.js +66 -0
- package/dist/ra-core/src/controller/create/index.d.ts +6 -0
- package/dist/ra-core/src/controller/create/index.js +6 -0
- package/dist/ra-core/src/controller/create/useCreateController.d.ts +50 -0
- package/dist/ra-core/src/controller/create/useCreateController.js +149 -0
- package/dist/ra-core/src/controller/edit/index.d.ts +6 -0
- package/dist/ra-core/src/controller/edit/index.js +6 -0
- package/dist/ra-core/src/controller/edit/useEditController.d.ts +72 -0
- package/dist/ra-core/src/controller/edit/useEditController.js +206 -0
- package/dist/ra-core/src/controller/field/index.d.ts +12 -0
- package/dist/ra-core/src/controller/field/index.js +12 -0
- package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.d.ts +1 -0
- package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.js +1 -0
- package/dist/ra-core/src/controller/field/types.d.ts +28 -0
- package/dist/ra-core/src/controller/field/types.js +1 -0
- package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.d.ts +39 -0
- package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.js +82 -0
- package/dist/ra-core/src/controller/field/useReferenceFieldController.d.ts +14 -0
- package/dist/ra-core/src/controller/field/useReferenceFieldController.js +31 -0
- package/dist/ra-core/src/controller/field/useReferenceManyFieldController.d.ts +49 -0
- package/dist/ra-core/src/controller/field/useReferenceManyFieldController.js +264 -0
- package/dist/ra-core/src/controller/index.d.ts +17 -0
- package/dist/ra-core/src/controller/index.js +16 -0
- package/dist/ra-core/src/controller/input/ArrayInputContext.d.ts +9 -0
- package/dist/ra-core/src/controller/input/ArrayInputContext.js +8 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.d.ts +15 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.js +8 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.d.ts +13 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.js +8 -0
- package/dist/ra-core/src/controller/input/index.d.ts +17 -0
- package/dist/ra-core/src/controller/input/index.js +17 -0
- package/dist/ra-core/src/controller/input/referenceDataStatus.d.ts +32 -0
- package/dist/ra-core/src/controller/input/referenceDataStatus.js +74 -0
- package/dist/ra-core/src/controller/input/sanitizeInputRestProps.d.ts +1 -0
- package/dist/ra-core/src/controller/input/sanitizeInputRestProps.js +1 -0
- package/dist/ra-core/src/controller/input/types.d.ts +3 -0
- package/dist/ra-core/src/controller/input/types.js +1 -0
- package/dist/ra-core/src/controller/input/useArrayInput.d.ts +8 -0
- package/dist/ra-core/src/controller/input/useArrayInput.js +29 -0
- package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.d.ts +3 -0
- package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.js +37 -0
- package/dist/ra-core/src/controller/input/useReferenceArrayInputController.d.ts +48 -0
- package/dist/ra-core/src/controller/input/useReferenceArrayInputController.js +137 -0
- package/dist/ra-core/src/controller/input/useReferenceInputController.d.ts +54 -0
- package/dist/ra-core/src/controller/input/useReferenceInputController.js +208 -0
- package/dist/ra-core/src/controller/input/useReferenceParams.d.ts +106 -0
- package/dist/ra-core/src/controller/input/useReferenceParams.js +226 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIterator.d.ts +7 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIterator.js +15 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.d.ts +7 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.js +15 -0
- package/dist/ra-core/src/controller/list/InfinitePaginationContext.d.ts +25 -0
- package/dist/ra-core/src/controller/list/InfinitePaginationContext.js +32 -0
- package/dist/ra-core/src/controller/list/index.d.ts +30 -0
- package/dist/ra-core/src/controller/list/index.js +30 -0
- package/dist/ra-core/src/controller/list/queryReducer.d.ts +45 -0
- package/dist/ra-core/src/controller/list/queryReducer.js +85 -0
- package/dist/ra-core/src/controller/list/useFilterContext.d.ts +2 -0
- package/dist/ra-core/src/controller/list/useFilterContext.js +5 -0
- package/dist/ra-core/src/controller/list/useInfiniteListController.d.ts +44 -0
- package/dist/ra-core/src/controller/list/useInfiniteListController.js +175 -0
- package/dist/ra-core/src/controller/list/useInfinitePaginationContext.d.ts +16 -0
- package/dist/ra-core/src/controller/list/useInfinitePaginationContext.js +17 -0
- package/dist/ra-core/src/controller/list/useList.d.ts +55 -0
- package/dist/ra-core/src/controller/list/useList.js +223 -0
- package/dist/ra-core/src/controller/list/useListContext.d.ts +59 -0
- package/dist/ra-core/src/controller/list/useListContext.js +65 -0
- package/dist/ra-core/src/controller/list/useListContextWithProps.d.ts +44 -0
- package/dist/ra-core/src/controller/list/useListContextWithProps.js +84 -0
- package/dist/ra-core/src/controller/list/useListController.d.ts +296 -0
- package/dist/ra-core/src/controller/list/useListController.js +234 -0
- package/dist/ra-core/src/controller/list/useListFilterContext.d.ts +11 -0
- package/dist/ra-core/src/controller/list/useListFilterContext.js +18 -0
- package/dist/ra-core/src/controller/list/useListPaginationContext.d.ts +12 -0
- package/dist/ra-core/src/controller/list/useListPaginationContext.js +19 -0
- package/dist/ra-core/src/controller/list/useListParams.d.ts +116 -0
- package/dist/ra-core/src/controller/list/useListParams.js +281 -0
- package/dist/ra-core/src/controller/list/useListSortContext.d.ts +12 -0
- package/dist/ra-core/src/controller/list/useListSortContext.js +19 -0
- package/dist/ra-core/src/controller/list/useRecordSelection.d.ts +32 -0
- package/dist/ra-core/src/controller/list/useRecordSelection.js +93 -0
- package/dist/ra-core/src/controller/list/useSavedQueries.d.ts +14 -0
- package/dist/ra-core/src/controller/list/useSavedQueries.js +29 -0
- package/dist/ra-core/src/controller/list/useUnselect.d.ts +10 -0
- package/dist/ra-core/src/controller/list/useUnselect.js +18 -0
- package/dist/ra-core/src/controller/list/useUnselectAll.d.ts +9 -0
- package/dist/ra-core/src/controller/list/useUnselectAll.js +18 -0
- package/dist/ra-core/src/controller/record/index.d.ts +5 -0
- package/dist/ra-core/src/controller/record/index.js +5 -0
- package/dist/ra-core/src/controller/record/useRecordContext.d.ts +34 -0
- package/dist/ra-core/src/controller/record/useRecordContext.js +36 -0
- package/dist/ra-core/src/controller/saveContext/SaveContext.d.ts +20 -0
- package/dist/ra-core/src/controller/saveContext/SaveContext.js +2 -0
- package/dist/ra-core/src/controller/saveContext/index.d.ts +6 -0
- package/dist/ra-core/src/controller/saveContext/index.js +6 -0
- package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.d.ts +39 -0
- package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.js +79 -0
- package/dist/ra-core/src/controller/saveContext/usePickSaveContext.d.ts +5 -0
- package/dist/ra-core/src/controller/saveContext/usePickSaveContext.js +25 -0
- package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.d.ts +6 -0
- package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.js +18 -0
- package/dist/ra-core/src/controller/saveContext/useSaveContext.d.ts +14 -0
- package/dist/ra-core/src/controller/saveContext/useSaveContext.js +17 -0
- package/dist/ra-core/src/controller/show/index.d.ts +6 -0
- package/dist/ra-core/src/controller/show/index.js +6 -0
- package/dist/ra-core/src/controller/show/useShowController.d.ts +75 -0
- package/dist/ra-core/src/controller/show/useShowController.js +110 -0
- package/dist/ra-core/src/controller/useFilterState.d.ts +46 -0
- package/dist/ra-core/src/controller/useFilterState.js +70 -0
- package/dist/ra-core/src/controller/usePaginationState.d.ts +33 -0
- package/dist/ra-core/src/controller/usePaginationState.js +45 -0
- package/dist/ra-core/src/controller/usePrevNextController.d.ts +127 -0
- package/dist/ra-core/src/controller/usePrevNextController.js +215 -0
- package/dist/ra-core/src/controller/useReference.d.ts +49 -0
- package/dist/ra-core/src/controller/useReference.js +42 -0
- package/dist/ra-core/src/controller/useSortState.d.ts +61 -0
- package/dist/ra-core/src/controller/useSortState.js +96 -0
- package/dist/ra-core/src/core/DefaultTitleContext.d.ts +15 -0
- package/dist/ra-core/src/core/DefaultTitleContext.js +15 -0
- package/dist/ra-core/src/core/HasDashboardContext.d.ts +21 -0
- package/dist/ra-core/src/core/HasDashboardContext.js +22 -0
- package/dist/ra-core/src/core/ResourceContext.d.ts +19 -0
- package/dist/ra-core/src/core/ResourceContext.js +19 -0
- package/dist/ra-core/src/core/UserMenuContext.d.ts +34 -0
- package/dist/ra-core/src/core/UserMenuContext.js +28 -0
- package/dist/ra-core/src/core/index.d.ts +27 -0
- package/dist/ra-core/src/core/index.js +27 -0
- package/dist/ra-core/src/core/useGetRecordRepresentation.d.ts +13 -0
- package/dist/ra-core/src/core/useGetRecordRepresentation.js +44 -0
- package/dist/ra-core/src/core/useGetResourceLabel.d.ts +22 -0
- package/dist/ra-core/src/core/useGetResourceLabel.js +42 -0
- package/dist/ra-core/src/core/useIsOffline.d.ts +7 -0
- package/dist/ra-core/src/core/useIsOffline.js +18 -0
- package/dist/ra-core/src/core/useResourceContext.d.ts +36 -0
- package/dist/ra-core/src/core/useResourceContext.js +38 -0
- package/dist/ra-core/src/core/useResourceDefinition.d.ts +31 -0
- package/dist/ra-core/src/core/useResourceDefinition.js +48 -0
- package/dist/ra-core/src/core/useResourceDefinitionContext.d.ts +1 -0
- package/dist/ra-core/src/core/useResourceDefinitionContext.js +3 -0
- package/dist/ra-core/src/core/useResourceDefinitions.d.ts +21 -0
- package/dist/ra-core/src/core/useResourceDefinitions.js +20 -0
- package/dist/ra-core/src/core/useUserMenu.d.ts +28 -0
- package/dist/ra-core/src/core/useUserMenu.js +30 -0
- package/dist/ra-core/src/core/useWrappedSource.d.ts +11 -0
- package/dist/ra-core/src/core/useWrappedSource.js +15 -0
- package/dist/ra-core/src/dataProvider/DataProviderContext.d.ts +3 -0
- package/dist/ra-core/src/dataProvider/DataProviderContext.js +4 -0
- package/dist/ra-core/src/dataProvider/HttpError.d.ts +6 -0
- package/dist/ra-core/src/dataProvider/HttpError.js +19 -0
- package/dist/ra-core/src/dataProvider/combineDataProviders.d.ts +21 -0
- package/dist/ra-core/src/dataProvider/combineDataProviders.js +32 -0
- package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.d.ts +12 -0
- package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.js +40 -0
- package/dist/ra-core/src/dataProvider/dataFetchActions.d.ts +15 -0
- package/dist/ra-core/src/dataProvider/dataFetchActions.js +49 -0
- package/dist/ra-core/src/dataProvider/defaultDataProvider.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/defaultDataProvider.js +12 -0
- package/dist/ra-core/src/dataProvider/fetch.d.ts +32 -0
- package/dist/ra-core/src/dataProvider/fetch.js +78 -0
- package/dist/ra-core/src/dataProvider/index.d.ts +34 -0
- package/dist/ra-core/src/dataProvider/index.js +33 -0
- package/dist/ra-core/src/dataProvider/populateQueryCache.d.ts +22 -0
- package/dist/ra-core/src/dataProvider/populateQueryCache.js +30 -0
- package/dist/ra-core/src/dataProvider/testDataProvider.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/testDataProvider.js +41 -0
- package/dist/ra-core/src/dataProvider/undo/index.d.ts +6 -0
- package/dist/ra-core/src/dataProvider/undo/index.js +6 -0
- package/dist/ra-core/src/dataProvider/undo/types.d.ts +3 -0
- package/dist/ra-core/src/dataProvider/undo/types.js +1 -0
- package/dist/ra-core/src/dataProvider/undoableEventEmitter.d.ts +3 -0
- package/dist/ra-core/src/dataProvider/undoableEventEmitter.js +2 -0
- package/dist/ra-core/src/dataProvider/useCreate.d.ts +89 -0
- package/dist/ra-core/src/dataProvider/useCreate.js +155 -0
- package/dist/ra-core/src/dataProvider/useDataProvider.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/useDataProvider.js +140 -0
- package/dist/ra-core/src/dataProvider/useDelete.d.ts +83 -0
- package/dist/ra-core/src/dataProvider/useDelete.js +171 -0
- package/dist/ra-core/src/dataProvider/useDeleteMany.d.ts +81 -0
- package/dist/ra-core/src/dataProvider/useDeleteMany.js +193 -0
- package/dist/ra-core/src/dataProvider/useGetList.d.ts +58 -0
- package/dist/ra-core/src/dataProvider/useGetList.js +131 -0
- package/dist/ra-core/src/dataProvider/useGetMany.d.ts +49 -0
- package/dist/ra-core/src/dataProvider/useGetMany.js +143 -0
- package/dist/ra-core/src/dataProvider/useGetManyAggregate.d.ts +62 -0
- package/dist/ra-core/src/dataProvider/useGetManyAggregate.js +295 -0
- package/dist/ra-core/src/dataProvider/useGetManyReference.d.ts +62 -0
- package/dist/ra-core/src/dataProvider/useGetManyReference.js +117 -0
- package/dist/ra-core/src/dataProvider/useGetOne.d.ts +48 -0
- package/dist/ra-core/src/dataProvider/useGetOne.js +94 -0
- package/dist/ra-core/src/dataProvider/useGetRecordId.d.ts +14 -0
- package/dist/ra-core/src/dataProvider/useGetRecordId.js +22 -0
- package/dist/ra-core/src/dataProvider/useInfiniteGetList.d.ts +64 -0
- package/dist/ra-core/src/dataProvider/useInfiniteGetList.js +177 -0
- package/dist/ra-core/src/dataProvider/useIsDataLoaded.d.ts +13 -0
- package/dist/ra-core/src/dataProvider/useIsDataLoaded.js +35 -0
- package/dist/ra-core/src/dataProvider/useLoading.d.ts +12 -0
- package/dist/ra-core/src/dataProvider/useLoading.js +41 -0
- package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.d.ts +51 -0
- package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.js +238 -0
- package/dist/ra-core/src/dataProvider/useRefresh.d.ts +14 -0
- package/dist/ra-core/src/dataProvider/useRefresh.js +21 -0
- package/dist/ra-core/src/dataProvider/useUpdate.d.ts +89 -0
- package/dist/ra-core/src/dataProvider/useUpdate.js +183 -0
- package/dist/ra-core/src/dataProvider/useUpdateMany.d.ts +81 -0
- package/dist/ra-core/src/dataProvider/useUpdateMany.js +171 -0
- package/dist/ra-core/src/dataProvider/validateResponseFormat.d.ts +5 -0
- package/dist/ra-core/src/dataProvider/validateResponseFormat.js +35 -0
- package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.d.ts +162 -0
- package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.js +377 -0
- package/dist/ra-core/src/dataTable/DataTableCallbacksContext.d.ts +18 -0
- package/dist/ra-core/src/dataTable/DataTableCallbacksContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.d.ts +2 -0
- package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableColumnRankContext.d.ts +2 -0
- package/dist/ra-core/src/dataTable/DataTableColumnRankContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableConfigContext.d.ts +22 -0
- package/dist/ra-core/src/dataTable/DataTableConfigContext.js +7 -0
- package/dist/ra-core/src/dataTable/DataTableDataContext.d.ts +4 -0
- package/dist/ra-core/src/dataTable/DataTableDataContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableRenderContext.d.ts +3 -0
- package/dist/ra-core/src/dataTable/DataTableRenderContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.d.ts +3 -0
- package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableSortContext.d.ts +3 -0
- package/dist/ra-core/src/dataTable/DataTableSortContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableStoreContext.d.ts +8 -0
- package/dist/ra-core/src/dataTable/DataTableStoreContext.js +6 -0
- package/dist/ra-core/src/dataTable/index.d.ts +11 -0
- package/dist/ra-core/src/dataTable/index.js +11 -0
- package/dist/ra-core/src/dataTable/types.d.ts +2 -0
- package/dist/ra-core/src/dataTable/types.js +1 -0
- package/dist/ra-core/src/export/ExporterContext.d.ts +2 -0
- package/dist/ra-core/src/export/ExporterContext.js +4 -0
- package/dist/ra-core/src/export/defaultExporter.d.ts +2 -0
- package/dist/ra-core/src/export/defaultExporter.js +3 -0
- package/dist/ra-core/src/export/downloadCSV.d.ts +1 -0
- package/dist/ra-core/src/export/downloadCSV.js +17 -0
- package/dist/ra-core/src/export/fetchRelatedRecords.d.ts +14 -0
- package/dist/ra-core/src/export/fetchRelatedRecords.js +19 -0
- package/dist/ra-core/src/export/getRelatedIds.d.ts +24 -0
- package/dist/ra-core/src/export/getRelatedIds.js +26 -0
- package/dist/ra-core/src/export/index.d.ts +5 -0
- package/dist/ra-core/src/export/index.js +5 -0
- package/dist/ra-core/src/export/useBulkExport.d.ts +11 -0
- package/dist/ra-core/src/export/useBulkExport.js +30 -0
- package/dist/ra-core/src/form/WarnWhenUnsavedChanges.d.ts +5 -0
- package/dist/ra-core/src/form/WarnWhenUnsavedChanges.js +5 -0
- package/dist/ra-core/src/form/choices/ChoicesContext.d.ts +65 -0
- package/dist/ra-core/src/form/choices/ChoicesContext.js +7 -0
- package/dist/ra-core/src/form/choices/index.d.ts +4 -0
- package/dist/ra-core/src/form/choices/index.js +4 -0
- package/dist/ra-core/src/form/choices/useChoicesContext.d.ts +5 -0
- package/dist/ra-core/src/form/choices/useChoicesContext.js +62 -0
- package/dist/ra-core/src/form/getFormInitialValues.d.ts +8 -0
- package/dist/ra-core/src/form/getFormInitialValues.js +14 -0
- package/dist/ra-core/src/form/groups/FormGroupContext.d.ts +9 -0
- package/dist/ra-core/src/form/groups/FormGroupContext.js +9 -0
- package/dist/ra-core/src/form/groups/index.d.ts +6 -0
- package/dist/ra-core/src/form/groups/index.js +6 -0
- package/dist/ra-core/src/form/groups/useFormGroup.d.ts +67 -0
- package/dist/ra-core/src/form/groups/useFormGroup.js +146 -0
- package/dist/ra-core/src/form/groups/useFormGroupContext.d.ts +4 -0
- package/dist/ra-core/src/form/groups/useFormGroupContext.js +9 -0
- package/dist/ra-core/src/form/groups/useFormGroups.d.ts +4 -0
- package/dist/ra-core/src/form/groups/useFormGroups.js +9 -0
- package/dist/ra-core/src/form/index.d.ts +14 -0
- package/dist/ra-core/src/form/index.js +14 -0
- package/dist/ra-core/src/form/sanitizeEmptyValues.d.ts +7 -0
- package/dist/ra-core/src/form/sanitizeEmptyValues.js +26 -0
- package/dist/ra-core/src/form/useApplyInputDefaultValues.d.ts +19 -0
- package/dist/ra-core/src/form/useApplyInputDefaultValues.js +71 -0
- package/dist/ra-core/src/form/useAugmentedForm.d.ts +32 -0
- package/dist/ra-core/src/form/useAugmentedForm.js +101 -0
- package/dist/ra-core/src/form/useFormIsDirty.d.ts +4 -0
- package/dist/ra-core/src/form/useFormIsDirty.js +39 -0
- package/dist/ra-core/src/form/useInput.d.ts +33 -0
- package/dist/ra-core/src/form/useInput.js +100 -0
- package/dist/ra-core/src/form/useRecordFromLocation.d.ts +22 -0
- package/dist/ra-core/src/form/useRecordFromLocation.js +59 -0
- package/dist/ra-core/src/form/useSuggestions.d.ts +43 -0
- package/dist/ra-core/src/form/useSuggestions.js +186 -0
- package/dist/ra-core/src/form/validation/getSimpleValidationResolver.d.ts +31 -0
- package/dist/ra-core/src/form/validation/getSimpleValidationResolver.js +87 -0
- package/dist/ra-core/src/form/validation/index.d.ts +7 -0
- package/dist/ra-core/src/form/validation/index.js +7 -0
- package/dist/ra-core/src/form/validation/setSubmissionErrors.d.ts +21 -0
- package/dist/ra-core/src/form/validation/setSubmissionErrors.js +34 -0
- package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.d.ts +26 -0
- package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.js +35 -0
- package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.d.ts +9 -0
- package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.js +30 -0
- package/dist/ra-core/src/form/validation/useUnique.d.ts +57 -0
- package/dist/ra-core/src/form/validation/useUnique.js +107 -0
- package/dist/ra-core/src/form/validation/validate.d.ts +168 -0
- package/dist/ra-core/src/form/validation/validate.js +218 -0
- package/dist/ra-core/src/i18n/I18nContext.d.ts +3 -0
- package/dist/ra-core/src/i18n/I18nContext.js +11 -0
- package/dist/ra-core/src/i18n/TranslatableContext.d.ts +16 -0
- package/dist/ra-core/src/i18n/TranslatableContext.js +2 -0
- package/dist/ra-core/src/i18n/TranslationMessages.d.ts +221 -0
- package/dist/ra-core/src/i18n/TranslationMessages.js +1 -0
- package/dist/ra-core/src/i18n/TranslationUtils.d.ts +60 -0
- package/dist/ra-core/src/i18n/TranslationUtils.js +70 -0
- package/dist/ra-core/src/i18n/index.d.ts +20 -0
- package/dist/ra-core/src/i18n/index.js +20 -0
- package/dist/ra-core/src/i18n/substituteTokens.d.ts +8 -0
- package/dist/ra-core/src/i18n/substituteTokens.js +18 -0
- package/dist/ra-core/src/i18n/useI18nProvider.d.ts +12 -0
- package/dist/ra-core/src/i18n/useI18nProvider.js +14 -0
- package/dist/ra-core/src/i18n/useLocales.d.ts +31 -0
- package/dist/ra-core/src/i18n/useLocales.js +28 -0
- package/dist/ra-core/src/i18n/useResourceTranslation.d.ts +8 -0
- package/dist/ra-core/src/i18n/useResourceTranslation.js +18 -0
- package/dist/ra-core/src/i18n/useTranslatable.d.ts +29 -0
- package/dist/ra-core/src/i18n/useTranslatable.js +98 -0
- package/dist/ra-core/src/i18n/useTranslatableContext.d.ts +31 -0
- package/dist/ra-core/src/i18n/useTranslatableContext.js +38 -0
- package/dist/ra-core/src/i18n/useTranslate.d.ts +21 -0
- package/dist/ra-core/src/i18n/useTranslate.js +29 -0
- package/dist/ra-core/src/i18n/useTranslateLabel.d.ts +6 -0
- package/dist/ra-core/src/i18n/useTranslateLabel.js +26 -0
- package/dist/ra-core/src/index.d.ts +16 -0
- package/dist/ra-core/src/index.js +16 -0
- package/dist/ra-core/src/inference/InferredElement.d.ts +12 -0
- package/dist/ra-core/src/inference/InferredElement.js +40 -0
- package/dist/ra-core/src/inference/assertions.d.ts +26 -0
- package/dist/ra-core/src/inference/assertions.js +38 -0
- package/dist/ra-core/src/inference/getElementsFromRecords.d.ts +35 -0
- package/dist/ra-core/src/inference/getElementsFromRecords.js +39 -0
- package/dist/ra-core/src/inference/getValuesFromRecords.d.ts +28 -0
- package/dist/ra-core/src/inference/getValuesFromRecords.js +40 -0
- package/dist/ra-core/src/inference/index.d.ts +6 -0
- package/dist/ra-core/src/inference/index.js +6 -0
- package/dist/ra-core/src/inference/inferTypeFromValues.d.ts +21 -0
- package/dist/ra-core/src/inference/inferTypeFromValues.js +141 -0
- package/dist/ra-core/src/inference/types.d.ts +9 -0
- package/dist/ra-core/src/inference/types.js +1 -0
- package/dist/ra-core/src/notification/CloseNotificationContext.d.ts +2 -0
- package/dist/ra-core/src/notification/CloseNotificationContext.js +2 -0
- package/dist/ra-core/src/notification/NotificationContext.d.ts +37 -0
- package/dist/ra-core/src/notification/NotificationContext.js +35 -0
- package/dist/ra-core/src/notification/index.d.ts +9 -0
- package/dist/ra-core/src/notification/index.js +9 -0
- package/dist/ra-core/src/notification/types.d.ts +14 -0
- package/dist/ra-core/src/notification/types.js +1 -0
- package/dist/ra-core/src/notification/useCloseNotification.d.ts +1 -0
- package/dist/ra-core/src/notification/useCloseNotification.js +9 -0
- package/dist/ra-core/src/notification/useNotificationContext.d.ts +1 -0
- package/dist/ra-core/src/notification/useNotificationContext.js +3 -0
- package/dist/ra-core/src/notification/useNotify.d.ts +20 -0
- package/dist/ra-core/src/notification/useNotify.js +28 -0
- package/dist/ra-core/src/preferences/index.d.ts +7 -0
- package/dist/ra-core/src/preferences/index.js +7 -0
- package/dist/ra-core/src/preferences/usePreference.d.ts +18 -0
- package/dist/ra-core/src/preferences/usePreference.js +10 -0
- package/dist/ra-core/src/preferences/usePreferenceInput.d.ts +22 -0
- package/dist/ra-core/src/preferences/usePreferenceInput.js +43 -0
- package/dist/ra-core/src/preferences/usePreferencesEditor.d.ts +2 -0
- package/dist/ra-core/src/preferences/usePreferencesEditor.js +9 -0
- package/dist/ra-core/src/preferences/useSetInspectorTitle.d.ts +7 -0
- package/dist/ra-core/src/preferences/useSetInspectorTitle.js +19 -0
- package/dist/ra-core/src/routing/BasenameContext.d.ts +1 -0
- package/dist/ra-core/src/routing/BasenameContext.js +2 -0
- package/dist/ra-core/src/routing/RouterProvider.d.ts +163 -0
- package/dist/ra-core/src/routing/RouterProvider.js +1 -0
- package/dist/ra-core/src/routing/index.d.ts +28 -0
- package/dist/ra-core/src/routing/index.js +28 -0
- package/dist/ra-core/src/routing/types.d.ts +3 -0
- package/dist/ra-core/src/routing/types.js +1 -0
- package/dist/ra-core/src/routing/useBasename.d.ts +21 -0
- package/dist/ra-core/src/routing/useBasename.js +23 -0
- package/dist/ra-core/src/routing/useBlocker.d.ts +14 -0
- package/dist/ra-core/src/routing/useBlocker.js +17 -0
- package/dist/ra-core/src/routing/useCanBlock.d.ts +7 -0
- package/dist/ra-core/src/routing/useCanBlock.js +11 -0
- package/dist/ra-core/src/routing/useCreatePath.d.ts +42 -0
- package/dist/ra-core/src/routing/useCreatePath.js +69 -0
- package/dist/ra-core/src/routing/useGetPathForRecord.d.ts +42 -0
- package/dist/ra-core/src/routing/useGetPathForRecord.js +135 -0
- package/dist/ra-core/src/routing/useGetPathForRecordCallback.d.ts +6 -0
- package/dist/ra-core/src/routing/useGetPathForRecordCallback.js +82 -0
- package/dist/ra-core/src/routing/useInRouterContext.d.ts +11 -0
- package/dist/ra-core/src/routing/useInRouterContext.js +15 -0
- package/dist/ra-core/src/routing/useLocation.d.ts +10 -0
- package/dist/ra-core/src/routing/useLocation.js +13 -0
- package/dist/ra-core/src/routing/useMatch.d.ts +15 -0
- package/dist/ra-core/src/routing/useMatch.js +15 -0
- package/dist/ra-core/src/routing/useMatchPath.d.ts +17 -0
- package/dist/ra-core/src/routing/useMatchPath.js +17 -0
- package/dist/ra-core/src/routing/useNavigate.d.ts +12 -0
- package/dist/ra-core/src/routing/useNavigate.js +15 -0
- package/dist/ra-core/src/routing/useParams.d.ts +9 -0
- package/dist/ra-core/src/routing/useParams.js +13 -0
- package/dist/ra-core/src/routing/useRedirect.d.ts +30 -0
- package/dist/ra-core/src/routing/useRedirect.js +66 -0
- package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.d.ts +7 -0
- package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.js +17 -0
- package/dist/ra-core/src/routing/useRestoreScrollPosition.d.ts +40 -0
- package/dist/ra-core/src/routing/useRestoreScrollPosition.js +70 -0
- package/dist/ra-core/src/routing/useSplatPathBase.d.ts +13 -0
- package/dist/ra-core/src/routing/useSplatPathBase.js +21 -0
- package/dist/ra-core/src/store/index.d.ts +11 -0
- package/dist/ra-core/src/store/index.js +11 -0
- package/dist/ra-core/src/store/localStorageStore.d.ts +27 -0
- package/dist/ra-core/src/store/localStorageStore.js +198 -0
- package/dist/ra-core/src/store/types.d.ts +11 -0
- package/dist/ra-core/src/store/types.js +1 -0
- package/dist/ra-core/src/store/useRemoveFromStore.d.ts +17 -0
- package/dist/ra-core/src/store/useRemoveFromStore.js +29 -0
- package/dist/ra-core/src/store/useRemoveItemsFromStore.d.ts +17 -0
- package/dist/ra-core/src/store/useRemoveItemsFromStore.js +29 -0
- package/dist/ra-core/src/store/useResetStore.d.ts +17 -0
- package/dist/ra-core/src/store/useResetStore.js +21 -0
- package/dist/ra-core/src/store/useStore.d.ts +48 -0
- package/dist/ra-core/src/store/useStore.js +32 -0
- package/dist/ra-core/src/store/useStoreContext.d.ts +4 -0
- package/dist/ra-core/src/store/useStoreContext.js +6 -0
- package/dist/ra-core/src/test-ui/defaultI18nProvider.d.ts +2 -0
- package/dist/ra-core/src/test-ui/defaultI18nProvider.js +10 -0
- package/dist/ra-core/src/test-ui/index.d.ts +21 -0
- package/dist/ra-core/src/test-ui/index.js +21 -0
- package/dist/ra-core/src/types.d.ts +284 -0
- package/dist/ra-core/src/types.js +5 -0
- package/dist/ra-core/src/util/asyncDebounce.d.ts +7 -0
- package/dist/ra-core/src/util/asyncDebounce.js +29 -0
- package/dist/ra-core/src/util/escapePath.d.ts +11 -0
- package/dist/ra-core/src/util/escapePath.js +10 -0
- package/dist/ra-core/src/util/genericMemo.d.ts +5 -0
- package/dist/ra-core/src/util/genericMemo.js +14 -0
- package/dist/ra-core/src/util/getFieldLabelTranslationArgs.d.ts +22 -0
- package/dist/ra-core/src/util/getFieldLabelTranslationArgs.js +73 -0
- package/dist/ra-core/src/util/getMutationMode.d.ts +1 -0
- package/dist/ra-core/src/util/getMutationMode.js +13 -0
- package/dist/ra-core/src/util/hooks.d.ts +15 -0
- package/dist/ra-core/src/util/hooks.js +73 -0
- package/dist/ra-core/src/util/index.d.ts +20 -0
- package/dist/ra-core/src/util/index.js +19 -0
- package/dist/ra-core/src/util/mergeRefs.d.ts +2 -0
- package/dist/ra-core/src/util/mergeRefs.js +13 -0
- package/dist/ra-core/src/util/removeEmpty.d.ts +2 -0
- package/dist/ra-core/src/util/removeEmpty.js +16 -0
- package/dist/ra-core/src/util/removeKey.d.ts +2 -0
- package/dist/ra-core/src/util/removeKey.js +22 -0
- package/dist/ra-core/src/util/shallowEqual.d.ts +1 -0
- package/dist/ra-core/src/util/shallowEqual.js +29 -0
- package/dist/ra-core/src/util/useCheckForApplicationUpdate.d.ts +21 -0
- package/dist/ra-core/src/util/useCheckForApplicationUpdate.js +84 -0
- package/dist/ra-core/src/util/useDebouncedEvent.d.ts +8 -0
- package/dist/ra-core/src/util/useDebouncedEvent.js +28 -0
- package/dist/ra-core/src/util/useEvent.d.ts +7 -0
- package/dist/ra-core/src/util/useEvent.js +19 -0
- package/dist/ra-core/src/util/useFieldValue.d.ts +21 -0
- package/dist/ra-core/src/util/useFieldValue.js +27 -0
- package/dist/ra-core/src/util/useWhyDidYouUpdate.d.ts +12 -0
- package/dist/ra-core/src/util/useWhyDidYouUpdate.js +42 -0
- package/dist/ra-core/src/util/warning.d.ts +2 -0
- package/dist/ra-core/src/util/warning.js +5 -0
- package/dist/strato-faker-ecommerce/src/dataProvider.d.ts +2 -0
- package/dist/strato-faker-ecommerce/src/dataProvider.js +6 -0
- package/dist/strato-faker-ecommerce/src/generate.d.ts +8 -0
- package/dist/strato-faker-ecommerce/src/generate.js +148 -0
- package/dist/strato-faker-ecommerce/src/index.d.ts +3 -0
- package/dist/strato-faker-ecommerce/src/index.js +3 -0
- package/dist/strato-faker-ecommerce/src/types.d.ts +69 -0
- package/dist/strato-faker-ecommerce/src/types.js +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +6 -5
- package/src/dataProvider.ts +3 -3
- package/src/generate.test.ts +12 -12
- package/src/generate.ts +21 -14
- package/src/types.ts +1 -1
package/dist/dataProvider.js
CHANGED
package/dist/generate.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Category, Customer, Order, Product, Review } from './types';
|
|
1
|
+
import { Category, Customer, Order, OrderItem, Product, Review } from './types';
|
|
2
2
|
export declare const generateEcommerceData: () => {
|
|
3
3
|
categories: Category[];
|
|
4
4
|
customers: Customer[];
|
|
5
5
|
products: Product[];
|
|
6
6
|
reviews: Review[];
|
|
7
7
|
orders: Order[];
|
|
8
|
+
'order-items': OrderItem[];
|
|
8
9
|
};
|
package/dist/generate.js
CHANGED
|
@@ -31,7 +31,10 @@ export const generateEcommerceData = () => {
|
|
|
31
31
|
const last_seen = faker.date.between({ from: first_seen, to: new Date() });
|
|
32
32
|
const has_ordered = faker.datatype.boolean({ probability: 0.8 });
|
|
33
33
|
const has_newsletter = faker.datatype.boolean({ probability: 0.3 });
|
|
34
|
-
const groups = faker.helpers.arrayElements(['collector', 'ordered_once', 'regular', 'reviewer'], {
|
|
34
|
+
const groups = faker.helpers.arrayElements(['collector', 'ordered_once', 'regular', 'reviewer'], {
|
|
35
|
+
min: 0,
|
|
36
|
+
max: 2,
|
|
37
|
+
});
|
|
35
38
|
return {
|
|
36
39
|
id,
|
|
37
40
|
first_name,
|
|
@@ -89,21 +92,24 @@ export const generateEcommerceData = () => {
|
|
|
89
92
|
};
|
|
90
93
|
});
|
|
91
94
|
// 5. Generate Orders
|
|
95
|
+
const allOrderItems = [];
|
|
92
96
|
const orders = Array.from({ length: 300 }, (_, id) => {
|
|
93
|
-
const customer = faker.helpers.arrayElement(customers.filter(c => c.has_ordered));
|
|
97
|
+
const customer = faker.helpers.arrayElement(customers.filter((c) => c.has_ordered));
|
|
94
98
|
const date = faker.date.between({ from: customer.first_seen, to: customer.last_seen });
|
|
95
99
|
const nbItems = faker.number.int({ min: 1, max: 5 });
|
|
96
|
-
const
|
|
100
|
+
const items = Array.from({ length: nbItems }, (_, itemId) => {
|
|
97
101
|
const product = faker.helpers.arrayElement(products);
|
|
98
|
-
|
|
102
|
+
const item = {
|
|
99
103
|
id: id * 10 + itemId,
|
|
100
104
|
order_id: id,
|
|
101
105
|
product_id: product.id,
|
|
102
106
|
quantity: faker.number.int({ min: 1, max: 10 }),
|
|
103
107
|
unit_price: product.price,
|
|
104
108
|
};
|
|
109
|
+
allOrderItems.push(item);
|
|
110
|
+
return item;
|
|
105
111
|
});
|
|
106
|
-
const total_ex_taxes =
|
|
112
|
+
const total_ex_taxes = items.reduce((sum, item) => sum + item.quantity * item.unit_price, 0);
|
|
107
113
|
const delivery_fees = faker.number.float({ min: 0, max: 20, fractionDigits: 2 });
|
|
108
114
|
const tax_rate = 0.2;
|
|
109
115
|
const taxes = (total_ex_taxes + delivery_fees) * tax_rate;
|
|
@@ -117,8 +123,8 @@ export const generateEcommerceData = () => {
|
|
|
117
123
|
customer.latest_purchase = date;
|
|
118
124
|
}
|
|
119
125
|
// Update product stats
|
|
120
|
-
|
|
121
|
-
const product = products.find(p => p.id === item.product_id);
|
|
126
|
+
items.forEach((item) => {
|
|
127
|
+
const product = products.find((p) => p.id === item.product_id);
|
|
122
128
|
if (product) {
|
|
123
129
|
product.sales += item.quantity;
|
|
124
130
|
}
|
|
@@ -128,7 +134,7 @@ export const generateEcommerceData = () => {
|
|
|
128
134
|
reference: faker.string.alphanumeric({ length: 6, casing: 'upper' }),
|
|
129
135
|
date,
|
|
130
136
|
customer_id: customer.id,
|
|
131
|
-
|
|
137
|
+
items,
|
|
132
138
|
total_ex_taxes,
|
|
133
139
|
delivery_fees,
|
|
134
140
|
tax_rate,
|
|
@@ -144,5 +150,6 @@ export const generateEcommerceData = () => {
|
|
|
144
150
|
products,
|
|
145
151
|
reviews,
|
|
146
152
|
orders,
|
|
153
|
+
'order-items': allOrderItems,
|
|
147
154
|
};
|
|
148
155
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import useLogout from './useLogout';
|
|
3
|
+
/**
|
|
4
|
+
* Log the user out and redirect them to login.
|
|
5
|
+
*
|
|
6
|
+
* To be used as a catch-all route for anonymous users in a secure app.
|
|
7
|
+
*
|
|
8
|
+
* @see CoreAdminRoutes
|
|
9
|
+
*/
|
|
10
|
+
export const LogoutOnMount = () => {
|
|
11
|
+
const logout = useLogout();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
logout();
|
|
14
|
+
}, [logout]);
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AuthProvider } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* A higher-order function which wraps an authProvider to handle refreshing authentication.
|
|
4
|
+
* This is useful when the authentication service supports a refresh token mechanism.
|
|
5
|
+
* The wrapped provider will call the refreshAuth function before
|
|
6
|
+
* calling the authProvider checkAuth, getIdentity and getPermissions methods.
|
|
7
|
+
*
|
|
8
|
+
* The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
|
|
9
|
+
* It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
|
|
10
|
+
*
|
|
11
|
+
* @param provider An authProvider
|
|
12
|
+
* @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
|
|
13
|
+
* @returns A wrapped authProvider.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { addRefreshAuthToAuthProvider } from 'react-admin';
|
|
17
|
+
* import { authProvider } from './authProvider';
|
|
18
|
+
* import { refreshAuth } from './refreshAuth';
|
|
19
|
+
*
|
|
20
|
+
* const authProvider = addRefreshAuthToAuthProvider(authProvider, refreshAuth);
|
|
21
|
+
*/
|
|
22
|
+
export declare const addRefreshAuthToAuthProvider: <AuthProviderType extends AuthProvider = AuthProvider>(provider: AuthProviderType, refreshAuth: () => Promise<void>) => AuthProviderType;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A higher-order function which wraps an authProvider to handle refreshing authentication.
|
|
3
|
+
* This is useful when the authentication service supports a refresh token mechanism.
|
|
4
|
+
* The wrapped provider will call the refreshAuth function before
|
|
5
|
+
* calling the authProvider checkAuth, getIdentity and getPermissions methods.
|
|
6
|
+
*
|
|
7
|
+
* The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
|
|
8
|
+
* It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
|
|
9
|
+
*
|
|
10
|
+
* @param provider An authProvider
|
|
11
|
+
* @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
|
|
12
|
+
* @returns A wrapped authProvider.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { addRefreshAuthToAuthProvider } from 'react-admin';
|
|
16
|
+
* import { authProvider } from './authProvider';
|
|
17
|
+
* import { refreshAuth } from './refreshAuth';
|
|
18
|
+
*
|
|
19
|
+
* const authProvider = addRefreshAuthToAuthProvider(authProvider, refreshAuth);
|
|
20
|
+
*/
|
|
21
|
+
export const addRefreshAuthToAuthProvider = (provider, refreshAuth) => {
|
|
22
|
+
const proxy = new Proxy(provider, {
|
|
23
|
+
get(_, name) {
|
|
24
|
+
const shouldIntercept = AuthProviderInterceptedMethods.includes(name.toString()) &&
|
|
25
|
+
provider[name.toString()] != null;
|
|
26
|
+
if (shouldIntercept) {
|
|
27
|
+
return async (...args) => {
|
|
28
|
+
await refreshAuth();
|
|
29
|
+
return provider[name.toString()](...args);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return provider[name.toString()];
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
return proxy;
|
|
36
|
+
};
|
|
37
|
+
const AuthProviderInterceptedMethods = [
|
|
38
|
+
'checkAuth',
|
|
39
|
+
'getIdentity',
|
|
40
|
+
'getPermissions',
|
|
41
|
+
];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DataProvider } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* A higher-order function which wraps a dataProvider to handle refreshing authentication.
|
|
4
|
+
* This is useful when the authentication service supports a refresh token mechanism.
|
|
5
|
+
* The wrapped provider will call the refreshAuth function before calling any dataProvider methods.
|
|
6
|
+
*
|
|
7
|
+
* The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
|
|
8
|
+
* It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
|
|
9
|
+
*
|
|
10
|
+
* @param provider A dataProvider
|
|
11
|
+
* @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
|
|
12
|
+
* @returns A wrapped dataProvider.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { addRefreshAuthToDataProvider } from 'react-admin';
|
|
16
|
+
* import { jsonServerProvider } from 'ra-data-json-server';
|
|
17
|
+
* import { refreshAuth } from './refreshAuth';
|
|
18
|
+
*
|
|
19
|
+
* const dataProvider = addRefreshAuthToDataProvider(jsonServerProvider('http://localhost:3000'), refreshAuth);
|
|
20
|
+
*/
|
|
21
|
+
export declare const addRefreshAuthToDataProvider: <DataProviderType extends DataProvider = DataProvider>(provider: DataProviderType, refreshAuth: () => Promise<void>) => DataProviderType;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A higher-order function which wraps a dataProvider to handle refreshing authentication.
|
|
3
|
+
* This is useful when the authentication service supports a refresh token mechanism.
|
|
4
|
+
* The wrapped provider will call the refreshAuth function before calling any dataProvider methods.
|
|
5
|
+
*
|
|
6
|
+
* The refreshAuth function should return a Promise that resolves when the authentication token has been refreshed.
|
|
7
|
+
* It might throw an error if the refresh failed. In this case, react-admin will handle the error as usual.
|
|
8
|
+
*
|
|
9
|
+
* @param provider A dataProvider
|
|
10
|
+
* @param refreshAuth A function that refreshes the authentication token if needed and returns a Promise.
|
|
11
|
+
* @returns A wrapped dataProvider.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { addRefreshAuthToDataProvider } from 'react-admin';
|
|
15
|
+
* import { jsonServerProvider } from 'ra-data-json-server';
|
|
16
|
+
* import { refreshAuth } from './refreshAuth';
|
|
17
|
+
*
|
|
18
|
+
* const dataProvider = addRefreshAuthToDataProvider(jsonServerProvider('http://localhost:3000'), refreshAuth);
|
|
19
|
+
*/
|
|
20
|
+
export const addRefreshAuthToDataProvider = (provider, refreshAuth) => {
|
|
21
|
+
const proxy = new Proxy(provider, {
|
|
22
|
+
get(_, name) {
|
|
23
|
+
return async (...args) => {
|
|
24
|
+
await refreshAuth();
|
|
25
|
+
return provider[name.toString()](...args);
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
return proxy;
|
|
30
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AuthProvider, LegacyAuthProvider } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Turn a function-based authProvider to an object-based one
|
|
4
|
+
*
|
|
5
|
+
* Allows using legacy authProviders transparently.
|
|
6
|
+
*
|
|
7
|
+
* @param {Function} legacyAuthProvider A legacy authProvider (type, params) => Promise<any>
|
|
8
|
+
*
|
|
9
|
+
* @returns {Object} An authProvider that react-admin can use
|
|
10
|
+
*/
|
|
11
|
+
declare const _default: (legacyAuthProvider: LegacyAuthProvider) => AuthProvider;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_CHECK, AUTH_ERROR, AUTH_GET_PERMISSIONS, } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Turn a function-based authProvider to an object-based one
|
|
4
|
+
*
|
|
5
|
+
* Allows using legacy authProviders transparently.
|
|
6
|
+
*
|
|
7
|
+
* @param {Function} legacyAuthProvider A legacy authProvider (type, params) => Promise<any>
|
|
8
|
+
*
|
|
9
|
+
* @returns {Object} An authProvider that react-admin can use
|
|
10
|
+
*/
|
|
11
|
+
export default (legacyAuthProvider) => {
|
|
12
|
+
const authProvider = (...args) => legacyAuthProvider.apply(null, args);
|
|
13
|
+
authProvider.login = params => legacyAuthProvider(AUTH_LOGIN, params);
|
|
14
|
+
authProvider.logout = params => legacyAuthProvider(AUTH_LOGOUT, params);
|
|
15
|
+
authProvider.checkAuth = params => legacyAuthProvider(AUTH_CHECK, params);
|
|
16
|
+
authProvider.checkError = error => legacyAuthProvider(AUTH_ERROR, error);
|
|
17
|
+
authProvider.getPermissions = params => legacyAuthProvider(AUTH_GET_PERMISSIONS, params);
|
|
18
|
+
return authProvider;
|
|
19
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import useAuthProvider from './useAuthProvider';
|
|
2
|
+
import useAuthState from './useAuthState';
|
|
3
|
+
import usePermissions from './usePermissions';
|
|
4
|
+
import WithPermissions, { WithPermissionsProps } from './WithPermissions';
|
|
5
|
+
import useLogin from './useLogin';
|
|
6
|
+
import useLogout from './useLogout';
|
|
7
|
+
import useGetPermissions from './useGetPermissions';
|
|
8
|
+
import useLogoutIfAccessDenied from './useLogoutIfAccessDenied';
|
|
9
|
+
import convertLegacyAuthProvider from './convertLegacyAuthProvider';
|
|
10
|
+
export * from './Authenticated';
|
|
11
|
+
export * from './AuthContext';
|
|
12
|
+
export * from './CanAccess';
|
|
13
|
+
export * from './LogoutOnMount';
|
|
14
|
+
export * from './types';
|
|
15
|
+
export * from './useAuthenticated';
|
|
16
|
+
export * from './useCanAccess';
|
|
17
|
+
export * from './useCanAccessResources';
|
|
18
|
+
export * from './useCanAccessCallback';
|
|
19
|
+
export * from './useCheckAuth';
|
|
20
|
+
export * from './useGetIdentity';
|
|
21
|
+
export * from './useHandleAuthCallback';
|
|
22
|
+
export * from './useIsAuthPending';
|
|
23
|
+
export * from './useRequireAccess';
|
|
24
|
+
export * from './addRefreshAuthToAuthProvider';
|
|
25
|
+
export * from './addRefreshAuthToDataProvider';
|
|
26
|
+
export { useAuthProvider, convertLegacyAuthProvider, useLogin, useLogout, useGetPermissions, usePermissions, useAuthState, useLogoutIfAccessDenied, WithPermissions, };
|
|
27
|
+
export type { WithPermissionsProps };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import useAuthProvider from './useAuthProvider';
|
|
2
|
+
import useAuthState from './useAuthState';
|
|
3
|
+
import usePermissions from './usePermissions';
|
|
4
|
+
import WithPermissions from './WithPermissions';
|
|
5
|
+
import useLogin from './useLogin';
|
|
6
|
+
import useLogout from './useLogout';
|
|
7
|
+
import useGetPermissions from './useGetPermissions';
|
|
8
|
+
import useLogoutIfAccessDenied from './useLogoutIfAccessDenied';
|
|
9
|
+
import convertLegacyAuthProvider from './convertLegacyAuthProvider';
|
|
10
|
+
export * from './Authenticated';
|
|
11
|
+
export * from './AuthContext';
|
|
12
|
+
export * from './CanAccess';
|
|
13
|
+
export * from './LogoutOnMount';
|
|
14
|
+
export * from './types';
|
|
15
|
+
export * from './useAuthenticated';
|
|
16
|
+
export * from './useCanAccess';
|
|
17
|
+
export * from './useCanAccessResources';
|
|
18
|
+
export * from './useCanAccessCallback';
|
|
19
|
+
export * from './useCheckAuth';
|
|
20
|
+
export * from './useGetIdentity';
|
|
21
|
+
export * from './useHandleAuthCallback';
|
|
22
|
+
export * from './useIsAuthPending';
|
|
23
|
+
export * from './useRequireAccess';
|
|
24
|
+
export * from './addRefreshAuthToAuthProvider';
|
|
25
|
+
export * from './addRefreshAuthToDataProvider';
|
|
26
|
+
export { useAuthProvider, convertLegacyAuthProvider,
|
|
27
|
+
// low-level hooks for calling a particular verb on the authProvider
|
|
28
|
+
useLogin, useLogout, useGetPermissions,
|
|
29
|
+
// hooks with state management
|
|
30
|
+
usePermissions, useAuthState,
|
|
31
|
+
// hook with immediate effect
|
|
32
|
+
useLogoutIfAccessDenied,
|
|
33
|
+
// components
|
|
34
|
+
WithPermissions, };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type UserCheck = (payload: object, pathName: string, routeParams?: object) => void;
|
|
2
|
+
export declare const AUTH_LOGIN = "AUTH_LOGIN";
|
|
3
|
+
export declare const AUTH_CHECK = "AUTH_CHECK";
|
|
4
|
+
export declare const AUTH_ERROR = "AUTH_ERROR";
|
|
5
|
+
export declare const AUTH_LOGOUT = "AUTH_LOGOUT";
|
|
6
|
+
export declare const AUTH_GET_PERMISSIONS = "AUTH_GET_PERMISSIONS";
|
|
7
|
+
export type AuthActionType = typeof AUTH_LOGIN | typeof AUTH_LOGOUT | typeof AUTH_ERROR | typeof AUTH_CHECK | typeof AUTH_GET_PERMISSIONS;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AuthProvider } from '../types';
|
|
2
|
+
export declare const defaultAuthParams: {
|
|
3
|
+
loginUrl: string;
|
|
4
|
+
afterLoginUrl: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Get the authProvider stored in the context
|
|
8
|
+
*/
|
|
9
|
+
declare const useAuthProvider: <AuthProviderType extends AuthProvider = AuthProvider>() => AuthProviderType | undefined;
|
|
10
|
+
export default useAuthProvider;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { AuthContext } from './AuthContext';
|
|
3
|
+
export const defaultAuthParams = {
|
|
4
|
+
loginUrl: '/login',
|
|
5
|
+
afterLoginUrl: '/',
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Get the authProvider stored in the context
|
|
9
|
+
*/
|
|
10
|
+
const useAuthProvider = () => useContext(AuthContext);
|
|
11
|
+
export default useAuthProvider;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { QueryObserverResult, UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
/**
|
|
3
|
+
* Hook for getting the authentication status
|
|
4
|
+
*
|
|
5
|
+
* Calls the authProvider.checkAuth() method asynchronously.
|
|
6
|
+
*
|
|
7
|
+
* The return value updates according to the authProvider request state:
|
|
8
|
+
*
|
|
9
|
+
* - isPending: true just after mount, while the authProvider is being called. false once the authProvider has answered.
|
|
10
|
+
* - authenticated: true while loading. then true or false depending on the authProvider response.
|
|
11
|
+
*
|
|
12
|
+
* To avoid rendering a component and force waiting for the authProvider response, use the useAuthState() hook
|
|
13
|
+
* instead of the useAuthenticated() hook.
|
|
14
|
+
*
|
|
15
|
+
* You can render different content depending on the authenticated status.
|
|
16
|
+
*
|
|
17
|
+
* @see useAuthenticated()
|
|
18
|
+
*
|
|
19
|
+
* @param {Object} params Any params you want to pass to the authProvider
|
|
20
|
+
*
|
|
21
|
+
* @param {Boolean} logoutOnFailure: Optional. Whether the user should be logged out if the authProvider fails to authenticate them. False by default.
|
|
22
|
+
*
|
|
23
|
+
* @returns The current auth check state. Destructure as { authenticated, error, isPending }.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* import { useAuthState, Loading } from 'react-admin';
|
|
27
|
+
*
|
|
28
|
+
* const MyPage = () => {
|
|
29
|
+
* const { isPending, authenticated } = useAuthState();
|
|
30
|
+
* if (isPending) {
|
|
31
|
+
* return <Loading />;
|
|
32
|
+
* }
|
|
33
|
+
* if (authenticated) {
|
|
34
|
+
* return <AuthenticatedContent />;
|
|
35
|
+
* }
|
|
36
|
+
* return <AnonymousContent />;
|
|
37
|
+
* };
|
|
38
|
+
*/
|
|
39
|
+
declare const useAuthState: <ErrorType = Error>(params?: any, logoutOnFailure?: boolean, queryOptions?: UseAuthStateOptions<ErrorType>) => UseAuthStateResult<ErrorType>;
|
|
40
|
+
type UseAuthStateOptions<ErrorType = Error> = Omit<UseQueryOptions<boolean, ErrorType>, 'queryKey' | 'queryFn'> & {
|
|
41
|
+
onSuccess?: (data: boolean) => void;
|
|
42
|
+
onError?: (err: ErrorType) => void;
|
|
43
|
+
onSettled?: (data?: boolean, error?: Error) => void;
|
|
44
|
+
};
|
|
45
|
+
export type UseAuthStateResult<ErrorType = Error> = QueryObserverResult<boolean, ErrorType> & {
|
|
46
|
+
authenticated?: QueryObserverResult<boolean, ErrorType>['data'];
|
|
47
|
+
};
|
|
48
|
+
export default useAuthState;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { useEffect, useMemo } from 'react';
|
|
2
|
+
import { useQuery, } from '@tanstack/react-query';
|
|
3
|
+
import useAuthProvider, { defaultAuthParams } from './useAuthProvider';
|
|
4
|
+
import useLogout from './useLogout';
|
|
5
|
+
import { removeDoubleSlashes, useBasename } from '../routing';
|
|
6
|
+
import { useNotify } from '../notification';
|
|
7
|
+
import { useEvent } from '../util';
|
|
8
|
+
const emptyParams = {};
|
|
9
|
+
/**
|
|
10
|
+
* Hook for getting the authentication status
|
|
11
|
+
*
|
|
12
|
+
* Calls the authProvider.checkAuth() method asynchronously.
|
|
13
|
+
*
|
|
14
|
+
* The return value updates according to the authProvider request state:
|
|
15
|
+
*
|
|
16
|
+
* - isPending: true just after mount, while the authProvider is being called. false once the authProvider has answered.
|
|
17
|
+
* - authenticated: true while loading. then true or false depending on the authProvider response.
|
|
18
|
+
*
|
|
19
|
+
* To avoid rendering a component and force waiting for the authProvider response, use the useAuthState() hook
|
|
20
|
+
* instead of the useAuthenticated() hook.
|
|
21
|
+
*
|
|
22
|
+
* You can render different content depending on the authenticated status.
|
|
23
|
+
*
|
|
24
|
+
* @see useAuthenticated()
|
|
25
|
+
*
|
|
26
|
+
* @param {Object} params Any params you want to pass to the authProvider
|
|
27
|
+
*
|
|
28
|
+
* @param {Boolean} logoutOnFailure: Optional. Whether the user should be logged out if the authProvider fails to authenticate them. False by default.
|
|
29
|
+
*
|
|
30
|
+
* @returns The current auth check state. Destructure as { authenticated, error, isPending }.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* import { useAuthState, Loading } from 'react-admin';
|
|
34
|
+
*
|
|
35
|
+
* const MyPage = () => {
|
|
36
|
+
* const { isPending, authenticated } = useAuthState();
|
|
37
|
+
* if (isPending) {
|
|
38
|
+
* return <Loading />;
|
|
39
|
+
* }
|
|
40
|
+
* if (authenticated) {
|
|
41
|
+
* return <AuthenticatedContent />;
|
|
42
|
+
* }
|
|
43
|
+
* return <AnonymousContent />;
|
|
44
|
+
* };
|
|
45
|
+
*/
|
|
46
|
+
const useAuthState = (params = emptyParams, logoutOnFailure = false, queryOptions = emptyParams) => {
|
|
47
|
+
const authProvider = useAuthProvider();
|
|
48
|
+
const logout = useLogout();
|
|
49
|
+
const basename = useBasename();
|
|
50
|
+
const notify = useNotify();
|
|
51
|
+
const { onSuccess, onError, onSettled, ...options } = queryOptions;
|
|
52
|
+
const queryResult = useQuery({
|
|
53
|
+
queryKey: ['auth', 'checkAuth', params],
|
|
54
|
+
queryFn: async ({ signal }) => {
|
|
55
|
+
// The authProvider is optional in react-admin
|
|
56
|
+
if (!authProvider) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
await authProvider.checkAuth({ ...params, signal });
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// This is necessary because react-query requires the error to be defined
|
|
65
|
+
if (error != null) {
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
throw new Error();
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
retry: false,
|
|
72
|
+
...options,
|
|
73
|
+
});
|
|
74
|
+
const onSuccessEvent = useEvent(onSuccess ?? noop);
|
|
75
|
+
const onSettledEvent = useEvent(onSettled ?? noop);
|
|
76
|
+
const onErrorEvent = useEvent(onError ??
|
|
77
|
+
((error) => {
|
|
78
|
+
if (!logoutOnFailure)
|
|
79
|
+
return;
|
|
80
|
+
const loginUrl = removeDoubleSlashes(`${basename}/${defaultAuthParams.loginUrl}`);
|
|
81
|
+
logout({}, error && error.redirectTo != null
|
|
82
|
+
? error.redirectTo
|
|
83
|
+
: loginUrl);
|
|
84
|
+
const shouldSkipNotify = error && error.message === false;
|
|
85
|
+
!shouldSkipNotify &&
|
|
86
|
+
notify(getErrorMessage(error, "strato.auth.auth_check_error'), {
|
|
87
|
+
type: 'error',
|
|
88
|
+
});
|
|
89
|
+
}));
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
if (queryResult.data === undefined || queryResult.isFetching)
|
|
92
|
+
return;
|
|
93
|
+
if (queryOptions.enabled === false)
|
|
94
|
+
return;
|
|
95
|
+
onSuccessEvent(queryResult.data);
|
|
96
|
+
}, [
|
|
97
|
+
onSuccessEvent,
|
|
98
|
+
queryResult.data,
|
|
99
|
+
queryResult.isFetching,
|
|
100
|
+
queryOptions.enabled,
|
|
101
|
+
]);
|
|
102
|
+
useEffect(() => {
|
|
103
|
+
if (queryResult.error == null || queryResult.isFetching)
|
|
104
|
+
return;
|
|
105
|
+
if (queryOptions.enabled === false)
|
|
106
|
+
return;
|
|
107
|
+
onErrorEvent(queryResult.error);
|
|
108
|
+
}, [
|
|
109
|
+
onErrorEvent,
|
|
110
|
+
queryResult.error,
|
|
111
|
+
queryResult.isFetching,
|
|
112
|
+
queryOptions.enabled,
|
|
113
|
+
]);
|
|
114
|
+
useEffect(() => {
|
|
115
|
+
if (queryResult.status === 'pending' || queryResult.isFetching)
|
|
116
|
+
return;
|
|
117
|
+
if (queryOptions.enabled === false)
|
|
118
|
+
return;
|
|
119
|
+
onSettledEvent(queryResult.data, queryResult.error);
|
|
120
|
+
}, [
|
|
121
|
+
onSettledEvent,
|
|
122
|
+
queryResult.data,
|
|
123
|
+
queryResult.error,
|
|
124
|
+
queryResult.status,
|
|
125
|
+
queryResult.isFetching,
|
|
126
|
+
queryOptions.enabled,
|
|
127
|
+
]);
|
|
128
|
+
const result = useMemo(() => {
|
|
129
|
+
return {
|
|
130
|
+
...queryResult,
|
|
131
|
+
authenticated: queryResult.error ? false : queryResult.data,
|
|
132
|
+
};
|
|
133
|
+
}, [queryResult]);
|
|
134
|
+
return authProvider != null
|
|
135
|
+
? result
|
|
136
|
+
: noAuthProviderQueryResult;
|
|
137
|
+
};
|
|
138
|
+
export default useAuthState;
|
|
139
|
+
const getErrorMessage = (error, defaultMessage) => typeof error === 'string'
|
|
140
|
+
? error
|
|
141
|
+
: typeof error === 'undefined' || !error.message
|
|
142
|
+
? defaultMessage
|
|
143
|
+
: error.message;
|
|
144
|
+
const noop = () => { };
|
|
145
|
+
const noAuthProviderQueryResult = {
|
|
146
|
+
authenticated: true,
|
|
147
|
+
data: true,
|
|
148
|
+
dataUpdatedAt: 0,
|
|
149
|
+
error: null,
|
|
150
|
+
errorUpdatedAt: 0,
|
|
151
|
+
errorUpdateCount: 0,
|
|
152
|
+
failureCount: 0,
|
|
153
|
+
failureReason: null,
|
|
154
|
+
fetchStatus: 'idle',
|
|
155
|
+
isError: false,
|
|
156
|
+
isInitialLoading: false,
|
|
157
|
+
isLoading: false,
|
|
158
|
+
isLoadingError: false,
|
|
159
|
+
isFetched: true,
|
|
160
|
+
isFetchedAfterMount: true,
|
|
161
|
+
isFetching: false,
|
|
162
|
+
isPaused: false,
|
|
163
|
+
isPlaceholderData: false,
|
|
164
|
+
isPending: false,
|
|
165
|
+
isRefetchError: false,
|
|
166
|
+
isRefetching: false,
|
|
167
|
+
isStale: false,
|
|
168
|
+
isSuccess: true,
|
|
169
|
+
status: 'success',
|
|
170
|
+
refetch: () => Promise.resolve(noAuthProviderQueryResult),
|
|
171
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
/**
|
|
3
|
+
* Restrict access to authenticated users.
|
|
4
|
+
* Redirect anonymous users to the login page.
|
|
5
|
+
*
|
|
6
|
+
* Use it in your custom page components to require
|
|
7
|
+
* authentication.
|
|
8
|
+
*
|
|
9
|
+
* You can set additional `authParams` at will if your authProvider
|
|
10
|
+
* requires it.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { Admin, CustomRoutes, useAuthenticated } from 'react-admin';
|
|
14
|
+
*
|
|
15
|
+
* const FooPage = () => {
|
|
16
|
+
* const { isPending } = useAuthenticated();
|
|
17
|
+
* if (isPending) return null;
|
|
18
|
+
* return <Foo />;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* const customRoutes = [
|
|
22
|
+
* <Route path="/foo" element={<FooPage />} />
|
|
23
|
+
* ];
|
|
24
|
+
*
|
|
25
|
+
* const App = () => (
|
|
26
|
+
* <Admin>
|
|
27
|
+
* <CustomRoutes>{customRoutes}</CustomRoutes>
|
|
28
|
+
* </Admin>
|
|
29
|
+
* );
|
|
30
|
+
*/
|
|
31
|
+
export declare const useAuthenticated: <ParamsType = any>({ params, logoutOnFailure, ...options }?: UseAuthenticatedOptions<ParamsType>) => import("./useAuthState").UseAuthStateResult<any>;
|
|
32
|
+
export type UseAuthenticatedOptions<ParamsType> = Omit<UseQueryOptions<boolean, any> & {
|
|
33
|
+
params?: ParamsType;
|
|
34
|
+
}, 'queryKey' | 'queryFn'> & {
|
|
35
|
+
logoutOnFailure?: boolean;
|
|
36
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import useAuthState from './useAuthState';
|
|
2
|
+
/**
|
|
3
|
+
* Restrict access to authenticated users.
|
|
4
|
+
* Redirect anonymous users to the login page.
|
|
5
|
+
*
|
|
6
|
+
* Use it in your custom page components to require
|
|
7
|
+
* authentication.
|
|
8
|
+
*
|
|
9
|
+
* You can set additional `authParams` at will if your authProvider
|
|
10
|
+
* requires it.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { Admin, CustomRoutes, useAuthenticated } from 'react-admin';
|
|
14
|
+
*
|
|
15
|
+
* const FooPage = () => {
|
|
16
|
+
* const { isPending } = useAuthenticated();
|
|
17
|
+
* if (isPending) return null;
|
|
18
|
+
* return <Foo />;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* const customRoutes = [
|
|
22
|
+
* <Route path="/foo" element={<FooPage />} />
|
|
23
|
+
* ];
|
|
24
|
+
*
|
|
25
|
+
* const App = () => (
|
|
26
|
+
* <Admin>
|
|
27
|
+
* <CustomRoutes>{customRoutes}</CustomRoutes>
|
|
28
|
+
* </Admin>
|
|
29
|
+
* );
|
|
30
|
+
*/
|
|
31
|
+
export const useAuthenticated = ({ params, logoutOnFailure = true, ...options } = {}) => {
|
|
32
|
+
return useAuthState(params ?? emptyParams, logoutOnFailure, options);
|
|
33
|
+
};
|
|
34
|
+
const emptyParams = {};
|