@strato-admin/faker-ecommerce 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/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 +5 -4
- 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,66 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useBasename } from './useBasename';
|
|
3
|
+
import { useCreatePath } from './useCreatePath';
|
|
4
|
+
import { useNavigate } from './useNavigate';
|
|
5
|
+
/**
|
|
6
|
+
* Hook for Redirection Side Effect
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* const redirect = useRedirect();
|
|
11
|
+
* // redirect to list view
|
|
12
|
+
* redirect('list', 'posts');
|
|
13
|
+
* // redirect to edit view
|
|
14
|
+
* redirect('edit', 'posts', 123);
|
|
15
|
+
* // redirect to edit view with state data
|
|
16
|
+
* redirect('edit', 'comments', 123, {}, { record: { post_id: record.id } });
|
|
17
|
+
* // do not redirect
|
|
18
|
+
* redirect(false);
|
|
19
|
+
* // redirect to the result of a function
|
|
20
|
+
* redirect((resource, id, data) => ...)
|
|
21
|
+
* // redirect to an absolute URL
|
|
22
|
+
* redirect('https://marmelab.com/react-admin');
|
|
23
|
+
*/
|
|
24
|
+
export const useRedirect = () => {
|
|
25
|
+
const navigate = useNavigate();
|
|
26
|
+
const basename = useBasename();
|
|
27
|
+
const createPath = useCreatePath();
|
|
28
|
+
return useCallback((redirectTo, resource = '', id, data, state = {}) => {
|
|
29
|
+
if (!redirectTo) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
else if (typeof redirectTo === 'function') {
|
|
33
|
+
const target = redirectTo(resource, id, data);
|
|
34
|
+
const absoluteTarget = typeof target === 'string'
|
|
35
|
+
? `${basename}${target.startsWith('/') ? '' : '/'}${target}`
|
|
36
|
+
: {
|
|
37
|
+
pathname: `${basename}${target.pathname?.startsWith('/') ? '' : '/'}${target.pathname}`,
|
|
38
|
+
...target,
|
|
39
|
+
};
|
|
40
|
+
navigate(absoluteTarget, {
|
|
41
|
+
state: { _scrollToTop: true, ...state },
|
|
42
|
+
});
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
else if (typeof redirectTo === 'string' &&
|
|
46
|
+
redirectTo.startsWith('http') &&
|
|
47
|
+
window) {
|
|
48
|
+
// redirection to an absolute url
|
|
49
|
+
// history doesn't handle that case, so we handle it by hand
|
|
50
|
+
window.location.href = redirectTo;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// redirection to an internal link
|
|
55
|
+
navigate(createPath({ resource, id, type: redirectTo }), {
|
|
56
|
+
state:
|
|
57
|
+
// We force the scrollToTop except when navigating to a list
|
|
58
|
+
// where this is already done by <RestoreScrollPosition> in <Resource>
|
|
59
|
+
redirectTo === 'list'
|
|
60
|
+
? state
|
|
61
|
+
: { _scrollToTop: true, ...state },
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}, [navigate, basename, createPath]);
|
|
66
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A hook to use inside the component passed to FallbackComponent
|
|
3
|
+
* of react-error-boundary. It resets the error boundary state whenever
|
|
4
|
+
* the location changes
|
|
5
|
+
* @param {Function} resetErrorBoundary
|
|
6
|
+
*/
|
|
7
|
+
export declare const useResetErrorBoundaryOnLocationChange: (resetErrorBoundary: () => void) => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { useLocation } from './useLocation';
|
|
3
|
+
/**
|
|
4
|
+
* A hook to use inside the component passed to FallbackComponent
|
|
5
|
+
* of react-error-boundary. It resets the error boundary state whenever
|
|
6
|
+
* the location changes
|
|
7
|
+
* @param {Function} resetErrorBoundary
|
|
8
|
+
*/
|
|
9
|
+
export const useResetErrorBoundaryOnLocationChange = (resetErrorBoundary) => {
|
|
10
|
+
const { pathname } = useLocation();
|
|
11
|
+
const originalPathname = useRef(pathname);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (pathname !== originalPathname.current) {
|
|
14
|
+
resetErrorBoundary();
|
|
15
|
+
}
|
|
16
|
+
}, [pathname, resetErrorBoundary]);
|
|
17
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A hook that tracks the scroll position and restores it when the component mounts.
|
|
3
|
+
* @param storeKey The key under which to store the scroll position in the store
|
|
4
|
+
* @param debounceMs The debounce time in milliseconds
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { useRestoreScrollPosition } from '@strato-admin/ra-core';
|
|
8
|
+
*
|
|
9
|
+
* const MyCustomPage = () => {
|
|
10
|
+
* useRestoreScrollPosition('my-list');
|
|
11
|
+
*
|
|
12
|
+
* return (
|
|
13
|
+
* <div>
|
|
14
|
+
* <h1>My Custom Page</h1>
|
|
15
|
+
* <VeryLongContent />
|
|
16
|
+
* </div>
|
|
17
|
+
* );
|
|
18
|
+
* };
|
|
19
|
+
*/
|
|
20
|
+
export declare const useRestoreScrollPosition: (storeKey: string, debounceMs?: number) => void;
|
|
21
|
+
/**
|
|
22
|
+
* A hook that tracks the scroll position and stores it.
|
|
23
|
+
* @param storeKey The key under which to store the scroll position in the store
|
|
24
|
+
* @param debounceMs The debounce time in milliseconds
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* import { useTrackScrollPosition } from '@strato-admin/ra-core';
|
|
28
|
+
*
|
|
29
|
+
* const MyCustomPage = () => {
|
|
30
|
+
* useTrackScrollPosition('my-list');
|
|
31
|
+
*
|
|
32
|
+
* return (
|
|
33
|
+
* <div>
|
|
34
|
+
* <h1>My Custom Page</h1>
|
|
35
|
+
* <VeryLongContent />
|
|
36
|
+
* </div>
|
|
37
|
+
* );
|
|
38
|
+
* };
|
|
39
|
+
*/
|
|
40
|
+
export declare const useTrackScrollPosition: (storeKey: string, debounceMs?: number) => [number | undefined, (value: number | undefined) => void];
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import debounce from 'lodash/debounce.js';
|
|
3
|
+
import { useStore } from '../store';
|
|
4
|
+
import { useLocation } from './useLocation';
|
|
5
|
+
/**
|
|
6
|
+
* A hook that tracks the scroll position and restores it when the component mounts.
|
|
7
|
+
* @param storeKey The key under which to store the scroll position in the store
|
|
8
|
+
* @param debounceMs The debounce time in milliseconds
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { useRestoreScrollPosition } from '@strato-admin/ra-core';
|
|
12
|
+
*
|
|
13
|
+
* const MyCustomPage = () => {
|
|
14
|
+
* useRestoreScrollPosition('my-list');
|
|
15
|
+
*
|
|
16
|
+
* return (
|
|
17
|
+
* <div>
|
|
18
|
+
* <h1>My Custom Page</h1>
|
|
19
|
+
* <VeryLongContent />
|
|
20
|
+
* </div>
|
|
21
|
+
* );
|
|
22
|
+
* };
|
|
23
|
+
*/
|
|
24
|
+
export const useRestoreScrollPosition = (storeKey, debounceMs = 250) => {
|
|
25
|
+
const [position, setPosition] = useTrackScrollPosition(storeKey, debounceMs);
|
|
26
|
+
const location = useLocation();
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (position != null && location.state?._scrollToTop !== true) {
|
|
29
|
+
setPosition(undefined);
|
|
30
|
+
window.scrollTo(0, position);
|
|
31
|
+
}
|
|
32
|
+
// We only want to run this effect on mount
|
|
33
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
|
+
}, []);
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* A hook that tracks the scroll position and stores it.
|
|
38
|
+
* @param storeKey The key under which to store the scroll position in the store
|
|
39
|
+
* @param debounceMs The debounce time in milliseconds
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* import { useTrackScrollPosition } from '@strato-admin/ra-core';
|
|
43
|
+
*
|
|
44
|
+
* const MyCustomPage = () => {
|
|
45
|
+
* useTrackScrollPosition('my-list');
|
|
46
|
+
*
|
|
47
|
+
* return (
|
|
48
|
+
* <div>
|
|
49
|
+
* <h1>My Custom Page</h1>
|
|
50
|
+
* <VeryLongContent />
|
|
51
|
+
* </div>
|
|
52
|
+
* );
|
|
53
|
+
* };
|
|
54
|
+
*/
|
|
55
|
+
export const useTrackScrollPosition = (storeKey, debounceMs = 250) => {
|
|
56
|
+
const [position, setPosition] = useStore(storeKey);
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (typeof window === 'undefined') {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const handleScroll = debounce(() => {
|
|
62
|
+
setPosition(window.scrollY);
|
|
63
|
+
}, debounceMs);
|
|
64
|
+
window.addEventListener('scroll', handleScroll);
|
|
65
|
+
return () => {
|
|
66
|
+
window.removeEventListener('scroll', handleScroll);
|
|
67
|
+
};
|
|
68
|
+
}, [debounceMs, setPosition]);
|
|
69
|
+
return [position, setPosition];
|
|
70
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility hook to get the base path of a splat path.
|
|
3
|
+
* Compatible both with react-router v6 and v7.
|
|
4
|
+
*
|
|
5
|
+
* Example:
|
|
6
|
+
* If a splat path is defined as `/posts/:id/show/*`,
|
|
7
|
+
* and the current location is `/posts/12/show/3`,
|
|
8
|
+
* this hook will return `/posts/12/show`.
|
|
9
|
+
*
|
|
10
|
+
* Solution inspired by
|
|
11
|
+
* https://github.com/remix-run/react-router/issues/11052#issuecomment-1828470203
|
|
12
|
+
*/
|
|
13
|
+
export declare const useSplatPathBase: () => string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useLocation } from './useLocation';
|
|
2
|
+
import { useParams } from './useParams';
|
|
3
|
+
/**
|
|
4
|
+
* Utility hook to get the base path of a splat path.
|
|
5
|
+
* Compatible both with react-router v6 and v7.
|
|
6
|
+
*
|
|
7
|
+
* Example:
|
|
8
|
+
* If a splat path is defined as `/posts/:id/show/*`,
|
|
9
|
+
* and the current location is `/posts/12/show/3`,
|
|
10
|
+
* this hook will return `/posts/12/show`.
|
|
11
|
+
*
|
|
12
|
+
* Solution inspired by
|
|
13
|
+
* https://github.com/remix-run/react-router/issues/11052#issuecomment-1828470203
|
|
14
|
+
*/
|
|
15
|
+
export const useSplatPathBase = () => {
|
|
16
|
+
const location = useLocation();
|
|
17
|
+
const params = useParams();
|
|
18
|
+
const splatPathRelativePart = params['*'];
|
|
19
|
+
const splatPathBase = location.pathname.replace(new RegExp(`/${splatPathRelativePart}$`), '');
|
|
20
|
+
return splatPathBase;
|
|
21
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './localStorageStore';
|
|
2
|
+
export * from './memoryStore';
|
|
3
|
+
export * from './StoreContext';
|
|
4
|
+
export * from './StoreContextProvider';
|
|
5
|
+
export * from './StoreSetter';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './useStore';
|
|
8
|
+
export * from './useStoreContext';
|
|
9
|
+
export * from './useRemoveFromStore';
|
|
10
|
+
export * from './useRemoveItemsFromStore';
|
|
11
|
+
export * from './useResetStore';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './localStorageStore';
|
|
2
|
+
export * from './memoryStore';
|
|
3
|
+
export * from './StoreContext';
|
|
4
|
+
export * from './StoreContextProvider';
|
|
5
|
+
export * from './StoreSetter';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './useStore';
|
|
8
|
+
export * from './useStoreContext';
|
|
9
|
+
export * from './useRemoveFromStore';
|
|
10
|
+
export * from './useRemoveItemsFromStore';
|
|
11
|
+
export * from './useResetStore';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Store } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Store using localStorage, or memory storage in incognito mode
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* import { localStorageStore } from 'react-admin';
|
|
8
|
+
*
|
|
9
|
+
* const App = () => (
|
|
10
|
+
* <Admin store={localStorageStore()}>
|
|
11
|
+
* ...
|
|
12
|
+
* </Admin>
|
|
13
|
+
* );
|
|
14
|
+
*/
|
|
15
|
+
export declare const localStorageStore: (version?: string, appKey?: string) => Store;
|
|
16
|
+
declare class LocalStorageShim {
|
|
17
|
+
valuesMap: any;
|
|
18
|
+
getItem(key: string): string | null;
|
|
19
|
+
setItem(key: string, value: string): void;
|
|
20
|
+
removeItem(key: string): void;
|
|
21
|
+
removeItems(keyPrefix: string): void;
|
|
22
|
+
clear(): void;
|
|
23
|
+
key(i: any): string;
|
|
24
|
+
get length(): any;
|
|
25
|
+
}
|
|
26
|
+
export declare const getStorage: () => LocalStorageShim | Storage;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
const RA_STORE = 'RaStore';
|
|
2
|
+
// localStorage isn't available in incognito mode. We need to detect it
|
|
3
|
+
const testLocalStorage = () => {
|
|
4
|
+
// eslint-disable-next-line eqeqeq
|
|
5
|
+
if (typeof window === 'undefined' || window.localStorage == undefined) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
window.localStorage.setItem('test', 'test');
|
|
10
|
+
window.localStorage.removeItem('test');
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const localStorageAvailable = testLocalStorage();
|
|
18
|
+
/**
|
|
19
|
+
* Store using localStorage, or memory storage in incognito mode
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
*
|
|
23
|
+
* import { localStorageStore } from 'react-admin';
|
|
24
|
+
*
|
|
25
|
+
* const App = () => (
|
|
26
|
+
* <Admin store={localStorageStore()}>
|
|
27
|
+
* ...
|
|
28
|
+
* </Admin>
|
|
29
|
+
* );
|
|
30
|
+
*/
|
|
31
|
+
export const localStorageStore = (version = '1', appKey = '') => {
|
|
32
|
+
const prefix = `${RA_STORE}${appKey}`;
|
|
33
|
+
const prefixLength = prefix.length;
|
|
34
|
+
const subscriptions = {};
|
|
35
|
+
const publish = (key, value) => {
|
|
36
|
+
Object.keys(subscriptions).forEach(id => {
|
|
37
|
+
if (!subscriptions[id])
|
|
38
|
+
return; // may happen if a component unmounts after a first subscriber was notified
|
|
39
|
+
if (subscriptions[id].key === key) {
|
|
40
|
+
subscriptions[id].callback(value);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
// Whenever the local storage changes in another document, look for matching subscribers.
|
|
45
|
+
// This allows to synchronize state across tabs
|
|
46
|
+
const onLocalStorageChange = (event) => {
|
|
47
|
+
if (event.key?.substring(0, prefixLength) !== prefix) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const key = event.key.substring(prefixLength + 1);
|
|
51
|
+
const value = event.newValue ? tryParse(event.newValue) : undefined;
|
|
52
|
+
Object.keys(subscriptions).forEach(id => {
|
|
53
|
+
if (!subscriptions[id])
|
|
54
|
+
return; // may happen if a component unmounts after a first subscriber was notified
|
|
55
|
+
if (subscriptions[id].key === key) {
|
|
56
|
+
if (value === null) {
|
|
57
|
+
// an event with a null value is sent when the key is deleted.
|
|
58
|
+
// to enable default value, we need to call setValue(undefined) instead of setValue(null)
|
|
59
|
+
subscriptions[id].callback(undefined);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
subscriptions[id].callback(value == null ? undefined : value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
setup: () => {
|
|
69
|
+
if (localStorageAvailable) {
|
|
70
|
+
const storedVersion = getStorage().getItem(`${prefix}.version`);
|
|
71
|
+
if (storedVersion && storedVersion !== version) {
|
|
72
|
+
const storage = getStorage();
|
|
73
|
+
Object.keys(storage).forEach(key => {
|
|
74
|
+
if (key.startsWith(prefix)) {
|
|
75
|
+
storage.removeItem(key);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getStorage().setItem(`${prefix}.version`, version);
|
|
80
|
+
window.addEventListener('storage', onLocalStorageChange);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
teardown: () => {
|
|
84
|
+
if (localStorageAvailable) {
|
|
85
|
+
window.removeEventListener('storage', onLocalStorageChange);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
getItem(key, defaultValue) {
|
|
89
|
+
const valueFromStorage = getStorage().getItem(`${prefix}.${key}`);
|
|
90
|
+
return valueFromStorage == null
|
|
91
|
+
? defaultValue
|
|
92
|
+
: tryParse(valueFromStorage);
|
|
93
|
+
},
|
|
94
|
+
setItem(key, value) {
|
|
95
|
+
if (value === undefined) {
|
|
96
|
+
getStorage().removeItem(`${prefix}.${key}`);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
getStorage().setItem(`${prefix}.${key}`, JSON.stringify(value));
|
|
100
|
+
}
|
|
101
|
+
publish(key, value);
|
|
102
|
+
},
|
|
103
|
+
removeItem(key) {
|
|
104
|
+
getStorage().removeItem(`${prefix}.${key}`);
|
|
105
|
+
publish(key, undefined);
|
|
106
|
+
},
|
|
107
|
+
removeItems(keyPrefix) {
|
|
108
|
+
const storage = getStorage();
|
|
109
|
+
Object.keys(storage).forEach(key => {
|
|
110
|
+
if (key.startsWith(`${prefix}.${keyPrefix}`)) {
|
|
111
|
+
storage.removeItem(key);
|
|
112
|
+
const publishKey = key.substring(prefixLength + 1);
|
|
113
|
+
publish(publishKey, undefined);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
},
|
|
117
|
+
reset() {
|
|
118
|
+
const storage = getStorage();
|
|
119
|
+
Object.keys(storage).forEach(key => {
|
|
120
|
+
if (key.startsWith(prefix)) {
|
|
121
|
+
storage.removeItem(key);
|
|
122
|
+
const publishKey = key.substring(prefixLength + 1);
|
|
123
|
+
publish(publishKey, undefined);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
subscribe: (key, callback) => {
|
|
128
|
+
const id = Math.random().toString();
|
|
129
|
+
subscriptions[id] = {
|
|
130
|
+
key,
|
|
131
|
+
callback,
|
|
132
|
+
};
|
|
133
|
+
return () => {
|
|
134
|
+
delete subscriptions[id];
|
|
135
|
+
};
|
|
136
|
+
},
|
|
137
|
+
listItems: (keyPrefix) => {
|
|
138
|
+
const storage = getStorage();
|
|
139
|
+
const fullPrefix = `${prefix}.${keyPrefix != null ? keyPrefix : ''}`;
|
|
140
|
+
return Object.entries(storage).reduce((acc, [key, value]) => {
|
|
141
|
+
if (
|
|
142
|
+
// version is considered internal
|
|
143
|
+
key !== `${prefix}.version` &&
|
|
144
|
+
key.startsWith(fullPrefix)) {
|
|
145
|
+
acc[key.substring(prefix.length + 1)] = tryParse(value);
|
|
146
|
+
}
|
|
147
|
+
return acc;
|
|
148
|
+
}, {});
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
const tryParse = (value) => {
|
|
153
|
+
try {
|
|
154
|
+
return JSON.parse(value);
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
return value;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
class LocalStorageShim {
|
|
161
|
+
valuesMap = new Map();
|
|
162
|
+
getItem(key) {
|
|
163
|
+
if (this.valuesMap.has(key)) {
|
|
164
|
+
return String(this.valuesMap.get(key));
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
setItem(key, value) {
|
|
169
|
+
this.valuesMap.set(key, value);
|
|
170
|
+
}
|
|
171
|
+
removeItem(key) {
|
|
172
|
+
this.valuesMap.delete(key);
|
|
173
|
+
}
|
|
174
|
+
removeItems(keyPrefix) {
|
|
175
|
+
this.valuesMap.forEach((value, key) => {
|
|
176
|
+
if (key.startsWith(keyPrefix)) {
|
|
177
|
+
this.valuesMap.delete(key);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
clear() {
|
|
182
|
+
this.valuesMap.clear();
|
|
183
|
+
}
|
|
184
|
+
key(i) {
|
|
185
|
+
if (arguments.length === 0) {
|
|
186
|
+
throw new TypeError("Failed to execute 'key' on 'Storage': 1 argument required, but only 0 present."); // this is a TypeError implemented on Chrome, Firefox throws Not enough arguments to Storage.key.
|
|
187
|
+
}
|
|
188
|
+
const arr = Array.from(this.valuesMap.keys());
|
|
189
|
+
return arr[i];
|
|
190
|
+
}
|
|
191
|
+
get length() {
|
|
192
|
+
return this.valuesMap.size;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const memoryStorage = new LocalStorageShim();
|
|
196
|
+
export const getStorage = () => {
|
|
197
|
+
return localStorageAvailable ? window.localStorage : memoryStorage;
|
|
198
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface Store {
|
|
2
|
+
setup: () => void;
|
|
3
|
+
teardown: () => void;
|
|
4
|
+
getItem: <T = any>(key: string, defaultValue?: T) => T | undefined;
|
|
5
|
+
setItem: <T = any>(key: string, value: T) => void;
|
|
6
|
+
removeItem: (key: string) => void;
|
|
7
|
+
removeItems: (keyPrefix: string) => void;
|
|
8
|
+
reset: () => void;
|
|
9
|
+
subscribe: (key: string, callback: (value: any) => void) => () => void;
|
|
10
|
+
listItems?: (keyPrefix?: string) => Record<string, unknown>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback to remove an item from the store
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import { useRemoveFromStore } from 'react-admin';
|
|
6
|
+
*
|
|
7
|
+
* const ResetDatagridPrefs = () {
|
|
8
|
+
* const removeItem = useRemoveFromStore();
|
|
9
|
+
*
|
|
10
|
+
* const handleClick = () => {
|
|
11
|
+
* removeItem('datagrid.prefs');
|
|
12
|
+
* };
|
|
13
|
+
*
|
|
14
|
+
* return <Button onClick={hancleClick}>Reset datagrid preferences</Button>;
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
export declare const useRemoveFromStore: (hookTimeKey?: string) => (key?: string) => any;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useStoreContext } from './useStoreContext';
|
|
3
|
+
/**
|
|
4
|
+
* Get a callback to remove an item from the store
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { useRemoveFromStore } from 'react-admin';
|
|
8
|
+
*
|
|
9
|
+
* const ResetDatagridPrefs = () {
|
|
10
|
+
* const removeItem = useRemoveFromStore();
|
|
11
|
+
*
|
|
12
|
+
* const handleClick = () => {
|
|
13
|
+
* removeItem('datagrid.prefs');
|
|
14
|
+
* };
|
|
15
|
+
*
|
|
16
|
+
* return <Button onClick={hancleClick}>Reset datagrid preferences</Button>;
|
|
17
|
+
* }
|
|
18
|
+
*/
|
|
19
|
+
export const useRemoveFromStore = (hookTimeKey) => {
|
|
20
|
+
const { removeItem } = useStoreContext();
|
|
21
|
+
return useCallback((key) => {
|
|
22
|
+
if (typeof key === 'undefined' &&
|
|
23
|
+
typeof hookTimeKey === 'undefined') {
|
|
24
|
+
throw new Error('You must provide a key to remove an item from the store');
|
|
25
|
+
}
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
return removeItem(key ?? hookTimeKey);
|
|
28
|
+
}, [removeItem, hookTimeKey]);
|
|
29
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback to remove all item with a certain key prefix from the store
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import { useRemoveItemsFromStore } from 'react-admin';
|
|
6
|
+
*
|
|
7
|
+
* const ResetDatagridPrefs = () {
|
|
8
|
+
* const removeItems = useRemoveItemsFromStore();
|
|
9
|
+
*
|
|
10
|
+
* const handleClick = () => {
|
|
11
|
+
* removeItems('datagrid.prefs');
|
|
12
|
+
* };
|
|
13
|
+
*
|
|
14
|
+
* return <Button onClick={hancleClick}>Reset datagrid preferences</Button>;
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
export declare const useRemoveItemsFromStore: (hookTimeKeyPrefix?: string | null) => (keyPrefix?: string) => any;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useStoreContext } from './useStoreContext';
|
|
3
|
+
/**
|
|
4
|
+
* Get a callback to remove all item with a certain key prefix from the store
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { useRemoveItemsFromStore } from 'react-admin';
|
|
8
|
+
*
|
|
9
|
+
* const ResetDatagridPrefs = () {
|
|
10
|
+
* const removeItems = useRemoveItemsFromStore();
|
|
11
|
+
*
|
|
12
|
+
* const handleClick = () => {
|
|
13
|
+
* removeItems('datagrid.prefs');
|
|
14
|
+
* };
|
|
15
|
+
*
|
|
16
|
+
* return <Button onClick={hancleClick}>Reset datagrid preferences</Button>;
|
|
17
|
+
* }
|
|
18
|
+
*/
|
|
19
|
+
export const useRemoveItemsFromStore = (hookTimeKeyPrefix) => {
|
|
20
|
+
const { removeItems } = useStoreContext();
|
|
21
|
+
return useCallback((keyPrefix) => {
|
|
22
|
+
if (typeof keyPrefix === 'undefined' &&
|
|
23
|
+
typeof hookTimeKeyPrefix === 'undefined') {
|
|
24
|
+
throw new Error('You must provide a key to remove an item from the store');
|
|
25
|
+
}
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
return removeItems(keyPrefix ?? hookTimeKeyPrefix);
|
|
28
|
+
}, [removeItems, hookTimeKeyPrefix]);
|
|
29
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a callback to remove all items from the store
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import { useResetStore } from 'react-admin';
|
|
6
|
+
*
|
|
7
|
+
* const ResetPrefs = () {
|
|
8
|
+
* const reset = useResetStore();
|
|
9
|
+
*
|
|
10
|
+
* const handleClick = () => {
|
|
11
|
+
* reset();
|
|
12
|
+
* };
|
|
13
|
+
*
|
|
14
|
+
* return <Button onClick={handleClick}>Reset preferences</Button>;
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
export declare const useResetStore: () => any;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useStoreContext } from './useStoreContext';
|
|
2
|
+
/**
|
|
3
|
+
* Get a callback to remove all items from the store
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* import { useResetStore } from 'react-admin';
|
|
7
|
+
*
|
|
8
|
+
* const ResetPrefs = () {
|
|
9
|
+
* const reset = useResetStore();
|
|
10
|
+
*
|
|
11
|
+
* const handleClick = () => {
|
|
12
|
+
* reset();
|
|
13
|
+
* };
|
|
14
|
+
*
|
|
15
|
+
* return <Button onClick={handleClick}>Reset preferences</Button>;
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export const useResetStore = () => {
|
|
19
|
+
const { reset } = useStoreContext();
|
|
20
|
+
return reset;
|
|
21
|
+
};
|