@strato-admin/core 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/index.d.ts +3 -2
- package/dist/index.js +3 -3
- package/dist/ra-core/src/auth/AuthContext.d.ts +2 -0
- package/dist/ra-core/src/auth/AuthContext.js +3 -0
- package/dist/ra-core/src/auth/Authenticated.d.ts +40 -0
- package/dist/ra-core/src/auth/Authenticated.js +39 -0
- package/dist/ra-core/src/auth/CanAccess.d.ts +20 -0
- package/dist/ra-core/src/auth/CanAccess.js +31 -0
- 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/WithPermissions.d.ts +19 -0
- package/dist/ra-core/src/auth/WithPermissions.js +66 -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/auth/useRequireAccess.d.ts +140 -0
- package/dist/ra-core/src/auth/useRequireAccess.js +56 -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/button/useBulkUpdateController.d.ts +16 -0
- package/dist/ra-core/src/controller/button/useBulkUpdateController.js +70 -0
- package/dist/ra-core/src/controller/button/useDeleteController.d.ts +64 -0
- package/dist/ra-core/src/controller/button/useDeleteController.js +119 -0
- package/dist/ra-core/src/controller/button/useDeleteWithConfirmController.d.ts +69 -0
- package/dist/ra-core/src/controller/button/useDeleteWithConfirmController.js +139 -0
- package/dist/ra-core/src/controller/button/useDeleteWithUndoController.d.ts +46 -0
- package/dist/ra-core/src/controller/button/useDeleteWithUndoController.js +52 -0
- package/dist/ra-core/src/controller/button/useUpdateController.d.ts +68 -0
- package/dist/ra-core/src/controller/button/useUpdateController.js +113 -0
- package/dist/ra-core/src/controller/checkMinimumRequiredProps.d.ts +4 -0
- package/dist/ra-core/src/controller/checkMinimumRequiredProps.js +21 -0
- package/dist/ra-core/src/controller/create/CreateBase.d.ts +46 -0
- package/dist/ra-core/src/controller/create/CreateBase.js +55 -0
- package/dist/ra-core/src/controller/create/CreateContext.d.ts +20 -0
- package/dist/ra-core/src/controller/create/CreateContext.js +21 -0
- package/dist/ra-core/src/controller/create/CreateContextProvider.d.ts +29 -0
- package/dist/ra-core/src/controller/create/CreateContextProvider.js +31 -0
- package/dist/ra-core/src/controller/create/CreateController.d.ts +19 -0
- package/dist/ra-core/src/controller/create/CreateController.js +18 -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/useCreateContext.d.ts +12 -0
- package/dist/ra-core/src/controller/create/useCreateContext.js +18 -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/EditBase.d.ts +41 -0
- package/dist/ra-core/src/controller/edit/EditBase.js +72 -0
- package/dist/ra-core/src/controller/edit/EditContext.d.ts +20 -0
- package/dist/ra-core/src/controller/edit/EditContext.js +21 -0
- package/dist/ra-core/src/controller/edit/EditContextProvider.d.ts +29 -0
- package/dist/ra-core/src/controller/edit/EditContextProvider.js +28 -0
- package/dist/ra-core/src/controller/edit/EditController.d.ts +19 -0
- package/dist/ra-core/src/controller/edit/EditController.js +18 -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/useEditContext.d.ts +12 -0
- package/dist/ra-core/src/controller/edit/useEditContext.js +18 -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/ReferenceArrayFieldBase.d.ts +77 -0
- package/dist/ra-core/src/controller/field/ReferenceArrayFieldBase.js +119 -0
- package/dist/ra-core/src/controller/field/ReferenceFieldBase.d.ts +51 -0
- package/dist/ra-core/src/controller/field/ReferenceFieldBase.js +71 -0
- package/dist/ra-core/src/controller/field/ReferenceFieldContext.d.ts +4 -0
- package/dist/ra-core/src/controller/field/ReferenceFieldContext.js +10 -0
- package/dist/ra-core/src/controller/field/ReferenceManyCountBase.d.ts +20 -0
- package/dist/ra-core/src/controller/field/ReferenceManyCountBase.js +35 -0
- package/dist/ra-core/src/controller/field/ReferenceManyFieldBase.d.ts +59 -0
- package/dist/ra-core/src/controller/field/ReferenceManyFieldBase.js +108 -0
- package/dist/ra-core/src/controller/field/ReferenceOneFieldBase.d.ts +26 -0
- package/dist/ra-core/src/controller/field/ReferenceOneFieldBase.js +64 -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/field/useReferenceOneFieldController.d.ts +41 -0
- package/dist/ra-core/src/controller/field/useReferenceOneFieldController.js +67 -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/ArrayInputBase.d.ts +46 -0
- package/dist/ra-core/src/controller/input/ArrayInputBase.js +130 -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/ReferenceArrayInputBase.d.ts +78 -0
- package/dist/ra-core/src/controller/input/ReferenceArrayInputBase.js +97 -0
- package/dist/ra-core/src/controller/input/ReferenceInputBase.d.ts +65 -0
- package/dist/ra-core/src/controller/input/ReferenceInputBase.js +75 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorBase.d.ts +17 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorBase.js +55 -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/SimpleFormIteratorItemBase.d.ts +12 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorItemBase.js +53 -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/input/useSupportCreateSuggestion.d.ts +54 -0
- package/dist/ra-core/src/controller/input/useSupportCreateSuggestion.js +90 -0
- package/dist/ra-core/src/controller/list/FilterContext.d.ts +6 -0
- package/dist/ra-core/src/controller/list/FilterContext.js +5 -0
- package/dist/ra-core/src/controller/list/InfiniteListBase.d.ts +47 -0
- package/dist/ra-core/src/controller/list/InfiniteListBase.js +103 -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/ListBase.d.ts +48 -0
- package/dist/ra-core/src/controller/list/ListBase.js +98 -0
- package/dist/ra-core/src/controller/list/ListContext.d.ts +54 -0
- package/dist/ra-core/src/controller/list/ListContext.js +55 -0
- package/dist/ra-core/src/controller/list/ListContextProvider.d.ts +33 -0
- package/dist/ra-core/src/controller/list/ListContextProvider.js +33 -0
- package/dist/ra-core/src/controller/list/ListController.d.ts +19 -0
- package/dist/ra-core/src/controller/list/ListController.js +18 -0
- package/dist/ra-core/src/controller/list/ListFilterContext.d.ts +39 -0
- package/dist/ra-core/src/controller/list/ListFilterContext.js +55 -0
- package/dist/ra-core/src/controller/list/ListPaginationContext.d.ts +43 -0
- package/dist/ra-core/src/controller/list/ListPaginationContext.js +67 -0
- package/dist/ra-core/src/controller/list/ListSortContext.d.ts +36 -0
- package/dist/ra-core/src/controller/list/ListSortContext.js +39 -0
- package/dist/ra-core/src/controller/list/RecordsIterator.d.ts +16 -0
- package/dist/ra-core/src/controller/list/RecordsIterator.js +22 -0
- package/dist/ra-core/src/controller/list/WithListContext.d.ts +32 -0
- package/dist/ra-core/src/controller/list/WithListContext.js +42 -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/useExpanded.d.ts +31 -0
- package/dist/ra-core/src/controller/list/useExpanded.js +70 -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/useSelectAll.d.ts +48 -0
- package/dist/ra-core/src/controller/list/useSelectAll.js +102 -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/OptionalRecordContextProvider.d.ts +21 -0
- package/dist/ra-core/src/controller/record/OptionalRecordContextProvider.js +18 -0
- package/dist/ra-core/src/controller/record/RecordContext.d.ts +37 -0
- package/dist/ra-core/src/controller/record/RecordContext.js +33 -0
- package/dist/ra-core/src/controller/record/RecordRepresentation.d.ts +11 -0
- package/dist/ra-core/src/controller/record/RecordRepresentation.js +15 -0
- package/dist/ra-core/src/controller/record/WithRecord.d.ts +20 -0
- package/dist/ra-core/src/controller/record/WithRecord.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/SaveContextProvider.d.ts +4 -0
- package/dist/ra-core/src/controller/saveContext/SaveContextProvider.js +3 -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/ShowBase.d.ts +42 -0
- package/dist/ra-core/src/controller/show/ShowBase.js +72 -0
- package/dist/ra-core/src/controller/show/ShowContext.d.ts +20 -0
- package/dist/ra-core/src/controller/show/ShowContext.js +21 -0
- package/dist/ra-core/src/controller/show/ShowContextProvider.d.ts +27 -0
- package/dist/ra-core/src/controller/show/ShowContextProvider.js +25 -0
- package/dist/ra-core/src/controller/show/ShowController.d.ts +19 -0
- package/dist/ra-core/src/controller/show/ShowController.js +18 -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/useShowContext.d.ts +12 -0
- package/dist/ra-core/src/controller/show/useShowContext.js +19 -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/CoreAdmin.d.ts +83 -0
- package/dist/ra-core/src/core/CoreAdmin.js +86 -0
- package/dist/ra-core/src/core/CoreAdminContext.d.ts +154 -0
- package/dist/ra-core/src/core/CoreAdminContext.js +27 -0
- package/dist/ra-core/src/core/CoreAdminRoutes.d.ts +15 -0
- package/dist/ra-core/src/core/CoreAdminRoutes.js +33 -0
- package/dist/ra-core/src/core/CoreAdminUI.d.ts +260 -0
- package/dist/ra-core/src/core/CoreAdminUI.js +33 -0
- package/dist/ra-core/src/core/CustomRoutes.d.ts +16 -0
- package/dist/ra-core/src/core/CustomRoutes.js +11 -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/IsOffline.d.ts +4 -0
- package/dist/ra-core/src/core/IsOffline.js +5 -0
- package/dist/ra-core/src/core/NavigateToFirstResource.d.ts +10 -0
- package/dist/ra-core/src/core/NavigateToFirstResource.js +21 -0
- package/dist/ra-core/src/core/OptionalResourceContextProvider.d.ts +22 -0
- package/dist/ra-core/src/core/OptionalResourceContextProvider.js +18 -0
- package/dist/ra-core/src/core/Resource.d.ts +16 -0
- package/dist/ra-core/src/core/Resource.js +31 -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/ResourceContextProvider.d.ts +26 -0
- package/dist/ra-core/src/core/ResourceContextProvider.js +22 -0
- package/dist/ra-core/src/core/ResourceDefinitionContext.d.ts +35 -0
- package/dist/ra-core/src/core/ResourceDefinitionContext.js +48 -0
- package/dist/ra-core/src/core/SourceContext.d.ts +27 -0
- package/dist/ra-core/src/core/SourceContext.js +35 -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/UserMenuContextProvider.d.ts +16 -0
- package/dist/ra-core/src/core/UserMenuContextProvider.js +9 -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/useConfigureAdminRouterFromChildren.d.ts +34 -0
- package/dist/ra-core/src/core/useConfigureAdminRouterFromChildren.js +227 -0
- package/dist/ra-core/src/core/useFirstResourceWithListAccess.d.ts +8 -0
- package/dist/ra-core/src/core/useFirstResourceWithListAccess.js +19 -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/AddUndoableMutationContext.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/undo/AddUndoableMutationContext.js +2 -0
- package/dist/ra-core/src/dataProvider/undo/TakeUndoableMutationContext.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/undo/TakeUndoableMutationContext.js +2 -0
- package/dist/ra-core/src/dataProvider/undo/UndoableMutationsContextProvider.d.ts +13 -0
- package/dist/ra-core/src/dataProvider/undo/UndoableMutationsContextProvider.js +38 -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/undo/useAddUndoableMutation.d.ts +1 -0
- package/dist/ra-core/src/dataProvider/undo/useAddUndoableMutation.js +3 -0
- package/dist/ra-core/src/dataProvider/undo/useTakeUndoableMutation.d.ts +1 -0
- package/dist/ra-core/src/dataProvider/undo/useTakeUndoableMutation.js +3 -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 +2 -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/DataTableBase.d.ts +36 -0
- package/dist/ra-core/src/dataTable/DataTableBase.js +104 -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/FilterLiveForm.d.ts +56 -0
- package/dist/ra-core/src/form/FilterLiveForm.js +161 -0
- package/dist/ra-core/src/form/Form.d.ts +56 -0
- package/dist/ra-core/src/form/Form.js +55 -0
- package/dist/ra-core/src/form/FormDataConsumer.d.ts +74 -0
- package/dist/ra-core/src/form/FormDataConsumer.js +68 -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/ChoicesContextProvider.d.ts +6 -0
- package/dist/ra-core/src/form/choices/ChoicesContextProvider.js +3 -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/useChoices.d.ts +31 -0
- package/dist/ra-core/src/form/choices/useChoices.js +42 -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/FormGroupContextProvider.d.ts +49 -0
- package/dist/ra-core/src/form/groups/FormGroupContextProvider.js +64 -0
- package/dist/ra-core/src/form/groups/FormGroupsContext.d.ts +15 -0
- package/dist/ra-core/src/form/groups/FormGroupsContext.js +3 -0
- package/dist/ra-core/src/form/groups/FormGroupsProvider.d.ts +11 -0
- package/dist/ra-core/src/form/groups/FormGroupsProvider.js +67 -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/useFormValues.d.ts +4 -0
- package/dist/ra-core/src/form/useFormValues.js +9 -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/useWarnWhenUnsavedChanges.d.ts +7 -0
- package/dist/ra-core/src/form/useWarnWhenUnsavedChanges.js +74 -0
- package/dist/ra-core/src/form/validation/ValidationError.d.ts +5 -0
- package/dist/ra-core/src/form/validation/ValidationError.js +22 -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/I18nContextProvider.d.ts +10 -0
- package/dist/ra-core/src/i18n/I18nContextProvider.js +47 -0
- package/dist/ra-core/src/i18n/TestTranslationProvider.d.ts +8 -0
- package/dist/ra-core/src/i18n/TestTranslationProvider.js +20 -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/TranslatableContextProvider.d.ts +6 -0
- package/dist/ra-core/src/i18n/TranslatableContextProvider.js +5 -0
- package/dist/ra-core/src/i18n/Translate.d.ts +7 -0
- package/dist/ra-core/src/i18n/Translate.js +10 -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/useLocale.d.ts +17 -0
- package/dist/ra-core/src/i18n/useLocale.js +21 -0
- package/dist/ra-core/src/i18n/useLocaleState.d.ts +27 -0
- package/dist/ra-core/src/i18n/useLocaleState.js +34 -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/useSetLocale.d.ts +25 -0
- package/dist/ra-core/src/i18n/useSetLocale.js +29 -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/inferElementFromValues.d.ts +41 -0
- package/dist/ra-core/src/inference/inferElementFromValues.js +161 -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/AddNotificationContext.d.ts +2 -0
- package/dist/ra-core/src/notification/AddNotificationContext.js +2 -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/NotificationContextProvider.d.ts +3 -0
- package/dist/ra-core/src/notification/NotificationContextProvider.js +31 -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/useAddNotificationContext.d.ts +1 -0
- package/dist/ra-core/src/notification/useAddNotificationContext.js +3 -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/PreferenceKeyContext.d.ts +7 -0
- package/dist/ra-core/src/preferences/PreferenceKeyContext.js +7 -0
- package/dist/ra-core/src/preferences/PreferencesEditorContext.d.ts +16 -0
- package/dist/ra-core/src/preferences/PreferencesEditorContext.js +2 -0
- package/dist/ra-core/src/preferences/PreferencesEditorContextProvider.d.ts +3 -0
- package/dist/ra-core/src/preferences/PreferencesEditorContextProvider.js +48 -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/AdminRouter.d.ts +13 -0
- package/dist/ra-core/src/routing/AdminRouter.js +15 -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/BasenameContextProvider.d.ts +12 -0
- package/dist/ra-core/src/routing/BasenameContextProvider.js +11 -0
- package/dist/ra-core/src/routing/LinkBase.d.ts +17 -0
- package/dist/ra-core/src/routing/LinkBase.js +22 -0
- package/dist/ra-core/src/routing/Navigate.d.ts +14 -0
- package/dist/ra-core/src/routing/Navigate.js +17 -0
- package/dist/ra-core/src/routing/Outlet.d.ts +19 -0
- package/dist/ra-core/src/routing/Outlet.js +22 -0
- package/dist/ra-core/src/routing/RestoreScrollPosition.d.ts +24 -0
- package/dist/ra-core/src/routing/RestoreScrollPosition.js +23 -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/RouterProviderContext.d.ts +15 -0
- package/dist/ra-core/src/routing/RouterProviderContext.js +19 -0
- package/dist/ra-core/src/routing/TestMemoryRouter.d.ts +21 -0
- package/dist/ra-core/src/routing/TestMemoryRouter.js +42 -0
- package/dist/ra-core/src/routing/adapters/reactRouterProvider.d.ts +6 -0
- package/dist/ra-core/src/routing/adapters/reactRouterProvider.js +86 -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/useScrollToTop.d.ts +22 -0
- package/dist/ra-core/src/routing/useScrollToTop.js +33 -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/StoreContext.d.ts +2 -0
- package/dist/ra-core/src/store/StoreContext.js +4 -0
- package/dist/ra-core/src/store/StoreContextProvider.d.ts +7 -0
- package/dist/ra-core/src/store/StoreContextProvider.js +12 -0
- package/dist/ra-core/src/store/StoreSetter.d.ts +37 -0
- package/dist/ra-core/src/store/StoreSetter.js +40 -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/memoryStore.d.ts +15 -0
- package/dist/ra-core/src/store/memoryStore.js +108 -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/Admin.d.ts +2 -0
- package/dist/ra-core/src/test-ui/Admin.js +8 -0
- package/dist/ra-core/src/test-ui/ArrayInput.d.ts +10 -0
- package/dist/ra-core/src/test-ui/ArrayInput.js +8 -0
- package/dist/ra-core/src/test-ui/AutocompleteArrayInput.d.ts +5 -0
- package/dist/ra-core/src/test-ui/AutocompleteArrayInput.js +5 -0
- package/dist/ra-core/src/test-ui/AutocompleteInput.d.ts +5 -0
- package/dist/ra-core/src/test-ui/AutocompleteInput.js +29 -0
- package/dist/ra-core/src/test-ui/BooleanInput.d.ts +2 -0
- package/dist/ra-core/src/test-ui/BooleanInput.js +10 -0
- package/dist/ra-core/src/test-ui/Confirm.d.ts +10 -0
- package/dist/ra-core/src/test-ui/Confirm.js +25 -0
- package/dist/ra-core/src/test-ui/CreateButton.d.ts +3 -0
- package/dist/ra-core/src/test-ui/CreateButton.js +9 -0
- package/dist/ra-core/src/test-ui/DataTable.d.ts +15 -0
- package/dist/ra-core/src/test-ui/DataTable.js +88 -0
- package/dist/ra-core/src/test-ui/DeleteButton.d.ts +5 -0
- package/dist/ra-core/src/test-ui/DeleteButton.js +18 -0
- package/dist/ra-core/src/test-ui/EditButton.d.ts +5 -0
- package/dist/ra-core/src/test-ui/EditButton.js +13 -0
- package/dist/ra-core/src/test-ui/Layout.d.ts +4 -0
- package/dist/ra-core/src/test-ui/Layout.js +36 -0
- package/dist/ra-core/src/test-ui/Notification.d.ts +13 -0
- package/dist/ra-core/src/test-ui/Notification.js +109 -0
- package/dist/ra-core/src/test-ui/Pagination.d.ts +1 -0
- package/dist/ra-core/src/test-ui/Pagination.js +28 -0
- package/dist/ra-core/src/test-ui/PrevNextButtons.d.ts +5 -0
- package/dist/ra-core/src/test-ui/PrevNextButtons.js +18 -0
- package/dist/ra-core/src/test-ui/ShowButton.d.ts +5 -0
- package/dist/ra-core/src/test-ui/ShowButton.js +13 -0
- package/dist/ra-core/src/test-ui/SimpleForm.d.ts +2 -0
- package/dist/ra-core/src/test-ui/SimpleForm.js +11 -0
- package/dist/ra-core/src/test-ui/SimpleFormIterator.d.ts +46 -0
- package/dist/ra-core/src/test-ui/SimpleFormIterator.js +101 -0
- package/dist/ra-core/src/test-ui/SimpleList.d.ts +6 -0
- package/dist/ra-core/src/test-ui/SimpleList.js +12 -0
- package/dist/ra-core/src/test-ui/SimpleShowLayout.d.ts +4 -0
- package/dist/ra-core/src/test-ui/SimpleShowLayout.js +3 -0
- package/dist/ra-core/src/test-ui/TextInput.d.ts +6 -0
- package/dist/ra-core/src/test-ui/TextInput.js +9 -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/FieldTitle.d.ts +17 -0
- package/dist/ra-core/src/util/FieldTitle.js +24 -0
- package/dist/ra-core/src/util/Ready.d.ts +2 -0
- package/dist/ra-core/src/util/Ready.js +57 -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/resource/Resource.d.ts +14 -0
- package/dist/resource/Resource.js +31 -0
- package/dist/resource/ResourceSchema.d.ts +170 -13
- package/dist/resource/ResourceSchema.js +118 -20
- package/dist/resource/ResourceSchemaProvider.d.ts +2 -1
- package/dist/resource/ResourceSchemaProvider.js +9 -9
- package/dist/resource/SchemaRegistry.d.ts +64 -5
- package/dist/resource/SchemaRegistry.js +189 -22
- package/dist/resource/index.d.ts +2 -0
- package/dist/resource/index.js +2 -0
- package/dist/resource/useConstructedPageTitle.d.ts +1 -0
- package/dist/resource/useConstructedPageTitle.js +27 -0
- package/dist/routing/index.d.ts +2 -0
- package/dist/routing/index.js +2 -0
- package/dist/routing/useCreatePath.d.ts +7 -0
- package/dist/routing/useCreatePath.js +36 -0
- package/dist/routing/useGetPathForRecord.d.ts +11 -0
- package/dist/routing/useGetPathForRecord.js +94 -0
- package/dist/settings/SettingsContext.d.ts +16 -0
- package/dist/settings/SettingsContext.js +3 -0
- package/dist/settings/useSettingValue.d.ts +15 -0
- package/dist/settings/useSettingValue.js +23 -0
- package/dist/strato-core/src/core/Resource.d.ts +0 -0
- package/dist/strato-core/src/core/Resource.js +1 -0
- package/dist/strato-core/src/core/index.d.ts +0 -0
- package/dist/strato-core/src/core/index.js +1 -0
- package/dist/strato-core/src/index.d.ts +3 -0
- package/dist/strato-core/src/index.js +4 -0
- package/dist/strato-core/src/ra-messages.d.ts +1 -0
- package/dist/strato-core/src/ra-messages.js +296 -0
- package/dist/strato-core/src/resource/FieldSchema.d.ts +18 -0
- package/dist/strato-core/src/resource/FieldSchema.js +19 -0
- package/dist/strato-core/src/resource/InputSchema.d.ts +18 -0
- package/dist/strato-core/src/resource/InputSchema.js +19 -0
- package/dist/strato-core/src/resource/ResourceContext.d.ts +2 -0
- package/dist/strato-core/src/resource/ResourceContext.js +3 -0
- package/dist/strato-core/src/resource/ResourceSchema.d.ts +33 -0
- package/dist/strato-core/src/resource/ResourceSchema.js +90 -0
- package/dist/strato-core/src/resource/ResourceSchemaProvider.d.ts +15 -0
- package/dist/strato-core/src/resource/ResourceSchemaProvider.js +71 -0
- package/dist/strato-core/src/resource/SchemaRegistry.d.ts +71 -0
- package/dist/strato-core/src/resource/SchemaRegistry.js +212 -0
- package/dist/strato-core/src/resource/index.d.ts +6 -0
- package/dist/strato-core/src/resource/index.js +6 -0
- package/package.json +10 -4
- package/src/index.ts +3 -4
- package/src/resource/Resource.test.tsx +87 -0
- package/src/resource/Resource.tsx +62 -0
- package/src/resource/ResourceSchema.tsx +378 -57
- package/src/resource/ResourceSchemaProvider.tsx +17 -27
- package/src/resource/SchemaRegistry.tsx +295 -46
- package/src/resource/index.ts +2 -0
- package/src/resource/useConstructedPageTitle.ts +31 -0
- package/src/routing/index.ts +2 -0
- package/src/routing/useCreatePath.test.tsx +38 -0
- package/src/routing/useCreatePath.ts +40 -0
- package/src/routing/useGetPathForRecord.ts +127 -0
- package/src/settings/SettingsContext.ts +20 -0
- package/src/settings/useSettingValue.ts +32 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback for calling the authProvider.checkAuth() method.
|
|
3
|
+
* In case of rejection, redirects to the login page, displays a notification,
|
|
4
|
+
* and throws an error.
|
|
5
|
+
*
|
|
6
|
+
* This is a low level hook. See those more specialized hooks
|
|
7
|
+
* for common authentication tasks, based on useCheckAuth.
|
|
8
|
+
*
|
|
9
|
+
* @see useAuthenticated
|
|
10
|
+
* @see useAuthState
|
|
11
|
+
*
|
|
12
|
+
* @returns {Function} checkAuth callback
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
*
|
|
16
|
+
* import { useCheckAuth } from 'react-admin';
|
|
17
|
+
*
|
|
18
|
+
* const MyProtectedPage = () => {
|
|
19
|
+
* const checkAuth = useCheckAuth();
|
|
20
|
+
* useEffect(() => {
|
|
21
|
+
* checkAuth().catch(() => {});
|
|
22
|
+
* }, []);
|
|
23
|
+
* return <p>Private content: EZAEZEZAET</p>
|
|
24
|
+
* } // tip: use useAuthenticated() hook instead
|
|
25
|
+
*
|
|
26
|
+
* const MyPage = () => {
|
|
27
|
+
* const checkAuth = useCheckAuth();
|
|
28
|
+
* const [authenticated, setAuthenticated] = useState(true); // optimistic auth
|
|
29
|
+
* useEffect(() => {
|
|
30
|
+
* checkAuth({}, false)
|
|
31
|
+
* .then(() => setAuthenticated(true))
|
|
32
|
+
* .catch(() => setAuthenticated(false));
|
|
33
|
+
* }, []);
|
|
34
|
+
* return authenticated ? <Bar /> : <BarNotAuthenticated />;
|
|
35
|
+
* } // tip: use useAuthState() hook instead
|
|
36
|
+
*/
|
|
37
|
+
export declare const useCheckAuth: () => CheckAuth;
|
|
38
|
+
/**
|
|
39
|
+
* Check if the current user is authenticated by calling authProvider.checkAuth().
|
|
40
|
+
* Logs the user out on failure.
|
|
41
|
+
*
|
|
42
|
+
* @param {Object} params The parameters to pass to the authProvider
|
|
43
|
+
* @param {boolean} logoutOnFailure Whether the user should be logged out if the authProvider fails to authenticate them. True by default.
|
|
44
|
+
* @param {string} redirectTo The login form url. Defaults to '/login'
|
|
45
|
+
*
|
|
46
|
+
* @return {Promise} Resolved to the authProvider response if the user passes the check, or rejected with an error otherwise
|
|
47
|
+
*/
|
|
48
|
+
export type CheckAuth = (params?: any, logoutOnFailure?: boolean, redirectTo?: string) => Promise<any>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import useAuthProvider, { defaultAuthParams } from './useAuthProvider';
|
|
3
|
+
import useLogout from './useLogout';
|
|
4
|
+
import { useNotify } from '../notification';
|
|
5
|
+
import { useBasename } from '../routing';
|
|
6
|
+
import { removeDoubleSlashes } from '../routing/useCreatePath';
|
|
7
|
+
/**
|
|
8
|
+
* Get a callback for calling the authProvider.checkAuth() method.
|
|
9
|
+
* In case of rejection, redirects to the login page, displays a notification,
|
|
10
|
+
* and throws an error.
|
|
11
|
+
*
|
|
12
|
+
* This is a low level hook. See those more specialized hooks
|
|
13
|
+
* for common authentication tasks, based on useCheckAuth.
|
|
14
|
+
*
|
|
15
|
+
* @see useAuthenticated
|
|
16
|
+
* @see useAuthState
|
|
17
|
+
*
|
|
18
|
+
* @returns {Function} checkAuth callback
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* import { useCheckAuth } from 'react-admin';
|
|
23
|
+
*
|
|
24
|
+
* const MyProtectedPage = () => {
|
|
25
|
+
* const checkAuth = useCheckAuth();
|
|
26
|
+
* useEffect(() => {
|
|
27
|
+
* checkAuth().catch(() => {});
|
|
28
|
+
* }, []);
|
|
29
|
+
* return <p>Private content: EZAEZEZAET</p>
|
|
30
|
+
* } // tip: use useAuthenticated() hook instead
|
|
31
|
+
*
|
|
32
|
+
* const MyPage = () => {
|
|
33
|
+
* const checkAuth = useCheckAuth();
|
|
34
|
+
* const [authenticated, setAuthenticated] = useState(true); // optimistic auth
|
|
35
|
+
* useEffect(() => {
|
|
36
|
+
* checkAuth({}, false)
|
|
37
|
+
* .then(() => setAuthenticated(true))
|
|
38
|
+
* .catch(() => setAuthenticated(false));
|
|
39
|
+
* }, []);
|
|
40
|
+
* return authenticated ? <Bar /> : <BarNotAuthenticated />;
|
|
41
|
+
* } // tip: use useAuthState() hook instead
|
|
42
|
+
*/
|
|
43
|
+
export const useCheckAuth = () => {
|
|
44
|
+
const authProvider = useAuthProvider();
|
|
45
|
+
const notify = useNotify();
|
|
46
|
+
const logout = useLogout();
|
|
47
|
+
const basename = useBasename();
|
|
48
|
+
const loginUrl = removeDoubleSlashes(`${basename}/${defaultAuthParams.loginUrl}`);
|
|
49
|
+
const checkAuth = useCallback(async (params = {}, logoutOnFailure = true, redirectTo = loginUrl) => {
|
|
50
|
+
// The authProvider is optional in react-admin
|
|
51
|
+
if (!authProvider) {
|
|
52
|
+
return checkAuthWithoutAuthProvider();
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
return await authProvider.checkAuth(params);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (logoutOnFailure) {
|
|
59
|
+
logout({}, error && error.redirectTo != null
|
|
60
|
+
? error.redirectTo
|
|
61
|
+
: redirectTo);
|
|
62
|
+
const shouldSkipNotify = error && error.message === false;
|
|
63
|
+
!shouldSkipNotify &&
|
|
64
|
+
notify(getErrorMessage(error, "strato.auth.auth_check_error'), { type: 'error' });
|
|
65
|
+
}
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}, [authProvider, logout, notify, loginUrl]);
|
|
69
|
+
return checkAuth;
|
|
70
|
+
};
|
|
71
|
+
const checkAuthWithoutAuthProvider = async () => undefined;
|
|
72
|
+
const getErrorMessage = (error, defaultMessage) => typeof error === 'string'
|
|
73
|
+
? error
|
|
74
|
+
: typeof error === 'undefined' || !error.message
|
|
75
|
+
? defaultMessage
|
|
76
|
+
: error.message;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { UseQueryOptions, QueryObserverResult } from '@tanstack/react-query';
|
|
2
|
+
import { UserIdentity } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Return the current user identity by calling authProvider.getIdentity() on mount
|
|
5
|
+
*
|
|
6
|
+
* The return value updates according to the call state:
|
|
7
|
+
*
|
|
8
|
+
* - mount: { isPending: true }
|
|
9
|
+
* - success: { identity, refetch: () => {}, isPending: false }
|
|
10
|
+
* - error: { error: Error, isPending: false }
|
|
11
|
+
*
|
|
12
|
+
* The implementation is left to the authProvider.
|
|
13
|
+
*
|
|
14
|
+
* @returns The current user identity. Destructure as { isPending, identity, error, refetch }.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { useGetIdentity, useGetOne } from 'react-admin';
|
|
18
|
+
*
|
|
19
|
+
* const PostDetail = ({ id }) => {
|
|
20
|
+
* const { data: post, isPending: postLoading } = useGetOne('posts', { id });
|
|
21
|
+
* const { identity, isPending: identityLoading } = useGetIdentity();
|
|
22
|
+
* if (postLoading || identityLoading) return <>Loading...</>;
|
|
23
|
+
* if (!post.lockedBy || post.lockedBy === identity.id) {
|
|
24
|
+
* // post isn't locked, or is locked by me
|
|
25
|
+
* return <PostEdit post={post} />
|
|
26
|
+
* } else {
|
|
27
|
+
* // post is locked by someone else and cannot be edited
|
|
28
|
+
* return <PostShow post={post} />
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
*/
|
|
32
|
+
export declare const useGetIdentity: <ErrorType extends Error = Error>(options?: UseGetIdentityOptions<ErrorType>) => UseGetIdentityResult<ErrorType>;
|
|
33
|
+
export interface UseGetIdentityOptions<ErrorType extends Error = Error> extends Omit<UseQueryOptions<UserIdentity, ErrorType>, 'queryKey' | 'queryFn'> {
|
|
34
|
+
onSuccess?: (data: UserIdentity) => void;
|
|
35
|
+
onError?: (err: Error) => void;
|
|
36
|
+
onSettled?: (data?: UserIdentity, error?: Error | null) => void;
|
|
37
|
+
}
|
|
38
|
+
export type UseGetIdentityResult<ErrorType = Error> = QueryObserverResult<UserIdentity, ErrorType> & {
|
|
39
|
+
identity: UserIdentity | undefined;
|
|
40
|
+
};
|
|
41
|
+
export default useGetIdentity;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { useEffect, useMemo } from 'react';
|
|
2
|
+
import { useQuery, } from '@tanstack/react-query';
|
|
3
|
+
import useAuthProvider from './useAuthProvider';
|
|
4
|
+
import { useEvent } from '../util';
|
|
5
|
+
const defaultIdentity = {
|
|
6
|
+
id: '',
|
|
7
|
+
};
|
|
8
|
+
const defaultQueryParams = {
|
|
9
|
+
staleTime: 5 * 60 * 1000,
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Return the current user identity by calling authProvider.getIdentity() on mount
|
|
13
|
+
*
|
|
14
|
+
* The return value updates according to the call state:
|
|
15
|
+
*
|
|
16
|
+
* - mount: { isPending: true }
|
|
17
|
+
* - success: { identity, refetch: () => {}, isPending: false }
|
|
18
|
+
* - error: { error: Error, isPending: false }
|
|
19
|
+
*
|
|
20
|
+
* The implementation is left to the authProvider.
|
|
21
|
+
*
|
|
22
|
+
* @returns The current user identity. Destructure as { isPending, identity, error, refetch }.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* import { useGetIdentity, useGetOne } from 'react-admin';
|
|
26
|
+
*
|
|
27
|
+
* const PostDetail = ({ id }) => {
|
|
28
|
+
* const { data: post, isPending: postLoading } = useGetOne('posts', { id });
|
|
29
|
+
* const { identity, isPending: identityLoading } = useGetIdentity();
|
|
30
|
+
* if (postLoading || identityLoading) return <>Loading...</>;
|
|
31
|
+
* if (!post.lockedBy || post.lockedBy === identity.id) {
|
|
32
|
+
* // post isn't locked, or is locked by me
|
|
33
|
+
* return <PostEdit post={post} />
|
|
34
|
+
* } else {
|
|
35
|
+
* // post is locked by someone else and cannot be edited
|
|
36
|
+
* return <PostShow post={post} />
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
*/
|
|
40
|
+
export const useGetIdentity = (options = defaultQueryParams) => {
|
|
41
|
+
const authProvider = useAuthProvider();
|
|
42
|
+
const { onSuccess, onError, onSettled, ...queryOptions } = options;
|
|
43
|
+
const result = useQuery({
|
|
44
|
+
queryKey: ['auth', 'getIdentity'],
|
|
45
|
+
queryFn: async ({ signal }) => {
|
|
46
|
+
if (authProvider &&
|
|
47
|
+
typeof authProvider.getIdentity === 'function') {
|
|
48
|
+
return authProvider.getIdentity({ signal });
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return defaultIdentity;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
...queryOptions,
|
|
55
|
+
});
|
|
56
|
+
const onSuccessEvent = useEvent(onSuccess ?? noop);
|
|
57
|
+
const onErrorEvent = useEvent(onError ?? noop);
|
|
58
|
+
const onSettledEvent = useEvent(onSettled ?? noop);
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (result.data === undefined || result.isFetching)
|
|
61
|
+
return;
|
|
62
|
+
onSuccessEvent(result.data);
|
|
63
|
+
}, [onSuccessEvent, result.data, result.isFetching]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (result.error == null || result.isFetching)
|
|
66
|
+
return;
|
|
67
|
+
onErrorEvent(result.error);
|
|
68
|
+
}, [onErrorEvent, result.error, result.isFetching]);
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (result.status === 'pending' || result.isFetching)
|
|
71
|
+
return;
|
|
72
|
+
onSettledEvent(result.data, result.error);
|
|
73
|
+
}, [
|
|
74
|
+
onSettledEvent,
|
|
75
|
+
result.data,
|
|
76
|
+
result.error,
|
|
77
|
+
result.status,
|
|
78
|
+
result.isFetching,
|
|
79
|
+
]);
|
|
80
|
+
return useMemo(() => ({
|
|
81
|
+
...result,
|
|
82
|
+
identity: result.data,
|
|
83
|
+
}), [result]);
|
|
84
|
+
};
|
|
85
|
+
export default useGetIdentity;
|
|
86
|
+
const noop = () => { };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback for calling the authProvider.getPermissions() method.
|
|
3
|
+
*
|
|
4
|
+
* @see useAuthProvider
|
|
5
|
+
*
|
|
6
|
+
* @returns {Function} getPermissions callback
|
|
7
|
+
*
|
|
8
|
+
* This is a low level hook. See those more specialized hooks
|
|
9
|
+
* offering state handling.
|
|
10
|
+
*
|
|
11
|
+
* @see usePermissions
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* import { useGetPermissions } from 'react-admin';
|
|
16
|
+
*
|
|
17
|
+
* const Roles = () => {
|
|
18
|
+
* const [permissions, setPermissions] = useState([]);
|
|
19
|
+
* const getPermissions = useGetPermissions();
|
|
20
|
+
* useEffect(() => {
|
|
21
|
+
* getPermissions().then(permissions => setPermissions(permissions))
|
|
22
|
+
* }, [])
|
|
23
|
+
* return (
|
|
24
|
+
* <ul>
|
|
25
|
+
* {permissions.map((permission, key) => (
|
|
26
|
+
* <li key={key}>{permission}</li>
|
|
27
|
+
* ))}
|
|
28
|
+
* </ul>
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
*/
|
|
32
|
+
declare const useGetPermissions: () => GetPermissions;
|
|
33
|
+
/**
|
|
34
|
+
* Proxy for calling authProvider.getPermissions()
|
|
35
|
+
*
|
|
36
|
+
* @param {Object} params The parameters to pass to the authProvider
|
|
37
|
+
*
|
|
38
|
+
* @return {Promise} The authProvider response
|
|
39
|
+
*/
|
|
40
|
+
type GetPermissions = (params?: any) => Promise<any>;
|
|
41
|
+
export default useGetPermissions;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import useAuthProvider from './useAuthProvider';
|
|
3
|
+
/**
|
|
4
|
+
* Get a callback for calling the authProvider.getPermissions() method.
|
|
5
|
+
*
|
|
6
|
+
* @see useAuthProvider
|
|
7
|
+
*
|
|
8
|
+
* @returns {Function} getPermissions callback
|
|
9
|
+
*
|
|
10
|
+
* This is a low level hook. See those more specialized hooks
|
|
11
|
+
* offering state handling.
|
|
12
|
+
*
|
|
13
|
+
* @see usePermissions
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
*
|
|
17
|
+
* import { useGetPermissions } from 'react-admin';
|
|
18
|
+
*
|
|
19
|
+
* const Roles = () => {
|
|
20
|
+
* const [permissions, setPermissions] = useState([]);
|
|
21
|
+
* const getPermissions = useGetPermissions();
|
|
22
|
+
* useEffect(() => {
|
|
23
|
+
* getPermissions().then(permissions => setPermissions(permissions))
|
|
24
|
+
* }, [])
|
|
25
|
+
* return (
|
|
26
|
+
* <ul>
|
|
27
|
+
* {permissions.map((permission, key) => (
|
|
28
|
+
* <li key={key}>{permission}</li>
|
|
29
|
+
* ))}
|
|
30
|
+
* </ul>
|
|
31
|
+
* );
|
|
32
|
+
* }
|
|
33
|
+
*/
|
|
34
|
+
const useGetPermissions = () => {
|
|
35
|
+
const authProvider = useAuthProvider();
|
|
36
|
+
const getPermissions = useCallback((params = {}) => {
|
|
37
|
+
// react-query requires the query to return something
|
|
38
|
+
if (authProvider && authProvider.getPermissions) {
|
|
39
|
+
return authProvider
|
|
40
|
+
.getPermissions(params)
|
|
41
|
+
.then(result => result ?? null);
|
|
42
|
+
}
|
|
43
|
+
return Promise.resolve([]);
|
|
44
|
+
}, [authProvider]);
|
|
45
|
+
return getPermissions;
|
|
46
|
+
};
|
|
47
|
+
export default useGetPermissions;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import { AuthRedirectResult } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* This hook calls the `authProvider.handleCallback()` method on mount. This is meant to be used in a route called
|
|
5
|
+
* by an external authentication service (e.g. Auth0) after the user has logged in.
|
|
6
|
+
* By default, it redirects to application home page upon success, or to the `redirectTo` location returned by `authProvider. handleCallback`.
|
|
7
|
+
*
|
|
8
|
+
* @returns An object containing { isPending, data, error, refetch }.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useHandleAuthCallback: (options?: UseHandleAuthCallbackOptions) => import("@tanstack/react-query").UseQueryResult<void | AuthRedirectResult, Error>;
|
|
11
|
+
/**
|
|
12
|
+
* Key used to store the previous location in localStorage.
|
|
13
|
+
* Used by the useHandleAuthCallback hook to redirect the user to their previous location after a successful login.
|
|
14
|
+
*/
|
|
15
|
+
export declare const PreviousLocationStorageKey = "@react-admin/nextPathname";
|
|
16
|
+
export type UseHandleAuthCallbackOptions = Omit<UseQueryOptions<AuthRedirectResult | void>, 'queryKey' | 'queryFn'> & {
|
|
17
|
+
onSuccess?: (data: AuthRedirectResult | void) => void;
|
|
18
|
+
onError?: (err: Error) => void;
|
|
19
|
+
onSettled?: (data?: AuthRedirectResult | void, error?: Error | null) => void;
|
|
20
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useRedirect, useLocation } from '../routing';
|
|
4
|
+
import useAuthProvider from './useAuthProvider';
|
|
5
|
+
import { useEvent } from '../util';
|
|
6
|
+
/**
|
|
7
|
+
* This hook calls the `authProvider.handleCallback()` method on mount. This is meant to be used in a route called
|
|
8
|
+
* by an external authentication service (e.g. Auth0) after the user has logged in.
|
|
9
|
+
* By default, it redirects to application home page upon success, or to the `redirectTo` location returned by `authProvider. handleCallback`.
|
|
10
|
+
*
|
|
11
|
+
* @returns An object containing { isPending, data, error, refetch }.
|
|
12
|
+
*/
|
|
13
|
+
export const useHandleAuthCallback = (options) => {
|
|
14
|
+
const authProvider = useAuthProvider();
|
|
15
|
+
const redirect = useRedirect();
|
|
16
|
+
const location = useLocation();
|
|
17
|
+
const locationState = location.state;
|
|
18
|
+
const nextPathName = locationState && locationState.nextPathname;
|
|
19
|
+
const nextSearch = locationState && locationState.nextSearch;
|
|
20
|
+
const defaultRedirectUrl = nextPathName ? nextPathName + nextSearch : '/';
|
|
21
|
+
const { onSuccess, onError, onSettled, ...queryOptions } = options ?? {};
|
|
22
|
+
let handleCallbackPromise;
|
|
23
|
+
const queryResult = useQuery({
|
|
24
|
+
queryKey: ['auth', 'handleCallback'],
|
|
25
|
+
queryFn: ({ signal }) => {
|
|
26
|
+
if (!handleCallbackPromise) {
|
|
27
|
+
handleCallbackPromise =
|
|
28
|
+
authProvider &&
|
|
29
|
+
typeof authProvider.handleCallback === 'function'
|
|
30
|
+
? authProvider
|
|
31
|
+
.handleCallback({ signal })
|
|
32
|
+
.then(result => result ?? null)
|
|
33
|
+
: Promise.resolve();
|
|
34
|
+
}
|
|
35
|
+
return handleCallbackPromise;
|
|
36
|
+
},
|
|
37
|
+
retry: false,
|
|
38
|
+
...queryOptions,
|
|
39
|
+
});
|
|
40
|
+
const onSuccessEvent = useEvent(onSuccess ??
|
|
41
|
+
((data) => {
|
|
42
|
+
// AuthProviders relying on a third party services redirect back to the app can't
|
|
43
|
+
// use the location state to store the path on which the user was before the login.
|
|
44
|
+
// So we support a fallback on the localStorage.
|
|
45
|
+
const previousLocation = localStorage.getItem(PreviousLocationStorageKey);
|
|
46
|
+
const redirectTo = data?.redirectTo ??
|
|
47
|
+
previousLocation;
|
|
48
|
+
if (redirectTo === false) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
redirect(redirectTo ?? defaultRedirectUrl);
|
|
52
|
+
}));
|
|
53
|
+
const onErrorEvent = useEvent(onError ?? noop);
|
|
54
|
+
const onSettledEvent = useEvent(onSettled ?? noop);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (queryResult.error == null || queryResult.isFetching)
|
|
57
|
+
return;
|
|
58
|
+
onErrorEvent(queryResult.error);
|
|
59
|
+
}, [onErrorEvent, queryResult.error, queryResult.isFetching]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (queryResult.data === undefined || queryResult.isFetching)
|
|
62
|
+
return;
|
|
63
|
+
onSuccessEvent(queryResult.data);
|
|
64
|
+
}, [onSuccessEvent, queryResult.data, queryResult.isFetching]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (queryResult.status === 'pending' || queryResult.isFetching)
|
|
67
|
+
return;
|
|
68
|
+
onSettledEvent(queryResult.data, queryResult.error);
|
|
69
|
+
}, [
|
|
70
|
+
onSettledEvent,
|
|
71
|
+
queryResult.data,
|
|
72
|
+
queryResult.error,
|
|
73
|
+
queryResult.status,
|
|
74
|
+
queryResult.isFetching,
|
|
75
|
+
]);
|
|
76
|
+
return queryResult;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Key used to store the previous location in localStorage.
|
|
80
|
+
* Used by the useHandleAuthCallback hook to redirect the user to their previous location after a successful login.
|
|
81
|
+
*/
|
|
82
|
+
export const PreviousLocationStorageKey = '@react-admin/nextPathname';
|
|
83
|
+
const noop = () => { };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HintedString } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* A hook that returns true if the authProvider is currently checking the authentication status or the user's access rights.
|
|
4
|
+
* @param params
|
|
5
|
+
* @param params.action The action to check access for
|
|
6
|
+
* @param params.resource The resource to check access for (optional). Defaults to the resource of the current ResourceContext.
|
|
7
|
+
* @returns {boolean} true if the authProvider is currently checking the authentication status or the user's access rights, false otherwise.
|
|
8
|
+
*/
|
|
9
|
+
export declare const useIsAuthPending: (params: UseIsAuthPendingParams) => boolean;
|
|
10
|
+
export type UseIsAuthPendingParams = {
|
|
11
|
+
resource?: string;
|
|
12
|
+
action: HintedString<'list' | 'create' | 'edit' | 'show' | 'delete'>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { useResourceContext } from '../core';
|
|
3
|
+
import useAuthProvider from './useAuthProvider';
|
|
4
|
+
/**
|
|
5
|
+
* A hook that returns true if the authProvider is currently checking the authentication status or the user's access rights.
|
|
6
|
+
* @param params
|
|
7
|
+
* @param params.action The action to check access for
|
|
8
|
+
* @param params.resource The resource to check access for (optional). Defaults to the resource of the current ResourceContext.
|
|
9
|
+
* @returns {boolean} true if the authProvider is currently checking the authentication status or the user's access rights, false otherwise.
|
|
10
|
+
*/
|
|
11
|
+
export const useIsAuthPending = (params) => {
|
|
12
|
+
const { action, ...props } = params;
|
|
13
|
+
const queryClient = useQueryClient();
|
|
14
|
+
const authProvider = useAuthProvider();
|
|
15
|
+
const resource = useResourceContext(props);
|
|
16
|
+
if (!authProvider) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const authQueryState = queryClient.getQueryState(['auth', 'checkAuth', {}]);
|
|
20
|
+
const canAccessQueryState = queryClient.getQueryState([
|
|
21
|
+
'auth',
|
|
22
|
+
'canAccess',
|
|
23
|
+
{ action, resource },
|
|
24
|
+
]);
|
|
25
|
+
if (authQueryState?.status === 'pending' ||
|
|
26
|
+
(authProvider.canAccess && canAccessQueryState?.status === 'pending')) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback for calling the authProvider.login() method
|
|
3
|
+
* and redirect to the previous authenticated page (or the home page) on success.
|
|
4
|
+
*
|
|
5
|
+
* @see useAuthProvider
|
|
6
|
+
*
|
|
7
|
+
* @returns {Function} login callback
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
*
|
|
11
|
+
* import { useLogin } from 'react-admin';
|
|
12
|
+
*
|
|
13
|
+
* const LoginButton = () => {
|
|
14
|
+
* const [loading, setLoading] = useState(false);
|
|
15
|
+
* const login = useLogin();
|
|
16
|
+
* const handleClick = {
|
|
17
|
+
* setLoading(true);
|
|
18
|
+
* login({ username: 'john', password: 'p@ssw0rd' }, '/posts')
|
|
19
|
+
* .then(() => setLoading(false));
|
|
20
|
+
* }
|
|
21
|
+
* return <button onClick={handleClick}>Login</button>;
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
declare const useLogin: () => Login;
|
|
25
|
+
/**
|
|
26
|
+
* Log a user in by calling the authProvider.login() method
|
|
27
|
+
*
|
|
28
|
+
* @param {Object} params Login parameters to pass to the authProvider. May contain username/email, password, etc
|
|
29
|
+
* @param {string} pathName The path to redirect to after login. By default, redirects to the home page, or to the last page visited after disconnection.
|
|
30
|
+
*
|
|
31
|
+
* @return {Promise} The authProvider response
|
|
32
|
+
*/
|
|
33
|
+
type Login = (params: any, pathName?: string) => Promise<any>;
|
|
34
|
+
export default useLogin;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { useNotificationContext } from '../notification';
|
|
4
|
+
import { useBasename, useLocation, useNavigate } from '../routing';
|
|
5
|
+
import useAuthProvider, { defaultAuthParams } from './useAuthProvider';
|
|
6
|
+
import { removeDoubleSlashes } from '../routing/useCreatePath';
|
|
7
|
+
/**
|
|
8
|
+
* Get a callback for calling the authProvider.login() method
|
|
9
|
+
* and redirect to the previous authenticated page (or the home page) on success.
|
|
10
|
+
*
|
|
11
|
+
* @see useAuthProvider
|
|
12
|
+
*
|
|
13
|
+
* @returns {Function} login callback
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
*
|
|
17
|
+
* import { useLogin } from 'react-admin';
|
|
18
|
+
*
|
|
19
|
+
* const LoginButton = () => {
|
|
20
|
+
* const [loading, setLoading] = useState(false);
|
|
21
|
+
* const login = useLogin();
|
|
22
|
+
* const handleClick = {
|
|
23
|
+
* setLoading(true);
|
|
24
|
+
* login({ username: 'john', password: 'p@ssw0rd' }, '/posts')
|
|
25
|
+
* .then(() => setLoading(false));
|
|
26
|
+
* }
|
|
27
|
+
* return <button onClick={handleClick}>Login</button>;
|
|
28
|
+
* }
|
|
29
|
+
*/
|
|
30
|
+
const useLogin = () => {
|
|
31
|
+
const authProvider = useAuthProvider();
|
|
32
|
+
const queryClient = useQueryClient();
|
|
33
|
+
const location = useLocation();
|
|
34
|
+
const locationState = location.state;
|
|
35
|
+
const navigate = useNavigate();
|
|
36
|
+
const basename = useBasename();
|
|
37
|
+
const { resetNotifications } = useNotificationContext();
|
|
38
|
+
const nextPathName = locationState && locationState.nextPathname;
|
|
39
|
+
const nextSearch = locationState && locationState.nextSearch;
|
|
40
|
+
const afterLoginUrl = removeDoubleSlashes(`${basename}/${defaultAuthParams.afterLoginUrl}`);
|
|
41
|
+
const login = useCallback((params = {}, pathName) => {
|
|
42
|
+
if (authProvider) {
|
|
43
|
+
return authProvider.login(params).then(ret => {
|
|
44
|
+
resetNotifications();
|
|
45
|
+
queryClient.invalidateQueries({
|
|
46
|
+
queryKey: ['auth', 'getPermissions'],
|
|
47
|
+
});
|
|
48
|
+
if (ret && ret.hasOwnProperty('redirectTo')) {
|
|
49
|
+
if (ret) {
|
|
50
|
+
navigate(ret.redirectTo);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const redirectUrl = pathName
|
|
55
|
+
? pathName
|
|
56
|
+
: nextPathName + nextSearch || afterLoginUrl;
|
|
57
|
+
navigate(redirectUrl);
|
|
58
|
+
}
|
|
59
|
+
return ret;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
resetNotifications();
|
|
64
|
+
navigate(afterLoginUrl);
|
|
65
|
+
return Promise.resolve();
|
|
66
|
+
}
|
|
67
|
+
}, [
|
|
68
|
+
authProvider,
|
|
69
|
+
queryClient,
|
|
70
|
+
navigate,
|
|
71
|
+
nextPathName,
|
|
72
|
+
nextSearch,
|
|
73
|
+
resetNotifications,
|
|
74
|
+
afterLoginUrl,
|
|
75
|
+
]);
|
|
76
|
+
return login;
|
|
77
|
+
};
|
|
78
|
+
export default useLogin;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback for calling the authProvider.logout() method,
|
|
3
|
+
* redirect to the login page, and clear the store.
|
|
4
|
+
*
|
|
5
|
+
* @see useAuthProvider
|
|
6
|
+
*
|
|
7
|
+
* @returns {Function} logout callback
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
*
|
|
11
|
+
* import { useLogout } from 'react-admin';
|
|
12
|
+
*
|
|
13
|
+
* const LogoutButton = () => {
|
|
14
|
+
* const logout = useLogout();
|
|
15
|
+
* const handleClick = () => logout();
|
|
16
|
+
* return <button onClick={handleClick}>Logout</button>;
|
|
17
|
+
* }
|
|
18
|
+
*/
|
|
19
|
+
declare const useLogout: () => Logout;
|
|
20
|
+
/**
|
|
21
|
+
* Log the current user out by calling the authProvider.logout() method,
|
|
22
|
+
* and redirect them to the login screen.
|
|
23
|
+
*
|
|
24
|
+
* @param {Object} params The parameters to pass to the authProvider
|
|
25
|
+
* @param {string} redirectTo The path name to redirect the user to (optional, defaults to login)
|
|
26
|
+
* @param {boolean} redirectToCurrentLocationAfterLogin Whether the button shall record the current location to redirect to it after login. true by default.
|
|
27
|
+
*
|
|
28
|
+
* @return {Promise} The authProvider response
|
|
29
|
+
*/
|
|
30
|
+
type Logout = (params?: any, redirectTo?: string | false, redirectToCurrentLocationAfterLogin?: boolean) => Promise<any>;
|
|
31
|
+
export default useLogout;
|