@strato-admin/faker-ecommerce 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dataProvider.js +1 -2
- package/dist/generate.d.ts +2 -1
- package/dist/generate.js +15 -8
- package/dist/ra-core/src/auth/LogoutOnMount.d.ts +8 -0
- package/dist/ra-core/src/auth/LogoutOnMount.js +16 -0
- package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.d.ts +22 -0
- package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.js +41 -0
- package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.d.ts +21 -0
- package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.js +30 -0
- package/dist/ra-core/src/auth/convertLegacyAuthProvider.d.ts +12 -0
- package/dist/ra-core/src/auth/convertLegacyAuthProvider.js +19 -0
- package/dist/ra-core/src/auth/index.d.ts +27 -0
- package/dist/ra-core/src/auth/index.js +34 -0
- package/dist/ra-core/src/auth/types.d.ts +7 -0
- package/dist/ra-core/src/auth/types.js +5 -0
- package/dist/ra-core/src/auth/useAuthProvider.d.ts +10 -0
- package/dist/ra-core/src/auth/useAuthProvider.js +11 -0
- package/dist/ra-core/src/auth/useAuthState.d.ts +48 -0
- package/dist/ra-core/src/auth/useAuthState.js +171 -0
- package/dist/ra-core/src/auth/useAuthenticated.d.ts +36 -0
- package/dist/ra-core/src/auth/useAuthenticated.js +34 -0
- package/dist/ra-core/src/auth/useCanAccess.d.ts +56 -0
- package/dist/ra-core/src/auth/useCanAccess.js +108 -0
- package/dist/ra-core/src/auth/useCanAccessCallback.d.ts +39 -0
- package/dist/ra-core/src/auth/useCanAccessCallback.js +45 -0
- package/dist/ra-core/src/auth/useCanAccessResources.d.ts +67 -0
- package/dist/ra-core/src/auth/useCanAccessResources.js +92 -0
- package/dist/ra-core/src/auth/useCheckAuth.d.ts +48 -0
- package/dist/ra-core/src/auth/useCheckAuth.js +76 -0
- package/dist/ra-core/src/auth/useGetIdentity.d.ts +41 -0
- package/dist/ra-core/src/auth/useGetIdentity.js +86 -0
- package/dist/ra-core/src/auth/useGetPermissions.d.ts +41 -0
- package/dist/ra-core/src/auth/useGetPermissions.js +47 -0
- package/dist/ra-core/src/auth/useHandleAuthCallback.d.ts +20 -0
- package/dist/ra-core/src/auth/useHandleAuthCallback.js +83 -0
- package/dist/ra-core/src/auth/useIsAuthPending.d.ts +13 -0
- package/dist/ra-core/src/auth/useIsAuthPending.js +30 -0
- package/dist/ra-core/src/auth/useLogin.d.ts +34 -0
- package/dist/ra-core/src/auth/useLogin.js +78 -0
- package/dist/ra-core/src/auth/useLogout.d.ts +31 -0
- package/dist/ra-core/src/auth/useLogout.js +117 -0
- package/dist/ra-core/src/auth/useLogoutIfAccessDenied.d.ts +42 -0
- package/dist/ra-core/src/auth/useLogoutIfAccessDenied.js +111 -0
- package/dist/ra-core/src/auth/usePermissions.d.ts +41 -0
- package/dist/ra-core/src/auth/usePermissions.js +123 -0
- package/dist/ra-core/src/controller/button/index.d.ts +7 -0
- package/dist/ra-core/src/controller/button/index.js +7 -0
- package/dist/ra-core/src/controller/button/useBulkDeleteController.d.ts +14 -0
- package/dist/ra-core/src/controller/button/useBulkDeleteController.js +66 -0
- package/dist/ra-core/src/controller/create/index.d.ts +6 -0
- package/dist/ra-core/src/controller/create/index.js +6 -0
- package/dist/ra-core/src/controller/create/useCreateController.d.ts +50 -0
- package/dist/ra-core/src/controller/create/useCreateController.js +149 -0
- package/dist/ra-core/src/controller/edit/index.d.ts +6 -0
- package/dist/ra-core/src/controller/edit/index.js +6 -0
- package/dist/ra-core/src/controller/edit/useEditController.d.ts +72 -0
- package/dist/ra-core/src/controller/edit/useEditController.js +206 -0
- package/dist/ra-core/src/controller/field/index.d.ts +12 -0
- package/dist/ra-core/src/controller/field/index.js +12 -0
- package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.d.ts +1 -0
- package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.js +1 -0
- package/dist/ra-core/src/controller/field/types.d.ts +28 -0
- package/dist/ra-core/src/controller/field/types.js +1 -0
- package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.d.ts +39 -0
- package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.js +82 -0
- package/dist/ra-core/src/controller/field/useReferenceFieldController.d.ts +14 -0
- package/dist/ra-core/src/controller/field/useReferenceFieldController.js +31 -0
- package/dist/ra-core/src/controller/field/useReferenceManyFieldController.d.ts +49 -0
- package/dist/ra-core/src/controller/field/useReferenceManyFieldController.js +264 -0
- package/dist/ra-core/src/controller/index.d.ts +17 -0
- package/dist/ra-core/src/controller/index.js +16 -0
- package/dist/ra-core/src/controller/input/ArrayInputContext.d.ts +9 -0
- package/dist/ra-core/src/controller/input/ArrayInputContext.js +8 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.d.ts +15 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.js +8 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.d.ts +13 -0
- package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.js +8 -0
- package/dist/ra-core/src/controller/input/index.d.ts +17 -0
- package/dist/ra-core/src/controller/input/index.js +17 -0
- package/dist/ra-core/src/controller/input/referenceDataStatus.d.ts +32 -0
- package/dist/ra-core/src/controller/input/referenceDataStatus.js +74 -0
- package/dist/ra-core/src/controller/input/sanitizeInputRestProps.d.ts +1 -0
- package/dist/ra-core/src/controller/input/sanitizeInputRestProps.js +1 -0
- package/dist/ra-core/src/controller/input/types.d.ts +3 -0
- package/dist/ra-core/src/controller/input/types.js +1 -0
- package/dist/ra-core/src/controller/input/useArrayInput.d.ts +8 -0
- package/dist/ra-core/src/controller/input/useArrayInput.js +29 -0
- package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.d.ts +3 -0
- package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.js +37 -0
- package/dist/ra-core/src/controller/input/useReferenceArrayInputController.d.ts +48 -0
- package/dist/ra-core/src/controller/input/useReferenceArrayInputController.js +137 -0
- package/dist/ra-core/src/controller/input/useReferenceInputController.d.ts +54 -0
- package/dist/ra-core/src/controller/input/useReferenceInputController.js +208 -0
- package/dist/ra-core/src/controller/input/useReferenceParams.d.ts +106 -0
- package/dist/ra-core/src/controller/input/useReferenceParams.js +226 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIterator.d.ts +7 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIterator.js +15 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.d.ts +7 -0
- package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.js +15 -0
- package/dist/ra-core/src/controller/list/InfinitePaginationContext.d.ts +25 -0
- package/dist/ra-core/src/controller/list/InfinitePaginationContext.js +32 -0
- package/dist/ra-core/src/controller/list/index.d.ts +30 -0
- package/dist/ra-core/src/controller/list/index.js +30 -0
- package/dist/ra-core/src/controller/list/queryReducer.d.ts +45 -0
- package/dist/ra-core/src/controller/list/queryReducer.js +85 -0
- package/dist/ra-core/src/controller/list/useFilterContext.d.ts +2 -0
- package/dist/ra-core/src/controller/list/useFilterContext.js +5 -0
- package/dist/ra-core/src/controller/list/useInfiniteListController.d.ts +44 -0
- package/dist/ra-core/src/controller/list/useInfiniteListController.js +175 -0
- package/dist/ra-core/src/controller/list/useInfinitePaginationContext.d.ts +16 -0
- package/dist/ra-core/src/controller/list/useInfinitePaginationContext.js +17 -0
- package/dist/ra-core/src/controller/list/useList.d.ts +55 -0
- package/dist/ra-core/src/controller/list/useList.js +223 -0
- package/dist/ra-core/src/controller/list/useListContext.d.ts +59 -0
- package/dist/ra-core/src/controller/list/useListContext.js +65 -0
- package/dist/ra-core/src/controller/list/useListContextWithProps.d.ts +44 -0
- package/dist/ra-core/src/controller/list/useListContextWithProps.js +84 -0
- package/dist/ra-core/src/controller/list/useListController.d.ts +296 -0
- package/dist/ra-core/src/controller/list/useListController.js +234 -0
- package/dist/ra-core/src/controller/list/useListFilterContext.d.ts +11 -0
- package/dist/ra-core/src/controller/list/useListFilterContext.js +18 -0
- package/dist/ra-core/src/controller/list/useListPaginationContext.d.ts +12 -0
- package/dist/ra-core/src/controller/list/useListPaginationContext.js +19 -0
- package/dist/ra-core/src/controller/list/useListParams.d.ts +116 -0
- package/dist/ra-core/src/controller/list/useListParams.js +281 -0
- package/dist/ra-core/src/controller/list/useListSortContext.d.ts +12 -0
- package/dist/ra-core/src/controller/list/useListSortContext.js +19 -0
- package/dist/ra-core/src/controller/list/useRecordSelection.d.ts +32 -0
- package/dist/ra-core/src/controller/list/useRecordSelection.js +93 -0
- package/dist/ra-core/src/controller/list/useSavedQueries.d.ts +14 -0
- package/dist/ra-core/src/controller/list/useSavedQueries.js +29 -0
- package/dist/ra-core/src/controller/list/useUnselect.d.ts +10 -0
- package/dist/ra-core/src/controller/list/useUnselect.js +18 -0
- package/dist/ra-core/src/controller/list/useUnselectAll.d.ts +9 -0
- package/dist/ra-core/src/controller/list/useUnselectAll.js +18 -0
- package/dist/ra-core/src/controller/record/index.d.ts +5 -0
- package/dist/ra-core/src/controller/record/index.js +5 -0
- package/dist/ra-core/src/controller/record/useRecordContext.d.ts +34 -0
- package/dist/ra-core/src/controller/record/useRecordContext.js +36 -0
- package/dist/ra-core/src/controller/saveContext/SaveContext.d.ts +20 -0
- package/dist/ra-core/src/controller/saveContext/SaveContext.js +2 -0
- package/dist/ra-core/src/controller/saveContext/index.d.ts +6 -0
- package/dist/ra-core/src/controller/saveContext/index.js +6 -0
- package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.d.ts +39 -0
- package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.js +79 -0
- package/dist/ra-core/src/controller/saveContext/usePickSaveContext.d.ts +5 -0
- package/dist/ra-core/src/controller/saveContext/usePickSaveContext.js +25 -0
- package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.d.ts +6 -0
- package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.js +18 -0
- package/dist/ra-core/src/controller/saveContext/useSaveContext.d.ts +14 -0
- package/dist/ra-core/src/controller/saveContext/useSaveContext.js +17 -0
- package/dist/ra-core/src/controller/show/index.d.ts +6 -0
- package/dist/ra-core/src/controller/show/index.js +6 -0
- package/dist/ra-core/src/controller/show/useShowController.d.ts +75 -0
- package/dist/ra-core/src/controller/show/useShowController.js +110 -0
- package/dist/ra-core/src/controller/useFilterState.d.ts +46 -0
- package/dist/ra-core/src/controller/useFilterState.js +70 -0
- package/dist/ra-core/src/controller/usePaginationState.d.ts +33 -0
- package/dist/ra-core/src/controller/usePaginationState.js +45 -0
- package/dist/ra-core/src/controller/usePrevNextController.d.ts +127 -0
- package/dist/ra-core/src/controller/usePrevNextController.js +215 -0
- package/dist/ra-core/src/controller/useReference.d.ts +49 -0
- package/dist/ra-core/src/controller/useReference.js +42 -0
- package/dist/ra-core/src/controller/useSortState.d.ts +61 -0
- package/dist/ra-core/src/controller/useSortState.js +96 -0
- package/dist/ra-core/src/core/DefaultTitleContext.d.ts +15 -0
- package/dist/ra-core/src/core/DefaultTitleContext.js +15 -0
- package/dist/ra-core/src/core/HasDashboardContext.d.ts +21 -0
- package/dist/ra-core/src/core/HasDashboardContext.js +22 -0
- package/dist/ra-core/src/core/ResourceContext.d.ts +19 -0
- package/dist/ra-core/src/core/ResourceContext.js +19 -0
- package/dist/ra-core/src/core/UserMenuContext.d.ts +34 -0
- package/dist/ra-core/src/core/UserMenuContext.js +28 -0
- package/dist/ra-core/src/core/index.d.ts +27 -0
- package/dist/ra-core/src/core/index.js +27 -0
- package/dist/ra-core/src/core/useGetRecordRepresentation.d.ts +13 -0
- package/dist/ra-core/src/core/useGetRecordRepresentation.js +44 -0
- package/dist/ra-core/src/core/useGetResourceLabel.d.ts +22 -0
- package/dist/ra-core/src/core/useGetResourceLabel.js +42 -0
- package/dist/ra-core/src/core/useIsOffline.d.ts +7 -0
- package/dist/ra-core/src/core/useIsOffline.js +18 -0
- package/dist/ra-core/src/core/useResourceContext.d.ts +36 -0
- package/dist/ra-core/src/core/useResourceContext.js +38 -0
- package/dist/ra-core/src/core/useResourceDefinition.d.ts +31 -0
- package/dist/ra-core/src/core/useResourceDefinition.js +48 -0
- package/dist/ra-core/src/core/useResourceDefinitionContext.d.ts +1 -0
- package/dist/ra-core/src/core/useResourceDefinitionContext.js +3 -0
- package/dist/ra-core/src/core/useResourceDefinitions.d.ts +21 -0
- package/dist/ra-core/src/core/useResourceDefinitions.js +20 -0
- package/dist/ra-core/src/core/useUserMenu.d.ts +28 -0
- package/dist/ra-core/src/core/useUserMenu.js +30 -0
- package/dist/ra-core/src/core/useWrappedSource.d.ts +11 -0
- package/dist/ra-core/src/core/useWrappedSource.js +15 -0
- package/dist/ra-core/src/dataProvider/DataProviderContext.d.ts +3 -0
- package/dist/ra-core/src/dataProvider/DataProviderContext.js +4 -0
- package/dist/ra-core/src/dataProvider/HttpError.d.ts +6 -0
- package/dist/ra-core/src/dataProvider/HttpError.js +19 -0
- package/dist/ra-core/src/dataProvider/combineDataProviders.d.ts +21 -0
- package/dist/ra-core/src/dataProvider/combineDataProviders.js +32 -0
- package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.d.ts +12 -0
- package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.js +40 -0
- package/dist/ra-core/src/dataProvider/dataFetchActions.d.ts +15 -0
- package/dist/ra-core/src/dataProvider/dataFetchActions.js +49 -0
- package/dist/ra-core/src/dataProvider/defaultDataProvider.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/defaultDataProvider.js +12 -0
- package/dist/ra-core/src/dataProvider/fetch.d.ts +32 -0
- package/dist/ra-core/src/dataProvider/fetch.js +78 -0
- package/dist/ra-core/src/dataProvider/index.d.ts +34 -0
- package/dist/ra-core/src/dataProvider/index.js +33 -0
- package/dist/ra-core/src/dataProvider/populateQueryCache.d.ts +22 -0
- package/dist/ra-core/src/dataProvider/populateQueryCache.js +30 -0
- package/dist/ra-core/src/dataProvider/testDataProvider.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/testDataProvider.js +41 -0
- package/dist/ra-core/src/dataProvider/undo/index.d.ts +6 -0
- package/dist/ra-core/src/dataProvider/undo/index.js +6 -0
- package/dist/ra-core/src/dataProvider/undo/types.d.ts +3 -0
- package/dist/ra-core/src/dataProvider/undo/types.js +1 -0
- package/dist/ra-core/src/dataProvider/undoableEventEmitter.d.ts +3 -0
- package/dist/ra-core/src/dataProvider/undoableEventEmitter.js +2 -0
- package/dist/ra-core/src/dataProvider/useCreate.d.ts +89 -0
- package/dist/ra-core/src/dataProvider/useCreate.js +155 -0
- package/dist/ra-core/src/dataProvider/useDataProvider.d.ts +2 -0
- package/dist/ra-core/src/dataProvider/useDataProvider.js +140 -0
- package/dist/ra-core/src/dataProvider/useDelete.d.ts +83 -0
- package/dist/ra-core/src/dataProvider/useDelete.js +171 -0
- package/dist/ra-core/src/dataProvider/useDeleteMany.d.ts +81 -0
- package/dist/ra-core/src/dataProvider/useDeleteMany.js +193 -0
- package/dist/ra-core/src/dataProvider/useGetList.d.ts +58 -0
- package/dist/ra-core/src/dataProvider/useGetList.js +131 -0
- package/dist/ra-core/src/dataProvider/useGetMany.d.ts +49 -0
- package/dist/ra-core/src/dataProvider/useGetMany.js +143 -0
- package/dist/ra-core/src/dataProvider/useGetManyAggregate.d.ts +62 -0
- package/dist/ra-core/src/dataProvider/useGetManyAggregate.js +295 -0
- package/dist/ra-core/src/dataProvider/useGetManyReference.d.ts +62 -0
- package/dist/ra-core/src/dataProvider/useGetManyReference.js +117 -0
- package/dist/ra-core/src/dataProvider/useGetOne.d.ts +48 -0
- package/dist/ra-core/src/dataProvider/useGetOne.js +94 -0
- package/dist/ra-core/src/dataProvider/useGetRecordId.d.ts +14 -0
- package/dist/ra-core/src/dataProvider/useGetRecordId.js +22 -0
- package/dist/ra-core/src/dataProvider/useInfiniteGetList.d.ts +64 -0
- package/dist/ra-core/src/dataProvider/useInfiniteGetList.js +177 -0
- package/dist/ra-core/src/dataProvider/useIsDataLoaded.d.ts +13 -0
- package/dist/ra-core/src/dataProvider/useIsDataLoaded.js +35 -0
- package/dist/ra-core/src/dataProvider/useLoading.d.ts +12 -0
- package/dist/ra-core/src/dataProvider/useLoading.js +41 -0
- package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.d.ts +51 -0
- package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.js +238 -0
- package/dist/ra-core/src/dataProvider/useRefresh.d.ts +14 -0
- package/dist/ra-core/src/dataProvider/useRefresh.js +21 -0
- package/dist/ra-core/src/dataProvider/useUpdate.d.ts +89 -0
- package/dist/ra-core/src/dataProvider/useUpdate.js +183 -0
- package/dist/ra-core/src/dataProvider/useUpdateMany.d.ts +81 -0
- package/dist/ra-core/src/dataProvider/useUpdateMany.js +171 -0
- package/dist/ra-core/src/dataProvider/validateResponseFormat.d.ts +5 -0
- package/dist/ra-core/src/dataProvider/validateResponseFormat.js +35 -0
- package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.d.ts +162 -0
- package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.js +377 -0
- package/dist/ra-core/src/dataTable/DataTableCallbacksContext.d.ts +18 -0
- package/dist/ra-core/src/dataTable/DataTableCallbacksContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.d.ts +2 -0
- package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableColumnRankContext.d.ts +2 -0
- package/dist/ra-core/src/dataTable/DataTableColumnRankContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableConfigContext.d.ts +22 -0
- package/dist/ra-core/src/dataTable/DataTableConfigContext.js +7 -0
- package/dist/ra-core/src/dataTable/DataTableDataContext.d.ts +4 -0
- package/dist/ra-core/src/dataTable/DataTableDataContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableRenderContext.d.ts +3 -0
- package/dist/ra-core/src/dataTable/DataTableRenderContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.d.ts +3 -0
- package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableSortContext.d.ts +3 -0
- package/dist/ra-core/src/dataTable/DataTableSortContext.js +3 -0
- package/dist/ra-core/src/dataTable/DataTableStoreContext.d.ts +8 -0
- package/dist/ra-core/src/dataTable/DataTableStoreContext.js +6 -0
- package/dist/ra-core/src/dataTable/index.d.ts +11 -0
- package/dist/ra-core/src/dataTable/index.js +11 -0
- package/dist/ra-core/src/dataTable/types.d.ts +2 -0
- package/dist/ra-core/src/dataTable/types.js +1 -0
- package/dist/ra-core/src/export/ExporterContext.d.ts +2 -0
- package/dist/ra-core/src/export/ExporterContext.js +4 -0
- package/dist/ra-core/src/export/defaultExporter.d.ts +2 -0
- package/dist/ra-core/src/export/defaultExporter.js +3 -0
- package/dist/ra-core/src/export/downloadCSV.d.ts +1 -0
- package/dist/ra-core/src/export/downloadCSV.js +17 -0
- package/dist/ra-core/src/export/fetchRelatedRecords.d.ts +14 -0
- package/dist/ra-core/src/export/fetchRelatedRecords.js +19 -0
- package/dist/ra-core/src/export/getRelatedIds.d.ts +24 -0
- package/dist/ra-core/src/export/getRelatedIds.js +26 -0
- package/dist/ra-core/src/export/index.d.ts +5 -0
- package/dist/ra-core/src/export/index.js +5 -0
- package/dist/ra-core/src/export/useBulkExport.d.ts +11 -0
- package/dist/ra-core/src/export/useBulkExport.js +30 -0
- package/dist/ra-core/src/form/WarnWhenUnsavedChanges.d.ts +5 -0
- package/dist/ra-core/src/form/WarnWhenUnsavedChanges.js +5 -0
- package/dist/ra-core/src/form/choices/ChoicesContext.d.ts +65 -0
- package/dist/ra-core/src/form/choices/ChoicesContext.js +7 -0
- package/dist/ra-core/src/form/choices/index.d.ts +4 -0
- package/dist/ra-core/src/form/choices/index.js +4 -0
- package/dist/ra-core/src/form/choices/useChoicesContext.d.ts +5 -0
- package/dist/ra-core/src/form/choices/useChoicesContext.js +62 -0
- package/dist/ra-core/src/form/getFormInitialValues.d.ts +8 -0
- package/dist/ra-core/src/form/getFormInitialValues.js +14 -0
- package/dist/ra-core/src/form/groups/FormGroupContext.d.ts +9 -0
- package/dist/ra-core/src/form/groups/FormGroupContext.js +9 -0
- package/dist/ra-core/src/form/groups/index.d.ts +6 -0
- package/dist/ra-core/src/form/groups/index.js +6 -0
- package/dist/ra-core/src/form/groups/useFormGroup.d.ts +67 -0
- package/dist/ra-core/src/form/groups/useFormGroup.js +146 -0
- package/dist/ra-core/src/form/groups/useFormGroupContext.d.ts +4 -0
- package/dist/ra-core/src/form/groups/useFormGroupContext.js +9 -0
- package/dist/ra-core/src/form/groups/useFormGroups.d.ts +4 -0
- package/dist/ra-core/src/form/groups/useFormGroups.js +9 -0
- package/dist/ra-core/src/form/index.d.ts +14 -0
- package/dist/ra-core/src/form/index.js +14 -0
- package/dist/ra-core/src/form/sanitizeEmptyValues.d.ts +7 -0
- package/dist/ra-core/src/form/sanitizeEmptyValues.js +26 -0
- package/dist/ra-core/src/form/useApplyInputDefaultValues.d.ts +19 -0
- package/dist/ra-core/src/form/useApplyInputDefaultValues.js +71 -0
- package/dist/ra-core/src/form/useAugmentedForm.d.ts +32 -0
- package/dist/ra-core/src/form/useAugmentedForm.js +101 -0
- package/dist/ra-core/src/form/useFormIsDirty.d.ts +4 -0
- package/dist/ra-core/src/form/useFormIsDirty.js +39 -0
- package/dist/ra-core/src/form/useInput.d.ts +33 -0
- package/dist/ra-core/src/form/useInput.js +100 -0
- package/dist/ra-core/src/form/useRecordFromLocation.d.ts +22 -0
- package/dist/ra-core/src/form/useRecordFromLocation.js +59 -0
- package/dist/ra-core/src/form/useSuggestions.d.ts +43 -0
- package/dist/ra-core/src/form/useSuggestions.js +186 -0
- package/dist/ra-core/src/form/validation/getSimpleValidationResolver.d.ts +31 -0
- package/dist/ra-core/src/form/validation/getSimpleValidationResolver.js +87 -0
- package/dist/ra-core/src/form/validation/index.d.ts +7 -0
- package/dist/ra-core/src/form/validation/index.js +7 -0
- package/dist/ra-core/src/form/validation/setSubmissionErrors.d.ts +21 -0
- package/dist/ra-core/src/form/validation/setSubmissionErrors.js +34 -0
- package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.d.ts +26 -0
- package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.js +35 -0
- package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.d.ts +9 -0
- package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.js +30 -0
- package/dist/ra-core/src/form/validation/useUnique.d.ts +57 -0
- package/dist/ra-core/src/form/validation/useUnique.js +107 -0
- package/dist/ra-core/src/form/validation/validate.d.ts +168 -0
- package/dist/ra-core/src/form/validation/validate.js +218 -0
- package/dist/ra-core/src/i18n/I18nContext.d.ts +3 -0
- package/dist/ra-core/src/i18n/I18nContext.js +11 -0
- package/dist/ra-core/src/i18n/TranslatableContext.d.ts +16 -0
- package/dist/ra-core/src/i18n/TranslatableContext.js +2 -0
- package/dist/ra-core/src/i18n/TranslationMessages.d.ts +221 -0
- package/dist/ra-core/src/i18n/TranslationMessages.js +1 -0
- package/dist/ra-core/src/i18n/TranslationUtils.d.ts +60 -0
- package/dist/ra-core/src/i18n/TranslationUtils.js +70 -0
- package/dist/ra-core/src/i18n/index.d.ts +20 -0
- package/dist/ra-core/src/i18n/index.js +20 -0
- package/dist/ra-core/src/i18n/substituteTokens.d.ts +8 -0
- package/dist/ra-core/src/i18n/substituteTokens.js +18 -0
- package/dist/ra-core/src/i18n/useI18nProvider.d.ts +12 -0
- package/dist/ra-core/src/i18n/useI18nProvider.js +14 -0
- package/dist/ra-core/src/i18n/useLocales.d.ts +31 -0
- package/dist/ra-core/src/i18n/useLocales.js +28 -0
- package/dist/ra-core/src/i18n/useResourceTranslation.d.ts +8 -0
- package/dist/ra-core/src/i18n/useResourceTranslation.js +18 -0
- package/dist/ra-core/src/i18n/useTranslatable.d.ts +29 -0
- package/dist/ra-core/src/i18n/useTranslatable.js +98 -0
- package/dist/ra-core/src/i18n/useTranslatableContext.d.ts +31 -0
- package/dist/ra-core/src/i18n/useTranslatableContext.js +38 -0
- package/dist/ra-core/src/i18n/useTranslate.d.ts +21 -0
- package/dist/ra-core/src/i18n/useTranslate.js +29 -0
- package/dist/ra-core/src/i18n/useTranslateLabel.d.ts +6 -0
- package/dist/ra-core/src/i18n/useTranslateLabel.js +26 -0
- package/dist/ra-core/src/index.d.ts +16 -0
- package/dist/ra-core/src/index.js +16 -0
- package/dist/ra-core/src/inference/InferredElement.d.ts +12 -0
- package/dist/ra-core/src/inference/InferredElement.js +40 -0
- package/dist/ra-core/src/inference/assertions.d.ts +26 -0
- package/dist/ra-core/src/inference/assertions.js +38 -0
- package/dist/ra-core/src/inference/getElementsFromRecords.d.ts +35 -0
- package/dist/ra-core/src/inference/getElementsFromRecords.js +39 -0
- package/dist/ra-core/src/inference/getValuesFromRecords.d.ts +28 -0
- package/dist/ra-core/src/inference/getValuesFromRecords.js +40 -0
- package/dist/ra-core/src/inference/index.d.ts +6 -0
- package/dist/ra-core/src/inference/index.js +6 -0
- package/dist/ra-core/src/inference/inferTypeFromValues.d.ts +21 -0
- package/dist/ra-core/src/inference/inferTypeFromValues.js +141 -0
- package/dist/ra-core/src/inference/types.d.ts +9 -0
- package/dist/ra-core/src/inference/types.js +1 -0
- package/dist/ra-core/src/notification/CloseNotificationContext.d.ts +2 -0
- package/dist/ra-core/src/notification/CloseNotificationContext.js +2 -0
- package/dist/ra-core/src/notification/NotificationContext.d.ts +37 -0
- package/dist/ra-core/src/notification/NotificationContext.js +35 -0
- package/dist/ra-core/src/notification/index.d.ts +9 -0
- package/dist/ra-core/src/notification/index.js +9 -0
- package/dist/ra-core/src/notification/types.d.ts +14 -0
- package/dist/ra-core/src/notification/types.js +1 -0
- package/dist/ra-core/src/notification/useCloseNotification.d.ts +1 -0
- package/dist/ra-core/src/notification/useCloseNotification.js +9 -0
- package/dist/ra-core/src/notification/useNotificationContext.d.ts +1 -0
- package/dist/ra-core/src/notification/useNotificationContext.js +3 -0
- package/dist/ra-core/src/notification/useNotify.d.ts +20 -0
- package/dist/ra-core/src/notification/useNotify.js +28 -0
- package/dist/ra-core/src/preferences/index.d.ts +7 -0
- package/dist/ra-core/src/preferences/index.js +7 -0
- package/dist/ra-core/src/preferences/usePreference.d.ts +18 -0
- package/dist/ra-core/src/preferences/usePreference.js +10 -0
- package/dist/ra-core/src/preferences/usePreferenceInput.d.ts +22 -0
- package/dist/ra-core/src/preferences/usePreferenceInput.js +43 -0
- package/dist/ra-core/src/preferences/usePreferencesEditor.d.ts +2 -0
- package/dist/ra-core/src/preferences/usePreferencesEditor.js +9 -0
- package/dist/ra-core/src/preferences/useSetInspectorTitle.d.ts +7 -0
- package/dist/ra-core/src/preferences/useSetInspectorTitle.js +19 -0
- package/dist/ra-core/src/routing/BasenameContext.d.ts +1 -0
- package/dist/ra-core/src/routing/BasenameContext.js +2 -0
- package/dist/ra-core/src/routing/RouterProvider.d.ts +163 -0
- package/dist/ra-core/src/routing/RouterProvider.js +1 -0
- package/dist/ra-core/src/routing/index.d.ts +28 -0
- package/dist/ra-core/src/routing/index.js +28 -0
- package/dist/ra-core/src/routing/types.d.ts +3 -0
- package/dist/ra-core/src/routing/types.js +1 -0
- package/dist/ra-core/src/routing/useBasename.d.ts +21 -0
- package/dist/ra-core/src/routing/useBasename.js +23 -0
- package/dist/ra-core/src/routing/useBlocker.d.ts +14 -0
- package/dist/ra-core/src/routing/useBlocker.js +17 -0
- package/dist/ra-core/src/routing/useCanBlock.d.ts +7 -0
- package/dist/ra-core/src/routing/useCanBlock.js +11 -0
- package/dist/ra-core/src/routing/useCreatePath.d.ts +42 -0
- package/dist/ra-core/src/routing/useCreatePath.js +69 -0
- package/dist/ra-core/src/routing/useGetPathForRecord.d.ts +42 -0
- package/dist/ra-core/src/routing/useGetPathForRecord.js +135 -0
- package/dist/ra-core/src/routing/useGetPathForRecordCallback.d.ts +6 -0
- package/dist/ra-core/src/routing/useGetPathForRecordCallback.js +82 -0
- package/dist/ra-core/src/routing/useInRouterContext.d.ts +11 -0
- package/dist/ra-core/src/routing/useInRouterContext.js +15 -0
- package/dist/ra-core/src/routing/useLocation.d.ts +10 -0
- package/dist/ra-core/src/routing/useLocation.js +13 -0
- package/dist/ra-core/src/routing/useMatch.d.ts +15 -0
- package/dist/ra-core/src/routing/useMatch.js +15 -0
- package/dist/ra-core/src/routing/useMatchPath.d.ts +17 -0
- package/dist/ra-core/src/routing/useMatchPath.js +17 -0
- package/dist/ra-core/src/routing/useNavigate.d.ts +12 -0
- package/dist/ra-core/src/routing/useNavigate.js +15 -0
- package/dist/ra-core/src/routing/useParams.d.ts +9 -0
- package/dist/ra-core/src/routing/useParams.js +13 -0
- package/dist/ra-core/src/routing/useRedirect.d.ts +30 -0
- package/dist/ra-core/src/routing/useRedirect.js +66 -0
- package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.d.ts +7 -0
- package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.js +17 -0
- package/dist/ra-core/src/routing/useRestoreScrollPosition.d.ts +40 -0
- package/dist/ra-core/src/routing/useRestoreScrollPosition.js +70 -0
- package/dist/ra-core/src/routing/useSplatPathBase.d.ts +13 -0
- package/dist/ra-core/src/routing/useSplatPathBase.js +21 -0
- package/dist/ra-core/src/store/index.d.ts +11 -0
- package/dist/ra-core/src/store/index.js +11 -0
- package/dist/ra-core/src/store/localStorageStore.d.ts +27 -0
- package/dist/ra-core/src/store/localStorageStore.js +198 -0
- package/dist/ra-core/src/store/types.d.ts +11 -0
- package/dist/ra-core/src/store/types.js +1 -0
- package/dist/ra-core/src/store/useRemoveFromStore.d.ts +17 -0
- package/dist/ra-core/src/store/useRemoveFromStore.js +29 -0
- package/dist/ra-core/src/store/useRemoveItemsFromStore.d.ts +17 -0
- package/dist/ra-core/src/store/useRemoveItemsFromStore.js +29 -0
- package/dist/ra-core/src/store/useResetStore.d.ts +17 -0
- package/dist/ra-core/src/store/useResetStore.js +21 -0
- package/dist/ra-core/src/store/useStore.d.ts +48 -0
- package/dist/ra-core/src/store/useStore.js +32 -0
- package/dist/ra-core/src/store/useStoreContext.d.ts +4 -0
- package/dist/ra-core/src/store/useStoreContext.js +6 -0
- package/dist/ra-core/src/test-ui/defaultI18nProvider.d.ts +2 -0
- package/dist/ra-core/src/test-ui/defaultI18nProvider.js +10 -0
- package/dist/ra-core/src/test-ui/index.d.ts +21 -0
- package/dist/ra-core/src/test-ui/index.js +21 -0
- package/dist/ra-core/src/types.d.ts +284 -0
- package/dist/ra-core/src/types.js +5 -0
- package/dist/ra-core/src/util/asyncDebounce.d.ts +7 -0
- package/dist/ra-core/src/util/asyncDebounce.js +29 -0
- package/dist/ra-core/src/util/escapePath.d.ts +11 -0
- package/dist/ra-core/src/util/escapePath.js +10 -0
- package/dist/ra-core/src/util/genericMemo.d.ts +5 -0
- package/dist/ra-core/src/util/genericMemo.js +14 -0
- package/dist/ra-core/src/util/getFieldLabelTranslationArgs.d.ts +22 -0
- package/dist/ra-core/src/util/getFieldLabelTranslationArgs.js +73 -0
- package/dist/ra-core/src/util/getMutationMode.d.ts +1 -0
- package/dist/ra-core/src/util/getMutationMode.js +13 -0
- package/dist/ra-core/src/util/hooks.d.ts +15 -0
- package/dist/ra-core/src/util/hooks.js +73 -0
- package/dist/ra-core/src/util/index.d.ts +20 -0
- package/dist/ra-core/src/util/index.js +19 -0
- package/dist/ra-core/src/util/mergeRefs.d.ts +2 -0
- package/dist/ra-core/src/util/mergeRefs.js +13 -0
- package/dist/ra-core/src/util/removeEmpty.d.ts +2 -0
- package/dist/ra-core/src/util/removeEmpty.js +16 -0
- package/dist/ra-core/src/util/removeKey.d.ts +2 -0
- package/dist/ra-core/src/util/removeKey.js +22 -0
- package/dist/ra-core/src/util/shallowEqual.d.ts +1 -0
- package/dist/ra-core/src/util/shallowEqual.js +29 -0
- package/dist/ra-core/src/util/useCheckForApplicationUpdate.d.ts +21 -0
- package/dist/ra-core/src/util/useCheckForApplicationUpdate.js +84 -0
- package/dist/ra-core/src/util/useDebouncedEvent.d.ts +8 -0
- package/dist/ra-core/src/util/useDebouncedEvent.js +28 -0
- package/dist/ra-core/src/util/useEvent.d.ts +7 -0
- package/dist/ra-core/src/util/useEvent.js +19 -0
- package/dist/ra-core/src/util/useFieldValue.d.ts +21 -0
- package/dist/ra-core/src/util/useFieldValue.js +27 -0
- package/dist/ra-core/src/util/useWhyDidYouUpdate.d.ts +12 -0
- package/dist/ra-core/src/util/useWhyDidYouUpdate.js +42 -0
- package/dist/ra-core/src/util/warning.d.ts +2 -0
- package/dist/ra-core/src/util/warning.js +5 -0
- package/dist/strato-faker-ecommerce/src/dataProvider.d.ts +2 -0
- package/dist/strato-faker-ecommerce/src/dataProvider.js +6 -0
- package/dist/strato-faker-ecommerce/src/generate.d.ts +8 -0
- package/dist/strato-faker-ecommerce/src/generate.js +148 -0
- package/dist/strato-faker-ecommerce/src/index.d.ts +3 -0
- package/dist/strato-faker-ecommerce/src/index.js +3 -0
- package/dist/strato-faker-ecommerce/src/types.d.ts +69 -0
- package/dist/strato-faker-ecommerce/src/types.js +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +6 -5
- package/src/dataProvider.ts +3 -3
- package/src/generate.test.ts +12 -12
- package/src/generate.ts +21 -14
- package/src/types.ts +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to block navigation based on a condition.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
* Used by useWarnWhenUnsavedChanges to prevent losing form data.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const blocker = useBlocker(shouldBlock);
|
|
9
|
+
* if (blocker.state === 'blocked') {
|
|
10
|
+
* // Show confirmation dialog
|
|
11
|
+
* blocker.proceed(); // or blocker.reset();
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
export const useBlocker = (shouldBlock) => {
|
|
15
|
+
const provider = useRouterProvider();
|
|
16
|
+
return provider.useBlocker(shouldBlock);
|
|
17
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns whether navigation blocking (useBlocker) is supported in the current context.
|
|
3
|
+
* For react-router, this requires a data router. For other routers, it may always be true.
|
|
4
|
+
*
|
|
5
|
+
* @returns {boolean} Whether blocking is supported
|
|
6
|
+
*/
|
|
7
|
+
export declare const useCanBlock: () => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Returns whether navigation blocking (useBlocker) is supported in the current context.
|
|
4
|
+
* For react-router, this requires a data router. For other routers, it may always be true.
|
|
5
|
+
*
|
|
6
|
+
* @returns {boolean} Whether blocking is supported
|
|
7
|
+
*/
|
|
8
|
+
export const useCanBlock = () => {
|
|
9
|
+
const provider = useRouterProvider();
|
|
10
|
+
return provider.useCanBlock();
|
|
11
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HintedString, Identifier } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Get a callback to create a link to a given page in the admin app.
|
|
4
|
+
*
|
|
5
|
+
* The callback expects an object as parameter, containing the following properties:
|
|
6
|
+
* - type: 'list', 'edit', 'show' or 'create'
|
|
7
|
+
* - resource
|
|
8
|
+
* - id (optional), for 'edit' or 'show' pages
|
|
9
|
+
*
|
|
10
|
+
* This is used internally by react-admin to allow default components to work
|
|
11
|
+
* in applications that are mounted on a sub path, e.g. '/admin'. If your app
|
|
12
|
+
* is mounted in the root path, you don't need it, and you can create links by
|
|
13
|
+
* hand, e.g. '/articles/1/show'.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import { useCreatePath, useRecordContext, useNavigate } from 'react-admin';
|
|
17
|
+
*
|
|
18
|
+
* const PostEditButton = () => {
|
|
19
|
+
* const createPath = useCreatePath();
|
|
20
|
+
* const record = useRecordContext();
|
|
21
|
+
* const navigate = useNavigate();
|
|
22
|
+
*
|
|
23
|
+
* const handleClick = () => {
|
|
24
|
+
* const link = createPath({
|
|
25
|
+
* type: 'edit',
|
|
26
|
+
* resource: 'posts',
|
|
27
|
+
* id: record.id
|
|
28
|
+
* });
|
|
29
|
+
* navigate(link);
|
|
30
|
+
* };
|
|
31
|
+
*
|
|
32
|
+
* return <button onClick={handleClick}>Edit Post</button>;
|
|
33
|
+
* };
|
|
34
|
+
*/
|
|
35
|
+
export declare const useCreatePath: () => ({ resource, id, type }: CreatePathParams) => string;
|
|
36
|
+
export type CreatePathType = HintedString<'list' | 'edit' | 'show' | 'create'>;
|
|
37
|
+
export interface CreatePathParams {
|
|
38
|
+
type: CreatePathType;
|
|
39
|
+
resource?: string;
|
|
40
|
+
id?: Identifier;
|
|
41
|
+
}
|
|
42
|
+
export declare const removeDoubleSlashes: (path: string) => string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useBasename } from './useBasename';
|
|
3
|
+
/**
|
|
4
|
+
* Get a callback to create a link to a given page in the admin app.
|
|
5
|
+
*
|
|
6
|
+
* The callback expects an object as parameter, containing the following properties:
|
|
7
|
+
* - type: 'list', 'edit', 'show' or 'create'
|
|
8
|
+
* - resource
|
|
9
|
+
* - id (optional), for 'edit' or 'show' pages
|
|
10
|
+
*
|
|
11
|
+
* This is used internally by react-admin to allow default components to work
|
|
12
|
+
* in applications that are mounted on a sub path, e.g. '/admin'. If your app
|
|
13
|
+
* is mounted in the root path, you don't need it, and you can create links by
|
|
14
|
+
* hand, e.g. '/articles/1/show'.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { useCreatePath, useRecordContext, useNavigate } from 'react-admin';
|
|
18
|
+
*
|
|
19
|
+
* const PostEditButton = () => {
|
|
20
|
+
* const createPath = useCreatePath();
|
|
21
|
+
* const record = useRecordContext();
|
|
22
|
+
* const navigate = useNavigate();
|
|
23
|
+
*
|
|
24
|
+
* const handleClick = () => {
|
|
25
|
+
* const link = createPath({
|
|
26
|
+
* type: 'edit',
|
|
27
|
+
* resource: 'posts',
|
|
28
|
+
* id: record.id
|
|
29
|
+
* });
|
|
30
|
+
* navigate(link);
|
|
31
|
+
* };
|
|
32
|
+
*
|
|
33
|
+
* return <button onClick={handleClick}>Edit Post</button>;
|
|
34
|
+
* };
|
|
35
|
+
*/
|
|
36
|
+
export const useCreatePath = () => {
|
|
37
|
+
const basename = useBasename();
|
|
38
|
+
return useCallback(({ resource, id, type }) => {
|
|
39
|
+
if (['list', 'create', 'edit', 'show'].includes(type) &&
|
|
40
|
+
!resource) {
|
|
41
|
+
throw new Error('Cannot create a link without a resource. You must provide the resource name.');
|
|
42
|
+
}
|
|
43
|
+
switch (type) {
|
|
44
|
+
case 'list':
|
|
45
|
+
return removeDoubleSlashes(`${basename}/${resource}`);
|
|
46
|
+
case 'create':
|
|
47
|
+
return removeDoubleSlashes(`${basename}/${resource}/create`);
|
|
48
|
+
case 'edit': {
|
|
49
|
+
if (id == null) {
|
|
50
|
+
// maybe the id isn't defined yet
|
|
51
|
+
// instead of throwing an error, fallback to list link
|
|
52
|
+
return removeDoubleSlashes(`${basename}/${resource}`);
|
|
53
|
+
}
|
|
54
|
+
return removeDoubleSlashes(`${basename}/${resource}/${encodeURIComponent(id)}`);
|
|
55
|
+
}
|
|
56
|
+
case 'show': {
|
|
57
|
+
if (id == null) {
|
|
58
|
+
// maybe the id isn't defined yet
|
|
59
|
+
// instead of throwing an error, fallback to list link
|
|
60
|
+
return removeDoubleSlashes(`${basename}/${resource}`);
|
|
61
|
+
}
|
|
62
|
+
return removeDoubleSlashes(`${basename}/${resource}/${encodeURIComponent(id)}/show`);
|
|
63
|
+
}
|
|
64
|
+
default:
|
|
65
|
+
return type;
|
|
66
|
+
}
|
|
67
|
+
}, [basename]);
|
|
68
|
+
};
|
|
69
|
+
export const removeDoubleSlashes = (path) => path.replace('//', '/');
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { RaRecord } from '../types';
|
|
2
|
+
import type { LinkToType } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Get a path for a record, based on the current resource and the link type.
|
|
5
|
+
*
|
|
6
|
+
* Accepted link types are 'edit', 'show', a route string, false, or a function returning one of these types.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // basic usage (leverages RecordContext, ResourceContext and ResourceDefinitionContext)
|
|
10
|
+
* const EditLink = () => {
|
|
11
|
+
* const path = useGetPathForRecord();
|
|
12
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
13
|
+
* };
|
|
14
|
+
*
|
|
15
|
+
* // controlled mode
|
|
16
|
+
* const EditLink = ({ record, resource }) => {
|
|
17
|
+
* const path = useGetPathForRecord({ record, resource, link: 'edit' });
|
|
18
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
19
|
+
* };
|
|
20
|
+
*
|
|
21
|
+
* // the link option can be a function
|
|
22
|
+
* const EditLink = ({ record, resource }) => {
|
|
23
|
+
* const path = useGetPathForRecord({ record, resource, link: (record, resource) => record.canEdit ? 'edit' : false });
|
|
24
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* // the link option can be a function returning a promise
|
|
28
|
+
* const EditLink = ({ record, resource }) => {
|
|
29
|
+
* const path = useGetPathForRecord({ record, resource, link: async (record, resource) => {
|
|
30
|
+
* const canEdit = await canEditRecord(record, resource);
|
|
31
|
+
* return canEdit ? 'edit' : false;
|
|
32
|
+
* }});
|
|
33
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
34
|
+
* };
|
|
35
|
+
*/
|
|
36
|
+
export declare const useGetPathForRecord: <RecordType extends RaRecord = RaRecord>(options?: UseGetPathForRecordOptions<RecordType>) => string | false | undefined;
|
|
37
|
+
export interface UseGetPathForRecordOptions<RecordType extends RaRecord = RaRecord> {
|
|
38
|
+
resource?: string;
|
|
39
|
+
record?: RecordType;
|
|
40
|
+
link?: LinkToType<RecordType>;
|
|
41
|
+
}
|
|
42
|
+
export type UseGetRouteForRecordOptions<RecordType extends RaRecord = RaRecord> = UseGetPathForRecordOptions<RecordType>;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { useResourceContext } from '../core/useResourceContext';
|
|
3
|
+
import { useRecordContext } from '../controller/record/useRecordContext';
|
|
4
|
+
import { useCanAccess } from '../auth';
|
|
5
|
+
import { useResourceDefinition } from '../core';
|
|
6
|
+
import { useCreatePath } from './useCreatePath';
|
|
7
|
+
/**
|
|
8
|
+
* Get a path for a record, based on the current resource and the link type.
|
|
9
|
+
*
|
|
10
|
+
* Accepted link types are 'edit', 'show', a route string, false, or a function returning one of these types.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* // basic usage (leverages RecordContext, ResourceContext and ResourceDefinitionContext)
|
|
14
|
+
* const EditLink = () => {
|
|
15
|
+
* const path = useGetPathForRecord();
|
|
16
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
17
|
+
* };
|
|
18
|
+
*
|
|
19
|
+
* // controlled mode
|
|
20
|
+
* const EditLink = ({ record, resource }) => {
|
|
21
|
+
* const path = useGetPathForRecord({ record, resource, link: 'edit' });
|
|
22
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
23
|
+
* };
|
|
24
|
+
*
|
|
25
|
+
* // the link option can be a function
|
|
26
|
+
* const EditLink = ({ record, resource }) => {
|
|
27
|
+
* const path = useGetPathForRecord({ record, resource, link: (record, resource) => record.canEdit ? 'edit' : false });
|
|
28
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
29
|
+
* };
|
|
30
|
+
*
|
|
31
|
+
* // the link option can be a function returning a promise
|
|
32
|
+
* const EditLink = ({ record, resource }) => {
|
|
33
|
+
* const path = useGetPathForRecord({ record, resource, link: async (record, resource) => {
|
|
34
|
+
* const canEdit = await canEditRecord(record, resource);
|
|
35
|
+
* return canEdit ? 'edit' : false;
|
|
36
|
+
* }});
|
|
37
|
+
* return path ? <Link to={path}>Edit</Link> : null;
|
|
38
|
+
* };
|
|
39
|
+
*/
|
|
40
|
+
export const useGetPathForRecord = (options = {}) => {
|
|
41
|
+
const { link } = options || {};
|
|
42
|
+
const record = useRecordContext(options);
|
|
43
|
+
const resource = useResourceContext(options);
|
|
44
|
+
if (!resource) {
|
|
45
|
+
throw new Error('Cannot generate a link for a record without a resource. You must use useGetPathForRecord within a ResourceContextProvider, or pass a resource prop.');
|
|
46
|
+
}
|
|
47
|
+
const resourceDefinition = useResourceDefinition(options);
|
|
48
|
+
const createPath = useCreatePath();
|
|
49
|
+
const [path, setPath] = useState(link && typeof link !== 'function' && record != null
|
|
50
|
+
? createPath({
|
|
51
|
+
resource,
|
|
52
|
+
id: record.id,
|
|
53
|
+
type: link,
|
|
54
|
+
})
|
|
55
|
+
: false);
|
|
56
|
+
// in preparation for the default value, does the user have access to the show and edit pages?
|
|
57
|
+
// (we can't run hooks conditionally, so we need to run them even though the link is specified)
|
|
58
|
+
const { canAccess: canAccessShow } = useCanAccess({
|
|
59
|
+
action: 'show',
|
|
60
|
+
resource,
|
|
61
|
+
record,
|
|
62
|
+
enabled: link == null && resourceDefinition.hasShow,
|
|
63
|
+
});
|
|
64
|
+
const { canAccess: canAccessEdit } = useCanAccess({
|
|
65
|
+
action: 'edit',
|
|
66
|
+
resource,
|
|
67
|
+
record,
|
|
68
|
+
enabled: link == null && resourceDefinition.hasEdit,
|
|
69
|
+
});
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (!record)
|
|
72
|
+
return;
|
|
73
|
+
if (link === false) {
|
|
74
|
+
setPath(false);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// Handle the inferred link type case
|
|
78
|
+
if (link == null) {
|
|
79
|
+
// We must check whether the resource has an edit view because if there is no
|
|
80
|
+
// authProvider, canAccessShow will always be true
|
|
81
|
+
if (resourceDefinition.hasShow && canAccessShow) {
|
|
82
|
+
setPath(createPath({
|
|
83
|
+
resource,
|
|
84
|
+
id: record.id,
|
|
85
|
+
type: 'show',
|
|
86
|
+
}));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// We must check whether the resource has an edit view because if there is no
|
|
90
|
+
// authProvider, canAccessEdit will always be true
|
|
91
|
+
if (resourceDefinition.hasEdit && canAccessEdit) {
|
|
92
|
+
setPath(createPath({
|
|
93
|
+
resource,
|
|
94
|
+
id: record.id,
|
|
95
|
+
type: 'edit',
|
|
96
|
+
}));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Handle the link function case
|
|
101
|
+
if (typeof link === 'function') {
|
|
102
|
+
const linkResult = link(record, resource);
|
|
103
|
+
if (linkResult instanceof Promise) {
|
|
104
|
+
linkResult.then(resolvedPath => setPath(resolvedPath));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
setPath(linkResult
|
|
108
|
+
? createPath({
|
|
109
|
+
resource,
|
|
110
|
+
id: record.id,
|
|
111
|
+
type: linkResult,
|
|
112
|
+
})
|
|
113
|
+
: false);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// handle string case
|
|
117
|
+
if (link) {
|
|
118
|
+
setPath(createPath({
|
|
119
|
+
resource,
|
|
120
|
+
id: record.id,
|
|
121
|
+
type: link,
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
}, [
|
|
125
|
+
createPath,
|
|
126
|
+
canAccessShow,
|
|
127
|
+
canAccessEdit,
|
|
128
|
+
link,
|
|
129
|
+
record,
|
|
130
|
+
resource,
|
|
131
|
+
resourceDefinition.hasEdit,
|
|
132
|
+
resourceDefinition.hasShow,
|
|
133
|
+
]);
|
|
134
|
+
return path;
|
|
135
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RaRecord } from '../types';
|
|
2
|
+
import { UseGetRouteForRecordOptions } from './useGetPathForRecord';
|
|
3
|
+
export declare const useGetPathForRecordCallback: <RecordType extends RaRecord = RaRecord>(options?: UseGetPathForRecordCallbackOptions) => (params: UseGetRouteForRecordOptions<RecordType>) => Promise<string | false | undefined>;
|
|
4
|
+
export interface UseGetPathForRecordCallbackOptions {
|
|
5
|
+
resource?: string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useResourceContext } from '../core/useResourceContext';
|
|
3
|
+
import { useResourceDefinitions } from '../core/useResourceDefinitions';
|
|
4
|
+
import { useCanAccessCallback } from '../auth/useCanAccessCallback';
|
|
5
|
+
import { useCreatePath } from './useCreatePath';
|
|
6
|
+
export const useGetPathForRecordCallback = (options = {}) => {
|
|
7
|
+
const resource = useResourceContext(options);
|
|
8
|
+
const resourceDefinitions = useResourceDefinitions();
|
|
9
|
+
const createPath = useCreatePath();
|
|
10
|
+
const canAccess = useCanAccessCallback();
|
|
11
|
+
return useCallback(async (params) => {
|
|
12
|
+
const { link, record } = params || {};
|
|
13
|
+
const finalResource = params.resource ?? resource;
|
|
14
|
+
if (!finalResource) {
|
|
15
|
+
throw new Error('Cannot generate a link for a record without a resource. You must use useGetPathForRecordCallback within a ResourceContextProvider, or pass a resource parameter.');
|
|
16
|
+
}
|
|
17
|
+
const resourceDefinition = resourceDefinitions[finalResource] ?? {};
|
|
18
|
+
if (record == null || link === false) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
// When the link prop is not provided, we infer a default value and check whether users
|
|
22
|
+
// can access it
|
|
23
|
+
if (link == null) {
|
|
24
|
+
// check if the user can access the show and edit pages in parallel
|
|
25
|
+
const [canAccessShow, canAccessEdit] = await Promise.all([
|
|
26
|
+
resourceDefinition.hasShow
|
|
27
|
+
? canAccess({
|
|
28
|
+
action: 'show',
|
|
29
|
+
resource: finalResource,
|
|
30
|
+
record,
|
|
31
|
+
})
|
|
32
|
+
: Promise.resolve(false),
|
|
33
|
+
resourceDefinition.hasEdit
|
|
34
|
+
? canAccess({
|
|
35
|
+
action: 'edit',
|
|
36
|
+
resource: finalResource,
|
|
37
|
+
record,
|
|
38
|
+
})
|
|
39
|
+
: Promise.resolve(false),
|
|
40
|
+
]);
|
|
41
|
+
if (canAccessShow) {
|
|
42
|
+
return createPath({
|
|
43
|
+
resource: finalResource,
|
|
44
|
+
id: record.id,
|
|
45
|
+
type: 'show',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (canAccessEdit) {
|
|
49
|
+
return createPath({
|
|
50
|
+
resource: finalResource,
|
|
51
|
+
id: record.id,
|
|
52
|
+
type: 'edit',
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
const linkFunc = typeof link === 'function' ? link : () => link;
|
|
58
|
+
const linkResult = linkFunc(record, finalResource);
|
|
59
|
+
if (linkResult === false) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const linkResultIsPromise = isPromise(linkResult);
|
|
63
|
+
if (linkResultIsPromise) {
|
|
64
|
+
const resolvedLink = await linkResult;
|
|
65
|
+
if (resolvedLink === false) {
|
|
66
|
+
// already set to false by default
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
return createPath({
|
|
70
|
+
resource: finalResource,
|
|
71
|
+
id: record.id,
|
|
72
|
+
type: resolvedLink,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return createPath({
|
|
76
|
+
resource: finalResource,
|
|
77
|
+
id: record.id,
|
|
78
|
+
type: linkResult,
|
|
79
|
+
});
|
|
80
|
+
}, [canAccess, createPath, resourceDefinitions, resource]);
|
|
81
|
+
};
|
|
82
|
+
const isPromise = (value) => value && typeof value.then === 'function';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to check if we are inside a router context.
|
|
3
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const isInRouter = useInRouterContext();
|
|
7
|
+
* if (!isInRouter) {
|
|
8
|
+
* // Need to wrap with a router
|
|
9
|
+
* }
|
|
10
|
+
*/
|
|
11
|
+
export declare const useInRouterContext: () => boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to check if we are inside a router context.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const isInRouter = useInRouterContext();
|
|
8
|
+
* if (!isInRouter) {
|
|
9
|
+
* // Need to wrap with a router
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
export const useInRouterContext = () => {
|
|
13
|
+
const provider = useRouterProvider();
|
|
14
|
+
return provider.useInRouterContext();
|
|
15
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RouterLocation } from './RouterProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access the current location.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const location = useLocation();
|
|
8
|
+
* console.log(location.pathname);
|
|
9
|
+
*/
|
|
10
|
+
export declare const useLocation: () => RouterLocation;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access the current location.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const location = useLocation();
|
|
8
|
+
* console.log(location.pathname);
|
|
9
|
+
*/
|
|
10
|
+
export const useLocation = () => {
|
|
11
|
+
const provider = useRouterProvider();
|
|
12
|
+
return provider.useLocation();
|
|
13
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RouterMatch } from './RouterProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to match the current location against a pattern.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const match = useMatch({ path: '/posts/:id', end: true });
|
|
8
|
+
* if (match) {
|
|
9
|
+
* console.log(match.params.id);
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
export declare const useMatch: (pattern: {
|
|
13
|
+
path: string;
|
|
14
|
+
end?: boolean;
|
|
15
|
+
}) => RouterMatch | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to match the current location against a pattern.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const match = useMatch({ path: '/posts/:id', end: true });
|
|
8
|
+
* if (match) {
|
|
9
|
+
* console.log(match.params.id);
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
export const useMatch = (pattern) => {
|
|
13
|
+
const provider = useRouterProvider();
|
|
14
|
+
return provider.useMatch(pattern);
|
|
15
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RouterMatch } from './RouterProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the matchPath function from the configured router provider.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* import { useMatchPath } from 'react-admin';
|
|
7
|
+
*
|
|
8
|
+
* const MyComponent = () => {
|
|
9
|
+
* const matchPath = useMatchPath();
|
|
10
|
+
* const match = matchPath('/posts/:id', '/posts/123');
|
|
11
|
+
* // match.params.id === '123'
|
|
12
|
+
* };
|
|
13
|
+
*/
|
|
14
|
+
export declare const useMatchPath: () => ((pattern: string | {
|
|
15
|
+
path: string;
|
|
16
|
+
end?: boolean;
|
|
17
|
+
}, pathname: string) => RouterMatch | null);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the matchPath function from the configured router provider.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* import { useMatchPath } from 'react-admin';
|
|
7
|
+
*
|
|
8
|
+
* const MyComponent = () => {
|
|
9
|
+
* const matchPath = useMatchPath();
|
|
10
|
+
* const match = matchPath('/posts/:id', '/posts/123');
|
|
11
|
+
* // match.params.id === '123'
|
|
12
|
+
* };
|
|
13
|
+
*/
|
|
14
|
+
export const useMatchPath = () => {
|
|
15
|
+
const provider = useRouterProvider();
|
|
16
|
+
return provider.matchPath;
|
|
17
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RouterNavigateFunction } from './RouterProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access the navigate function.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const navigate = useNavigate();
|
|
8
|
+
* navigate('/posts');
|
|
9
|
+
* navigate('/posts', { replace: true });
|
|
10
|
+
* navigate(-1); // go back
|
|
11
|
+
*/
|
|
12
|
+
export declare const useNavigate: () => RouterNavigateFunction;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access the navigate function.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const navigate = useNavigate();
|
|
8
|
+
* navigate('/posts');
|
|
9
|
+
* navigate('/posts', { replace: true });
|
|
10
|
+
* navigate(-1); // go back
|
|
11
|
+
*/
|
|
12
|
+
export const useNavigate = () => {
|
|
13
|
+
const provider = useRouterProvider();
|
|
14
|
+
return provider.useNavigate();
|
|
15
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to access URL parameters.
|
|
3
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const params = useParams<{ id: string }>();
|
|
7
|
+
* console.log(params.id);
|
|
8
|
+
*/
|
|
9
|
+
export declare const useParams: <T extends Record<string, string | undefined> = Record<string, string | undefined>>() => T;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useRouterProvider } from './RouterProviderContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access URL parameters.
|
|
4
|
+
* This is a router-agnostic wrapper that uses the configured router provider.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const params = useParams<{ id: string }>();
|
|
8
|
+
* console.log(params.id);
|
|
9
|
+
*/
|
|
10
|
+
export const useParams = () => {
|
|
11
|
+
const provider = useRouterProvider();
|
|
12
|
+
return provider.useParams();
|
|
13
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Identifier, RaRecord } from '../types';
|
|
2
|
+
import { CreatePathType } from './useCreatePath';
|
|
3
|
+
import type { RouterTo } from './RouterProvider';
|
|
4
|
+
/**
|
|
5
|
+
* Target for redirection - can be a path string or a location object
|
|
6
|
+
*/
|
|
7
|
+
type RedirectTarget = RouterTo;
|
|
8
|
+
type RedirectToFunction = (resource?: string, id?: Identifier, data?: Partial<RaRecord>, state?: object) => RedirectTarget;
|
|
9
|
+
export type RedirectionSideEffect = CreatePathType | false | RedirectToFunction;
|
|
10
|
+
/**
|
|
11
|
+
* Hook for Redirection Side Effect
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
*
|
|
15
|
+
* const redirect = useRedirect();
|
|
16
|
+
* // redirect to list view
|
|
17
|
+
* redirect('list', 'posts');
|
|
18
|
+
* // redirect to edit view
|
|
19
|
+
* redirect('edit', 'posts', 123);
|
|
20
|
+
* // redirect to edit view with state data
|
|
21
|
+
* redirect('edit', 'comments', 123, {}, { record: { post_id: record.id } });
|
|
22
|
+
* // do not redirect
|
|
23
|
+
* redirect(false);
|
|
24
|
+
* // redirect to the result of a function
|
|
25
|
+
* redirect((resource, id, data) => ...)
|
|
26
|
+
* // redirect to an absolute URL
|
|
27
|
+
* redirect('https://marmelab.com/react-admin');
|
|
28
|
+
*/
|
|
29
|
+
export declare const useRedirect: () => (redirectTo: RedirectionSideEffect, resource?: string, id?: Identifier, data?: Partial<RaRecord>, state?: object) => void;
|
|
30
|
+
export {};
|