@strato-admin/core 0.1.1 → 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 +9 -3
- 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,73 @@
|
|
|
1
|
+
import { transform } from 'inflection';
|
|
2
|
+
/**
|
|
3
|
+
* Returns an array of arguments to use with the translate function for the label of a field.
|
|
4
|
+
* The label will be computed from the resource and source props.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* <span>
|
|
8
|
+
* {translate(...getFieldLabelTranslationArgs({ label, resource, source }))}
|
|
9
|
+
* </span>
|
|
10
|
+
*
|
|
11
|
+
* @see useTranslateLabel for a ready-to-use hook
|
|
12
|
+
*/
|
|
13
|
+
export const getFieldLabelTranslationArgs = (options) => {
|
|
14
|
+
if (!options)
|
|
15
|
+
return [''];
|
|
16
|
+
const { label, defaultLabel, resource, resourceFromContext, source } = options;
|
|
17
|
+
if (typeof label !== 'undefined')
|
|
18
|
+
return [label, { _: label }];
|
|
19
|
+
if (typeof source === 'undefined')
|
|
20
|
+
return [''];
|
|
21
|
+
const { sourceWithoutDigits, sourceSuffix } = getSourceParts(source);
|
|
22
|
+
const defaultLabelTranslation = transform(sourceSuffix.replace(/\./g, ' '), ['underscore', 'humanize']);
|
|
23
|
+
if (resource) {
|
|
24
|
+
return [
|
|
25
|
+
getResourceFieldLabelKey(resource, sourceWithoutDigits),
|
|
26
|
+
{ _: defaultLabelTranslation },
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
if (defaultLabel) {
|
|
30
|
+
return [defaultLabel, { _: defaultLabelTranslation }];
|
|
31
|
+
}
|
|
32
|
+
return [
|
|
33
|
+
getResourceFieldLabelKey(resourceFromContext || 'undefined', sourceWithoutDigits),
|
|
34
|
+
{ _: defaultLabelTranslation },
|
|
35
|
+
];
|
|
36
|
+
};
|
|
37
|
+
export default getFieldLabelTranslationArgs;
|
|
38
|
+
export const getResourceFieldLabelKey = (resource, source) => `resources.${resource}.fields.${source}`;
|
|
39
|
+
/**
|
|
40
|
+
* Uses the source string to guess a translation message and a default label.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* getSourceParts('pictures') // { sourceWithoutDigits: 'pictures', sourceSuffix: 'pictures' }
|
|
44
|
+
* getSourceParts('pictures.url') // { sourceWithoutDigits: 'pictures.url', sourceSuffix: 'pictures.url' }
|
|
45
|
+
* getSourceParts('pictures.0.url') // { sourceWithoutDigits: 'pictures.url', sourceSuffix: 'url' }
|
|
46
|
+
* getSourceParts('pictures.12.urls.5.protocol') // { sourceWithoutDigits: 'pictures.urls.protocol', sourceSuffix: 'protocol' }
|
|
47
|
+
*/
|
|
48
|
+
const getSourceParts = (source) => {
|
|
49
|
+
// remove digits, e.g. 'book.authors.2.categories.3.identifier.name' => 'book.authors.categories.identifier.name'
|
|
50
|
+
const sourceWithoutDigits = source.replace(/\.\d+\./g, '.');
|
|
51
|
+
// get final part, e.g. 'book.authors.2.categories.3.identifier.name' => 'identifier.name'
|
|
52
|
+
// we're not using a regexp here to avoid code scanning alert "Polynomial regular expression used on uncontrolled data"
|
|
53
|
+
const parts = source.split('.');
|
|
54
|
+
let lastPartWithDigits;
|
|
55
|
+
parts.forEach((part, index) => {
|
|
56
|
+
if (onlyDigits(part)) {
|
|
57
|
+
lastPartWithDigits = index;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
const sourceSuffix = lastPartWithDigits != null
|
|
61
|
+
? parts.slice(lastPartWithDigits + 1).join('.')
|
|
62
|
+
: source;
|
|
63
|
+
return { sourceWithoutDigits, sourceSuffix };
|
|
64
|
+
};
|
|
65
|
+
// 48 and 57 are the char codes for "0" and "9", respectively
|
|
66
|
+
const onlyDigits = s => {
|
|
67
|
+
for (let i = s.length - 1; i >= 0; i--) {
|
|
68
|
+
const d = s.charCodeAt(i);
|
|
69
|
+
if (d < 48 || d > 57)
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getMutationMode: (mutationMode: any, undoable: any) => any;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated use `useState` instead, since React no longer
|
|
3
|
+
* issues warnings when calling setState on unmounted components.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useSafeSetState<T>(initialState?: T | (() => T)): [T | undefined, React.Dispatch<React.SetStateAction<T>>];
|
|
6
|
+
export declare function usePrevious<T>(value: T): T;
|
|
7
|
+
export declare function useDeepCompareEffect(callback: any, inputs: any): void;
|
|
8
|
+
/**
|
|
9
|
+
* A hook that returns true once a delay has expired.
|
|
10
|
+
* @param ms The delay in milliseconds
|
|
11
|
+
* @param key A key that can be used to reset the timer
|
|
12
|
+
* @returns true if the delay has expired, false otherwise
|
|
13
|
+
*/
|
|
14
|
+
export declare function useTimeout(ms?: number, key?: string): boolean;
|
|
15
|
+
export declare function useIsMounted(): import("react").RefObject<boolean>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { useRef, useEffect, useState, useCallback } from 'react';
|
|
2
|
+
import isEqual from 'lodash/isEqual.js';
|
|
3
|
+
// thanks Kent C Dodds for the following helpers
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated use `useState` instead, since React no longer
|
|
6
|
+
* issues warnings when calling setState on unmounted components.
|
|
7
|
+
*/
|
|
8
|
+
export function useSafeSetState(initialState) {
|
|
9
|
+
const [state, setState] = useState(initialState);
|
|
10
|
+
const mountedRef = useRef(false);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
mountedRef.current = true;
|
|
13
|
+
return () => {
|
|
14
|
+
mountedRef.current = false;
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
17
|
+
const safeSetState = useCallback(args => {
|
|
18
|
+
if (mountedRef.current) {
|
|
19
|
+
return setState(args);
|
|
20
|
+
}
|
|
21
|
+
}, [mountedRef, setState]);
|
|
22
|
+
return [state, safeSetState];
|
|
23
|
+
}
|
|
24
|
+
export function usePrevious(value) {
|
|
25
|
+
const ref = useRef(null);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
ref.current = value;
|
|
28
|
+
});
|
|
29
|
+
return ref.current;
|
|
30
|
+
}
|
|
31
|
+
export function useDeepCompareEffect(callback, inputs) {
|
|
32
|
+
const cleanupRef = useRef(undefined);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (!isEqual(previousInputs, inputs)) {
|
|
35
|
+
cleanupRef.current = callback();
|
|
36
|
+
}
|
|
37
|
+
return () => {
|
|
38
|
+
if (typeof cleanupRef.current === 'function') {
|
|
39
|
+
cleanupRef.current();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
const previousInputs = usePrevious(inputs);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A hook that returns true once a delay has expired.
|
|
47
|
+
* @param ms The delay in milliseconds
|
|
48
|
+
* @param key A key that can be used to reset the timer
|
|
49
|
+
* @returns true if the delay has expired, false otherwise
|
|
50
|
+
*/
|
|
51
|
+
export function useTimeout(ms = 0, key = '') {
|
|
52
|
+
const [ready, setReady] = useState(false);
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
setReady(false);
|
|
55
|
+
const timer = setTimeout(() => {
|
|
56
|
+
setReady(true);
|
|
57
|
+
}, ms);
|
|
58
|
+
return () => {
|
|
59
|
+
clearTimeout(timer);
|
|
60
|
+
};
|
|
61
|
+
}, [key, ms, setReady]);
|
|
62
|
+
return ready;
|
|
63
|
+
}
|
|
64
|
+
export function useIsMounted() {
|
|
65
|
+
const isMounted = useRef(true);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
isMounted.current = true;
|
|
68
|
+
return () => {
|
|
69
|
+
isMounted.current = false;
|
|
70
|
+
};
|
|
71
|
+
}, []);
|
|
72
|
+
return isMounted;
|
|
73
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import escapePath from './escapePath';
|
|
2
|
+
import FieldTitle, { FieldTitleProps } from './FieldTitle';
|
|
3
|
+
import removeEmpty from './removeEmpty';
|
|
4
|
+
import removeKey from './removeKey';
|
|
5
|
+
import Ready from './Ready';
|
|
6
|
+
import warning from './warning';
|
|
7
|
+
import useWhyDidYouUpdate from './useWhyDidYouUpdate';
|
|
8
|
+
import { getMutationMode } from './getMutationMode';
|
|
9
|
+
export * from './getFieldLabelTranslationArgs';
|
|
10
|
+
export * from './mergeRefs';
|
|
11
|
+
export * from './useEvent';
|
|
12
|
+
export * from './useDebouncedEvent';
|
|
13
|
+
export * from './useFieldValue';
|
|
14
|
+
export { escapePath, FieldTitle, Ready, removeEmpty, removeKey, warning, useWhyDidYouUpdate, getMutationMode, };
|
|
15
|
+
export type { FieldTitleProps };
|
|
16
|
+
export * from './asyncDebounce';
|
|
17
|
+
export * from './hooks';
|
|
18
|
+
export * from './shallowEqual';
|
|
19
|
+
export * from './useCheckForApplicationUpdate';
|
|
20
|
+
export * from './genericMemo';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import escapePath from './escapePath';
|
|
2
|
+
import FieldTitle from './FieldTitle';
|
|
3
|
+
import removeEmpty from './removeEmpty';
|
|
4
|
+
import removeKey from './removeKey';
|
|
5
|
+
import Ready from './Ready';
|
|
6
|
+
import warning from './warning';
|
|
7
|
+
import useWhyDidYouUpdate from './useWhyDidYouUpdate';
|
|
8
|
+
import { getMutationMode } from './getMutationMode';
|
|
9
|
+
export * from './getFieldLabelTranslationArgs';
|
|
10
|
+
export * from './mergeRefs';
|
|
11
|
+
export * from './useEvent';
|
|
12
|
+
export * from './useDebouncedEvent';
|
|
13
|
+
export * from './useFieldValue';
|
|
14
|
+
export { escapePath, FieldTitle, Ready, removeEmpty, removeKey, warning, useWhyDidYouUpdate, getMutationMode, };
|
|
15
|
+
export * from './asyncDebounce';
|
|
16
|
+
export * from './hooks';
|
|
17
|
+
export * from './shallowEqual';
|
|
18
|
+
export * from './useCheckForApplicationUpdate';
|
|
19
|
+
export * from './genericMemo';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { shallowEqual } from './shallowEqual';
|
|
2
|
+
const isObject = obj => obj && Object.prototype.toString.call(obj) === '[object Object]';
|
|
3
|
+
const isEmpty = obj => obj instanceof Date
|
|
4
|
+
? false
|
|
5
|
+
: obj === '' ||
|
|
6
|
+
obj === null ||
|
|
7
|
+
obj === undefined ||
|
|
8
|
+
shallowEqual(obj, {});
|
|
9
|
+
const removeEmpty = object => Object.keys(object).reduce((acc, key) => {
|
|
10
|
+
let child = object[key];
|
|
11
|
+
if (isObject(object[key])) {
|
|
12
|
+
child = removeEmpty(object[key]);
|
|
13
|
+
}
|
|
14
|
+
return isEmpty(child) ? acc : { ...acc, [key]: child };
|
|
15
|
+
}, {});
|
|
16
|
+
export default removeEmpty;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const removeKey = (target, path) => Object.keys(target).reduce((acc, key) => {
|
|
2
|
+
if (key !== path) {
|
|
3
|
+
return Object.assign({}, acc, { [key]: target[key] });
|
|
4
|
+
}
|
|
5
|
+
return acc;
|
|
6
|
+
}, {});
|
|
7
|
+
const deepRemoveKey = (target, path) => {
|
|
8
|
+
const paths = path.split('.');
|
|
9
|
+
if (paths.length === 1) {
|
|
10
|
+
return removeKey(target, path);
|
|
11
|
+
}
|
|
12
|
+
const deepKey = paths[0];
|
|
13
|
+
if (target[deepKey] === undefined) {
|
|
14
|
+
return target;
|
|
15
|
+
}
|
|
16
|
+
const deep = deepRemoveKey(target[deepKey], paths.slice(1).join('.'));
|
|
17
|
+
if (Object.keys(deep).length === 0) {
|
|
18
|
+
return removeKey(target, deepKey);
|
|
19
|
+
}
|
|
20
|
+
return Object.assign({}, target, { [deepKey]: deep });
|
|
21
|
+
};
|
|
22
|
+
export default deepRemoveKey;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const shallowEqual: (objA: any, objB: any) => boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function is(x, y) {
|
|
2
|
+
if (x === y) {
|
|
3
|
+
return x !== 0 || y !== 0 || 1 / x === 1 / y;
|
|
4
|
+
}
|
|
5
|
+
else {
|
|
6
|
+
return x !== x && y !== y;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export const shallowEqual = (objA, objB) => {
|
|
10
|
+
if (is(objA, objB))
|
|
11
|
+
return true;
|
|
12
|
+
if (typeof objA !== 'object' ||
|
|
13
|
+
objA === null ||
|
|
14
|
+
typeof objB !== 'object' ||
|
|
15
|
+
objB === null) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const keysA = Object.keys(objA);
|
|
19
|
+
const keysB = Object.keys(objB);
|
|
20
|
+
if (keysA.length !== keysB.length)
|
|
21
|
+
return false;
|
|
22
|
+
for (let i = 0; i < keysA.length; i++) {
|
|
23
|
+
if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||
|
|
24
|
+
!is(objA[keysA[i]], objB[keysA[i]])) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the application code has changed and calls the provided onNewVersionAvailable function when needed.
|
|
3
|
+
*
|
|
4
|
+
* It checks for code update by downloading the provided URL (default to the HTML page) and
|
|
5
|
+
* comparing the hash of the response with the hash of the current page.
|
|
6
|
+
*
|
|
7
|
+
* @param {UseCheckForApplicationUpdateOptions} options The options
|
|
8
|
+
* @param {Function} options.onNewVersionAvailable The function to call when a new version of the application is available.
|
|
9
|
+
* @param {string} options.url Optional. The URL to download to check for code update. Defaults to the current URL.
|
|
10
|
+
* @param {RequestInit} options.fetchOptions Optional. The options passed to fetch function when checking for update.
|
|
11
|
+
* @param {number} options.interval Optional. The interval in milliseconds between two checks. Defaults to 3600000 (1 hour).
|
|
12
|
+
* @param {boolean} options.disabled Optional. Whether the check should be disabled. Defaults to false.
|
|
13
|
+
*/
|
|
14
|
+
export declare const useCheckForApplicationUpdate: (options: UseCheckForApplicationUpdateOptions) => void;
|
|
15
|
+
export interface UseCheckForApplicationUpdateOptions {
|
|
16
|
+
onNewVersionAvailable: () => void;
|
|
17
|
+
interval?: number;
|
|
18
|
+
url?: string;
|
|
19
|
+
fetchOptions?: RequestInit;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { useEvent } from './useEvent';
|
|
3
|
+
/**
|
|
4
|
+
* Checks if the application code has changed and calls the provided onNewVersionAvailable function when needed.
|
|
5
|
+
*
|
|
6
|
+
* It checks for code update by downloading the provided URL (default to the HTML page) and
|
|
7
|
+
* comparing the hash of the response with the hash of the current page.
|
|
8
|
+
*
|
|
9
|
+
* @param {UseCheckForApplicationUpdateOptions} options The options
|
|
10
|
+
* @param {Function} options.onNewVersionAvailable The function to call when a new version of the application is available.
|
|
11
|
+
* @param {string} options.url Optional. The URL to download to check for code update. Defaults to the current URL.
|
|
12
|
+
* @param {RequestInit} options.fetchOptions Optional. The options passed to fetch function when checking for update.
|
|
13
|
+
* @param {number} options.interval Optional. The interval in milliseconds between two checks. Defaults to 3600000 (1 hour).
|
|
14
|
+
* @param {boolean} options.disabled Optional. Whether the check should be disabled. Defaults to false.
|
|
15
|
+
*/
|
|
16
|
+
export const useCheckForApplicationUpdate = (options) => {
|
|
17
|
+
const { url = window.location.href, fetchOptions, interval: delay = ONE_HOUR, onNewVersionAvailable: onNewVersionAvailableProp, disabled = process.env.NODE_ENV !== 'production', } = options;
|
|
18
|
+
const currentHash = useRef(undefined);
|
|
19
|
+
const onNewVersionAvailable = useEvent(onNewVersionAvailableProp);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (disabled)
|
|
22
|
+
return;
|
|
23
|
+
getHashForUrl(url, fetchOptions).then(hash => {
|
|
24
|
+
if (hash != null) {
|
|
25
|
+
currentHash.current = hash;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
|
+
}, [disabled, url, JSON.stringify(fetchOptions)]);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (disabled)
|
|
32
|
+
return;
|
|
33
|
+
const interval = setInterval(() => {
|
|
34
|
+
getHashForUrl(url, fetchOptions)
|
|
35
|
+
.then(hash => {
|
|
36
|
+
if (hash != null && currentHash.current !== hash) {
|
|
37
|
+
// Store the latest hash to avoid calling the onNewVersionAvailable function multiple times
|
|
38
|
+
// or when users have closed the notification
|
|
39
|
+
currentHash.current = hash;
|
|
40
|
+
onNewVersionAvailable();
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
.catch(() => {
|
|
44
|
+
// Ignore errors to avoid issues when connectivity is lost
|
|
45
|
+
});
|
|
46
|
+
}, delay);
|
|
47
|
+
return () => clearInterval(interval);
|
|
48
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
49
|
+
}, [
|
|
50
|
+
delay,
|
|
51
|
+
onNewVersionAvailable,
|
|
52
|
+
disabled,
|
|
53
|
+
url,
|
|
54
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55
|
+
JSON.stringify(fetchOptions),
|
|
56
|
+
]);
|
|
57
|
+
};
|
|
58
|
+
const getHashForUrl = async (url, fetchOptions) => {
|
|
59
|
+
try {
|
|
60
|
+
const response = await fetch(url, fetchOptions);
|
|
61
|
+
if (!response.ok)
|
|
62
|
+
return null;
|
|
63
|
+
const text = await response.text();
|
|
64
|
+
return hash(text);
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
// Simple hash function, taken from https://stackoverflow.com/a/52171480/3723993, suggested by Copilot
|
|
71
|
+
const hash = (value, seed = 0) => {
|
|
72
|
+
let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
|
|
73
|
+
for (let i = 0, ch; i < value.length; i++) {
|
|
74
|
+
ch = value.charCodeAt(i);
|
|
75
|
+
h1 = Math.imul(h1 ^ ch, 2654435761);
|
|
76
|
+
h2 = Math.imul(h2 ^ ch, 1597334677);
|
|
77
|
+
}
|
|
78
|
+
h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);
|
|
79
|
+
h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);
|
|
80
|
+
h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);
|
|
81
|
+
h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);
|
|
82
|
+
return 4294967296 * (2097151 & h2) + (h1 >>> 0);
|
|
83
|
+
};
|
|
84
|
+
const ONE_HOUR = 1000 * 60 * 60;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook somewhat equivalent to useEvent, but with a debounce
|
|
3
|
+
* Returns a debounced callback which will not change across re-renders unless the
|
|
4
|
+
* callback or delay changes
|
|
5
|
+
* @see https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
|
|
6
|
+
* @see https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
7
|
+
*/
|
|
8
|
+
export declare const useDebouncedEvent: <Args extends unknown[], Return>(callback: (...args: Args) => Return, delay: number) => (...args: Args) => Return | undefined;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useCallback, useRef } from 'react';
|
|
3
|
+
import debounce from 'lodash/debounce.js';
|
|
4
|
+
import { useEvent } from './useEvent';
|
|
5
|
+
// allow the hook to work in SSR
|
|
6
|
+
const useLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
|
|
7
|
+
/**
|
|
8
|
+
* Hook somewhat equivalent to useEvent, but with a debounce
|
|
9
|
+
* Returns a debounced callback which will not change across re-renders unless the
|
|
10
|
+
* callback or delay changes
|
|
11
|
+
* @see https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
|
|
12
|
+
* @see https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
13
|
+
*/
|
|
14
|
+
export const useDebouncedEvent = (callback, delay) => {
|
|
15
|
+
// Create a ref that stores the debounced callback
|
|
16
|
+
const debouncedCallbackRef = useRef(() => {
|
|
17
|
+
throw new Error('Cannot call an event handler while rendering.');
|
|
18
|
+
});
|
|
19
|
+
// Keep a stable ref to the callback (in case it's an inline function for instance)
|
|
20
|
+
const stableCallback = useEvent(callback);
|
|
21
|
+
// Whenever callback or delay changes, we need to update the debounced callback
|
|
22
|
+
useLayoutEffect(() => {
|
|
23
|
+
debouncedCallbackRef.current = debounce(stableCallback, delay);
|
|
24
|
+
}, [stableCallback, delay]);
|
|
25
|
+
// The function returned by useCallback will invoke the debounced callback
|
|
26
|
+
// Its dependencies array is empty, so it never changes across re-renders
|
|
27
|
+
return useCallback((...args) => debouncedCallbackRef.current(...args), []);
|
|
28
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alternative to useCallback that doesn't update the callback when dependencies change
|
|
3
|
+
*
|
|
4
|
+
* @see https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
|
|
5
|
+
* @see https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
6
|
+
*/
|
|
7
|
+
export declare const useEvent: <Args extends unknown[], Return>(fn: (...args: Args) => Return) => ((...args: Args) => Return);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
// allow the hook to work in SSR
|
|
4
|
+
const useLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
|
|
5
|
+
/**
|
|
6
|
+
* Alternative to useCallback that doesn't update the callback when dependencies change
|
|
7
|
+
*
|
|
8
|
+
* @see https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback
|
|
9
|
+
* @see https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
10
|
+
*/
|
|
11
|
+
export const useEvent = (fn) => {
|
|
12
|
+
const ref = React.useRef(() => {
|
|
13
|
+
throw new Error('Cannot call an event handler while rendering.');
|
|
14
|
+
});
|
|
15
|
+
useLayoutEffect(() => {
|
|
16
|
+
ref.current = fn;
|
|
17
|
+
});
|
|
18
|
+
return useCallback((...args) => ref.current(...args), []);
|
|
19
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ExtractRecordPaths } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* A hook that gets the value of a field of the current record.
|
|
4
|
+
* @param params The hook parameters
|
|
5
|
+
* @param params.source The field source
|
|
6
|
+
* @param params.record The record to use. Uses the record from the RecordContext if not provided
|
|
7
|
+
* @param params.defaultValue The value to return when the field value is empty
|
|
8
|
+
* @returns The field value
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const MyField = (props: { source: string }) => {
|
|
12
|
+
* const value = useFieldValue(props);
|
|
13
|
+
* return <span>{value}</span>;
|
|
14
|
+
* }
|
|
15
|
+
*/
|
|
16
|
+
export declare const useFieldValue: <RecordType extends Record<string, any> = Record<string, any>>(params: UseFieldValueOptions<RecordType>) => any;
|
|
17
|
+
export interface UseFieldValueOptions<RecordType extends Record<string, any> = Record<string, any>> {
|
|
18
|
+
defaultValue?: any;
|
|
19
|
+
source: ExtractRecordPaths<RecordType>;
|
|
20
|
+
record?: RecordType;
|
|
21
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import get from 'lodash/get.js';
|
|
2
|
+
import { useRecordContext } from '../controller';
|
|
3
|
+
/**
|
|
4
|
+
* A hook that gets the value of a field of the current record.
|
|
5
|
+
* @param params The hook parameters
|
|
6
|
+
* @param params.source The field source
|
|
7
|
+
* @param params.record The record to use. Uses the record from the RecordContext if not provided
|
|
8
|
+
* @param params.defaultValue The value to return when the field value is empty
|
|
9
|
+
* @returns The field value
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const MyField = (props: { source: string }) => {
|
|
13
|
+
* const value = useFieldValue(props);
|
|
14
|
+
* return <span>{value}</span>;
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
export const useFieldValue = (params) => {
|
|
18
|
+
const { defaultValue, source } = params;
|
|
19
|
+
// We use the record from the RecordContext and do not rely on the SourceContext on purpose to
|
|
20
|
+
// avoid having the wrong source targeting the record.
|
|
21
|
+
// Indeed, some components may create a sub record context (SimpleFormIterator, TranslatableInputs, etc.). In this case,
|
|
22
|
+
// it they used the SourceContext as well, they would have the wrong source.
|
|
23
|
+
// Inputs needs the SourceContext as they rely on the Form value and you can't have nested forms.
|
|
24
|
+
// Fields needs the RecordContext as they rely on the Record value and you can have nested RecordContext.
|
|
25
|
+
const record = useRecordContext(params);
|
|
26
|
+
return get(record, source, defaultValue);
|
|
27
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug hook showing which props updated between two renders
|
|
3
|
+
* @example
|
|
4
|
+
*
|
|
5
|
+
* const MyComponent = React.memo(props => {
|
|
6
|
+
* useWhyDidYouUpdate('MyComponent', props);
|
|
7
|
+
* return <div...;
|
|
8
|
+
* });
|
|
9
|
+
*
|
|
10
|
+
* @link https://usehooks.com/useWhyDidYouUpdate/
|
|
11
|
+
*/
|
|
12
|
+
export default function useWhyDidYouUpdate(name: any, props: any): void;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useRef, useEffect } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Debug hook showing which props updated between two renders
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* const MyComponent = React.memo(props => {
|
|
7
|
+
* useWhyDidYouUpdate('MyComponent', props);
|
|
8
|
+
* return <div...;
|
|
9
|
+
* });
|
|
10
|
+
*
|
|
11
|
+
* @link https://usehooks.com/useWhyDidYouUpdate/
|
|
12
|
+
*/
|
|
13
|
+
export default function useWhyDidYouUpdate(name, props) {
|
|
14
|
+
// Get a mutable ref object where we can store props ...
|
|
15
|
+
// ... for comparison next time this hook runs.
|
|
16
|
+
const previousProps = useRef(null);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (previousProps.current) {
|
|
19
|
+
// Get all keys from previous and current props
|
|
20
|
+
const allKeys = Object.keys({ ...previousProps.current, ...props });
|
|
21
|
+
// Use this object to keep track of changed props
|
|
22
|
+
const changesObj = {};
|
|
23
|
+
// Iterate through keys
|
|
24
|
+
allKeys.forEach(key => {
|
|
25
|
+
// If previous is different from current
|
|
26
|
+
if (previousProps.current[key] !== props[key]) {
|
|
27
|
+
// Add to changesObj
|
|
28
|
+
changesObj[key] = {
|
|
29
|
+
from: previousProps.current[key],
|
|
30
|
+
to: props[key],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
// If changesObj not empty then output to console
|
|
35
|
+
if (Object.keys(changesObj).length) {
|
|
36
|
+
console.log('[why-did-you-update]', name, changesObj);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Finally update previousProps with current props for next hook call
|
|
40
|
+
previousProps.current = props;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ResourceProps } from '@strato-admin/ra-core';
|
|
2
|
+
/**
|
|
3
|
+
* Strato version of Resource that implements the new routing scheme:
|
|
4
|
+
* - Edit: /:id/edit
|
|
5
|
+
* - Detail (Show): /:id (no suffix)
|
|
6
|
+
*
|
|
7
|
+
* This allows for nested resources to be defined under /:id/:subresource
|
|
8
|
+
* without conflicting with the standard 'show' action.
|
|
9
|
+
*/
|
|
10
|
+
export declare const Resource: {
|
|
11
|
+
(props: ResourceProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
raName: string;
|
|
13
|
+
registerResource: any;
|
|
14
|
+
};
|