@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,116 @@
|
|
|
1
|
+
import { SortPayload, FilterPayload } from '../../types';
|
|
2
|
+
export interface ListParams {
|
|
3
|
+
sort: string;
|
|
4
|
+
order: 'ASC' | 'DESC';
|
|
5
|
+
page: number;
|
|
6
|
+
perPage: number;
|
|
7
|
+
filter: any;
|
|
8
|
+
displayedFilters: any;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get the list parameters (page, sort, filters) and modifiers.
|
|
12
|
+
*
|
|
13
|
+
* These parameters are merged from 3 sources:
|
|
14
|
+
* - the query string from the URL
|
|
15
|
+
* - the params stored in the state (from previous navigation)
|
|
16
|
+
* - the options passed to the hook (including the filter defaultValues)
|
|
17
|
+
*
|
|
18
|
+
* @returns {Array} A tuple [parameters, modifiers].
|
|
19
|
+
* Destructure as [
|
|
20
|
+
* { page, perPage, sort, order, filter, filterValues, displayedFilters, requestSignature },
|
|
21
|
+
* { setFilters, hideFilter, showFilter, setPage, setPerPage, setSort }
|
|
22
|
+
* ]
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
*
|
|
26
|
+
* const [listParams, listParamsActions] = useListParams({
|
|
27
|
+
* resource: 'posts',
|
|
28
|
+
* location: location // From react-router. Injected to your component by react-admin inside a List
|
|
29
|
+
* filterDefaultValues: {
|
|
30
|
+
* published: true
|
|
31
|
+
* },
|
|
32
|
+
* sort: {
|
|
33
|
+
* field: 'published_at',
|
|
34
|
+
* order: 'DESC'
|
|
35
|
+
* },
|
|
36
|
+
* perPage: 25
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* const {
|
|
40
|
+
* page,
|
|
41
|
+
* perPage,
|
|
42
|
+
* sort,
|
|
43
|
+
* order,
|
|
44
|
+
* filter,
|
|
45
|
+
* filterValues,
|
|
46
|
+
* displayedFilters,
|
|
47
|
+
* requestSignature
|
|
48
|
+
* } = listParams;
|
|
49
|
+
*
|
|
50
|
+
* const {
|
|
51
|
+
* setFilters,
|
|
52
|
+
* hideFilter,
|
|
53
|
+
* showFilter,
|
|
54
|
+
* setPage,
|
|
55
|
+
* setPerPage,
|
|
56
|
+
* setSort,
|
|
57
|
+
* } = listParamsActions;
|
|
58
|
+
*/
|
|
59
|
+
export declare const useListParams: ({ debounce, disableSyncWithLocation, filterDefaultValues, perPage, resource, sort, storeKey, }: ListParamsOptions) => [Parameters, Modifiers];
|
|
60
|
+
export declare const parseQueryFromLocation: ({ search }: {
|
|
61
|
+
search: any;
|
|
62
|
+
}) => Partial<ListParams>;
|
|
63
|
+
/**
|
|
64
|
+
* Check if user has already set custom sort, page, or filters for this list
|
|
65
|
+
*
|
|
66
|
+
* User params come from the store as the params props. By default,
|
|
67
|
+
* this object is:
|
|
68
|
+
*
|
|
69
|
+
* { filter: {}, order: null, page: 1, perPage: null, sort: null }
|
|
70
|
+
*
|
|
71
|
+
* To check if the user has custom params, we must compare the params
|
|
72
|
+
* to these initial values.
|
|
73
|
+
*
|
|
74
|
+
* @param {Object} params
|
|
75
|
+
*/
|
|
76
|
+
export declare const hasCustomParams: (params: ListParams) => any;
|
|
77
|
+
/**
|
|
78
|
+
* Merge list params from 3 different sources:
|
|
79
|
+
* - the query string
|
|
80
|
+
* - the params stored in the state (from previous navigation)
|
|
81
|
+
* - the props passed to the List component (including the filter defaultValues)
|
|
82
|
+
*/
|
|
83
|
+
export declare const getQuery: ({ queryFromLocation, params, filterDefaultValues, sort, perPage, }: {
|
|
84
|
+
queryFromLocation: any;
|
|
85
|
+
params: any;
|
|
86
|
+
filterDefaultValues: any;
|
|
87
|
+
sort: any;
|
|
88
|
+
perPage: any;
|
|
89
|
+
}) => ListParams;
|
|
90
|
+
export declare const getNumberOrDefault: (possibleNumber: string | number | undefined, defaultValue: number) => number;
|
|
91
|
+
export interface ListParamsOptions {
|
|
92
|
+
debounce?: number;
|
|
93
|
+
disableSyncWithLocation?: boolean;
|
|
94
|
+
filterDefaultValues?: FilterPayload;
|
|
95
|
+
perPage?: number;
|
|
96
|
+
resource: string;
|
|
97
|
+
sort?: SortPayload;
|
|
98
|
+
storeKey?: string | false;
|
|
99
|
+
}
|
|
100
|
+
interface Parameters extends ListParams {
|
|
101
|
+
filterValues: object;
|
|
102
|
+
displayedFilters: {
|
|
103
|
+
[key: string]: boolean;
|
|
104
|
+
};
|
|
105
|
+
requestSignature: any[];
|
|
106
|
+
}
|
|
107
|
+
interface Modifiers {
|
|
108
|
+
changeParams: (action: any) => void;
|
|
109
|
+
setPage: (page: number) => void;
|
|
110
|
+
setPerPage: (pageSize: number) => void;
|
|
111
|
+
setSort: (sort: SortPayload) => void;
|
|
112
|
+
setFilters: (filters: any, displayedFilters?: any, debounce?: boolean) => void;
|
|
113
|
+
hideFilter: (filterName: string) => void;
|
|
114
|
+
showFilter: (filterName: string, defaultValue: any) => void;
|
|
115
|
+
}
|
|
116
|
+
export {};
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { useCallback, useMemo, useEffect, useState, useRef } from 'react';
|
|
2
|
+
import { parse, stringify } from 'query-string';
|
|
3
|
+
import lodashDebounce from 'lodash/debounce.js';
|
|
4
|
+
import { useStore } from '../../store';
|
|
5
|
+
import { useNavigate, useLocation } from '../../routing';
|
|
6
|
+
import queryReducer, { SET_FILTER, HIDE_FILTER, SHOW_FILTER, SET_PAGE, SET_PER_PAGE, SET_SORT, SORT_ASC, } from './queryReducer';
|
|
7
|
+
import removeEmpty from '../../util/removeEmpty';
|
|
8
|
+
import { useIsMounted } from '../../util/hooks';
|
|
9
|
+
/**
|
|
10
|
+
* Get the list parameters (page, sort, filters) and modifiers.
|
|
11
|
+
*
|
|
12
|
+
* These parameters are merged from 3 sources:
|
|
13
|
+
* - the query string from the URL
|
|
14
|
+
* - the params stored in the state (from previous navigation)
|
|
15
|
+
* - the options passed to the hook (including the filter defaultValues)
|
|
16
|
+
*
|
|
17
|
+
* @returns {Array} A tuple [parameters, modifiers].
|
|
18
|
+
* Destructure as [
|
|
19
|
+
* { page, perPage, sort, order, filter, filterValues, displayedFilters, requestSignature },
|
|
20
|
+
* { setFilters, hideFilter, showFilter, setPage, setPerPage, setSort }
|
|
21
|
+
* ]
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
*
|
|
25
|
+
* const [listParams, listParamsActions] = useListParams({
|
|
26
|
+
* resource: 'posts',
|
|
27
|
+
* location: location // From react-router. Injected to your component by react-admin inside a List
|
|
28
|
+
* filterDefaultValues: {
|
|
29
|
+
* published: true
|
|
30
|
+
* },
|
|
31
|
+
* sort: {
|
|
32
|
+
* field: 'published_at',
|
|
33
|
+
* order: 'DESC'
|
|
34
|
+
* },
|
|
35
|
+
* perPage: 25
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const {
|
|
39
|
+
* page,
|
|
40
|
+
* perPage,
|
|
41
|
+
* sort,
|
|
42
|
+
* order,
|
|
43
|
+
* filter,
|
|
44
|
+
* filterValues,
|
|
45
|
+
* displayedFilters,
|
|
46
|
+
* requestSignature
|
|
47
|
+
* } = listParams;
|
|
48
|
+
*
|
|
49
|
+
* const {
|
|
50
|
+
* setFilters,
|
|
51
|
+
* hideFilter,
|
|
52
|
+
* showFilter,
|
|
53
|
+
* setPage,
|
|
54
|
+
* setPerPage,
|
|
55
|
+
* setSort,
|
|
56
|
+
* } = listParamsActions;
|
|
57
|
+
*/
|
|
58
|
+
export const useListParams = ({ debounce = 500, disableSyncWithLocation = false, filterDefaultValues, perPage = 10, resource, sort = defaultSort, storeKey = disableSyncWithLocation ? false : `${resource}.listParams`, }) => {
|
|
59
|
+
const location = useLocation();
|
|
60
|
+
const navigate = useNavigate();
|
|
61
|
+
const [localParams, setLocalParams] = useState(defaultParams);
|
|
62
|
+
// As we can't conditionally call a hook, if the storeKey is false,
|
|
63
|
+
// we'll ignore the params variable later on and won't call setParams either.
|
|
64
|
+
const [params, setParams] = useStore(storeKey || `${resource}.listParams`, defaultParams);
|
|
65
|
+
const tempParams = useRef(undefined);
|
|
66
|
+
const isMounted = useIsMounted();
|
|
67
|
+
const requestSignature = [
|
|
68
|
+
location.search,
|
|
69
|
+
resource,
|
|
70
|
+
storeKey,
|
|
71
|
+
JSON.stringify(!storeKey ? localParams : params),
|
|
72
|
+
JSON.stringify(filterDefaultValues),
|
|
73
|
+
JSON.stringify(sort),
|
|
74
|
+
perPage,
|
|
75
|
+
disableSyncWithLocation,
|
|
76
|
+
];
|
|
77
|
+
const queryFromLocation = disableSyncWithLocation
|
|
78
|
+
? {}
|
|
79
|
+
: parseQueryFromLocation(location);
|
|
80
|
+
const query = useMemo(() => getQuery({
|
|
81
|
+
queryFromLocation,
|
|
82
|
+
params: !storeKey ? localParams : params,
|
|
83
|
+
filterDefaultValues,
|
|
84
|
+
sort,
|
|
85
|
+
perPage,
|
|
86
|
+
}), requestSignature // eslint-disable-line react-hooks/exhaustive-deps
|
|
87
|
+
);
|
|
88
|
+
// if the location includes params (for example from a link like
|
|
89
|
+
// the categories products on the demo), we need to persist them in the
|
|
90
|
+
// store as well so that we don't lose them after a redirection back
|
|
91
|
+
// to the list
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (Object.keys(queryFromLocation).length > 0) {
|
|
94
|
+
setParams(query);
|
|
95
|
+
}
|
|
96
|
+
}, [location.search]); // eslint-disable-line
|
|
97
|
+
const changeParams = useCallback(action => {
|
|
98
|
+
// do not change params if the component is already unmounted
|
|
99
|
+
// this is necessary because changeParams can be debounced, and therefore
|
|
100
|
+
// executed after the component is unmounted
|
|
101
|
+
if (!isMounted.current)
|
|
102
|
+
return;
|
|
103
|
+
if (!tempParams.current) {
|
|
104
|
+
// no other changeParams action dispatched this tick
|
|
105
|
+
tempParams.current = queryReducer(query, action);
|
|
106
|
+
// schedule side effects for next tick
|
|
107
|
+
setTimeout(() => {
|
|
108
|
+
if (!tempParams.current) {
|
|
109
|
+
// the side effects were already processed by another changeParams
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (disableSyncWithLocation && !storeKey) {
|
|
113
|
+
setLocalParams(tempParams.current);
|
|
114
|
+
}
|
|
115
|
+
else if (disableSyncWithLocation && !!storeKey) {
|
|
116
|
+
setParams(tempParams.current);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// the useEffect above will apply the changes to the params in the store
|
|
120
|
+
navigate({
|
|
121
|
+
search: `?${stringify({
|
|
122
|
+
...tempParams.current,
|
|
123
|
+
filter: JSON.stringify(tempParams.current.filter),
|
|
124
|
+
displayedFilters: JSON.stringify(tempParams.current.displayedFilters),
|
|
125
|
+
})}`,
|
|
126
|
+
}, {
|
|
127
|
+
state: {
|
|
128
|
+
_scrollToTop: action.type === SET_PAGE,
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
tempParams.current = undefined;
|
|
133
|
+
}, 0);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// side effects already scheduled, just change the params
|
|
137
|
+
tempParams.current = queryReducer(tempParams.current, action);
|
|
138
|
+
}
|
|
139
|
+
}, [...requestSignature, navigate] // eslint-disable-line react-hooks/exhaustive-deps
|
|
140
|
+
);
|
|
141
|
+
const setSort = useCallback((sort) => changeParams({
|
|
142
|
+
type: SET_SORT,
|
|
143
|
+
payload: sort,
|
|
144
|
+
}), [changeParams]);
|
|
145
|
+
const setPage = useCallback((newPage) => changeParams({ type: SET_PAGE, payload: newPage }), [changeParams]);
|
|
146
|
+
const setPerPage = useCallback((newPerPage) => changeParams({ type: SET_PER_PAGE, payload: newPerPage }), [changeParams]);
|
|
147
|
+
const filterValues = query.filter || emptyObject;
|
|
148
|
+
const displayedFilterValues = query.displayedFilters || emptyObject;
|
|
149
|
+
const debouncedSetFilters = lodashDebounce((filter, displayedFilters) => {
|
|
150
|
+
changeParams({
|
|
151
|
+
type: SET_FILTER,
|
|
152
|
+
payload: {
|
|
153
|
+
filter: removeEmpty(filter),
|
|
154
|
+
displayedFilters,
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
}, debounce);
|
|
158
|
+
const setFilters = useCallback((filter, displayedFilters = undefined, debounce = false) => debounce
|
|
159
|
+
? debouncedSetFilters(filter, displayedFilters)
|
|
160
|
+
: changeParams({
|
|
161
|
+
type: SET_FILTER,
|
|
162
|
+
payload: {
|
|
163
|
+
filter: removeEmpty(filter),
|
|
164
|
+
displayedFilters,
|
|
165
|
+
},
|
|
166
|
+
}), [changeParams] // eslint-disable-line react-hooks/exhaustive-deps
|
|
167
|
+
);
|
|
168
|
+
const hideFilter = useCallback((filterName) => {
|
|
169
|
+
changeParams({
|
|
170
|
+
type: HIDE_FILTER,
|
|
171
|
+
payload: filterName,
|
|
172
|
+
});
|
|
173
|
+
}, [changeParams]);
|
|
174
|
+
const showFilter = useCallback((filterName, defaultValue) => {
|
|
175
|
+
changeParams({
|
|
176
|
+
type: SHOW_FILTER,
|
|
177
|
+
payload: {
|
|
178
|
+
filterName,
|
|
179
|
+
defaultValue,
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
}, [changeParams]);
|
|
183
|
+
return [
|
|
184
|
+
{
|
|
185
|
+
filterValues,
|
|
186
|
+
requestSignature,
|
|
187
|
+
...query,
|
|
188
|
+
displayedFilters: displayedFilterValues,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
changeParams,
|
|
192
|
+
setPage,
|
|
193
|
+
setPerPage,
|
|
194
|
+
setSort,
|
|
195
|
+
setFilters,
|
|
196
|
+
hideFilter,
|
|
197
|
+
showFilter,
|
|
198
|
+
},
|
|
199
|
+
];
|
|
200
|
+
};
|
|
201
|
+
const parseObject = (query, field) => {
|
|
202
|
+
if (query[field] && typeof query[field] === 'string') {
|
|
203
|
+
try {
|
|
204
|
+
query[field] = JSON.parse(query[field]);
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
delete query[field];
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
export const parseQueryFromLocation = ({ search }) => {
|
|
212
|
+
const query = parse(search);
|
|
213
|
+
parseObject(query, 'filter');
|
|
214
|
+
parseObject(query, 'displayedFilters');
|
|
215
|
+
return query;
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Check if user has already set custom sort, page, or filters for this list
|
|
219
|
+
*
|
|
220
|
+
* User params come from the store as the params props. By default,
|
|
221
|
+
* this object is:
|
|
222
|
+
*
|
|
223
|
+
* { filter: {}, order: null, page: 1, perPage: null, sort: null }
|
|
224
|
+
*
|
|
225
|
+
* To check if the user has custom params, we must compare the params
|
|
226
|
+
* to these initial values.
|
|
227
|
+
*
|
|
228
|
+
* @param {Object} params
|
|
229
|
+
*/
|
|
230
|
+
export const hasCustomParams = (params) => {
|
|
231
|
+
return (params &&
|
|
232
|
+
params.filter &&
|
|
233
|
+
(Object.keys(params.filter).length > 0 ||
|
|
234
|
+
params.order != null ||
|
|
235
|
+
params.page !== 1 ||
|
|
236
|
+
params.perPage != null ||
|
|
237
|
+
params.sort != null));
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* Merge list params from 3 different sources:
|
|
241
|
+
* - the query string
|
|
242
|
+
* - the params stored in the state (from previous navigation)
|
|
243
|
+
* - the props passed to the List component (including the filter defaultValues)
|
|
244
|
+
*/
|
|
245
|
+
export const getQuery = ({ queryFromLocation, params, filterDefaultValues, sort, perPage, }) => {
|
|
246
|
+
const query = Object.keys(queryFromLocation).length > 0
|
|
247
|
+
? queryFromLocation
|
|
248
|
+
: hasCustomParams(params)
|
|
249
|
+
? { ...params }
|
|
250
|
+
: { filter: filterDefaultValues || {} };
|
|
251
|
+
if (!query.sort) {
|
|
252
|
+
query.sort = sort.field;
|
|
253
|
+
query.order = sort.order;
|
|
254
|
+
}
|
|
255
|
+
if (query.perPage == null) {
|
|
256
|
+
query.perPage = perPage;
|
|
257
|
+
}
|
|
258
|
+
if (query.page == null) {
|
|
259
|
+
query.page = 1;
|
|
260
|
+
}
|
|
261
|
+
return {
|
|
262
|
+
...query,
|
|
263
|
+
page: getNumberOrDefault(query.page, 1),
|
|
264
|
+
perPage: getNumberOrDefault(query.perPage, 10),
|
|
265
|
+
};
|
|
266
|
+
};
|
|
267
|
+
export const getNumberOrDefault = (possibleNumber, defaultValue) => {
|
|
268
|
+
if (typeof possibleNumber === 'undefined') {
|
|
269
|
+
return defaultValue;
|
|
270
|
+
}
|
|
271
|
+
const parsedNumber = typeof possibleNumber === 'string'
|
|
272
|
+
? parseInt(possibleNumber, 10)
|
|
273
|
+
: possibleNumber;
|
|
274
|
+
return isNaN(parsedNumber) ? defaultValue : parsedNumber;
|
|
275
|
+
};
|
|
276
|
+
const emptyObject = {};
|
|
277
|
+
const defaultSort = {
|
|
278
|
+
field: 'id',
|
|
279
|
+
order: SORT_ASC,
|
|
280
|
+
};
|
|
281
|
+
const defaultParams = {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ListSortContextValue } from './ListSortContext';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to read the list sort controller props from the ListSortContext.
|
|
4
|
+
*
|
|
5
|
+
* Must be used within a <ListSortContextProvider> (e.g. as a descendent of <List>
|
|
6
|
+
* or <ListBase>).
|
|
7
|
+
*
|
|
8
|
+
* @returns {ListSortContextValue} list controller props
|
|
9
|
+
*
|
|
10
|
+
* @see useListController for how it is filled
|
|
11
|
+
*/
|
|
12
|
+
export declare const useListSortContext: () => ListSortContextValue;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { ListSortContext } from './ListSortContext';
|
|
3
|
+
/**
|
|
4
|
+
* Hook to read the list sort controller props from the ListSortContext.
|
|
5
|
+
*
|
|
6
|
+
* Must be used within a <ListSortContextProvider> (e.g. as a descendent of <List>
|
|
7
|
+
* or <ListBase>).
|
|
8
|
+
*
|
|
9
|
+
* @returns {ListSortContextValue} list controller props
|
|
10
|
+
*
|
|
11
|
+
* @see useListController for how it is filled
|
|
12
|
+
*/
|
|
13
|
+
export const useListSortContext = () => {
|
|
14
|
+
const context = useContext(ListSortContext);
|
|
15
|
+
if (!context) {
|
|
16
|
+
throw new Error('useListSortContext must be used inside a ListSortContextProvider');
|
|
17
|
+
}
|
|
18
|
+
return context;
|
|
19
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { RaRecord } from '../../types';
|
|
2
|
+
type UseRecordSelectionWithResourceArgs = {
|
|
3
|
+
resource: string;
|
|
4
|
+
storeKey?: string;
|
|
5
|
+
disableSyncWithStore?: false;
|
|
6
|
+
};
|
|
7
|
+
type UseRecordSelectionWithNoStoreArgs = {
|
|
8
|
+
resource?: string;
|
|
9
|
+
storeKey?: string;
|
|
10
|
+
disableSyncWithStore: true;
|
|
11
|
+
};
|
|
12
|
+
export type UseRecordSelectionArgs = UseRecordSelectionWithResourceArgs | UseRecordSelectionWithNoStoreArgs;
|
|
13
|
+
export type UseRecordSelectionResult<RecordType extends RaRecord = any> = [
|
|
14
|
+
RecordType['id'][],
|
|
15
|
+
{
|
|
16
|
+
select: (ids: RecordType['id'][]) => void;
|
|
17
|
+
unselect: (ids: RecordType['id'][], fromAllStoreKeys?: boolean) => void;
|
|
18
|
+
toggle: (id: RecordType['id']) => void;
|
|
19
|
+
clearSelection: (fromAllStoreKeys?: boolean) => void;
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
/**
|
|
23
|
+
* Get the list of selected items for a resource, and callbacks to change the selection
|
|
24
|
+
*
|
|
25
|
+
* @param args.resource The resource name, e.g. 'posts'
|
|
26
|
+
* @param args.storeKey The key to use to store selected items. Pass false to disable synchronization with the store.
|
|
27
|
+
* @param args.disableSyncWithStore Controls the selection synchronization with the store
|
|
28
|
+
*
|
|
29
|
+
* @returns {Object} Destructure as [selectedIds, { select, unselect, toggle, clearSelection }].
|
|
30
|
+
*/
|
|
31
|
+
export declare const useRecordSelection: <RecordType extends RaRecord = any>(args: UseRecordSelectionArgs) => UseRecordSelectionResult<RecordType>;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { useStore, useStoreContext } from '../../store';
|
|
3
|
+
/**
|
|
4
|
+
* Get the list of selected items for a resource, and callbacks to change the selection
|
|
5
|
+
*
|
|
6
|
+
* @param args.resource The resource name, e.g. 'posts'
|
|
7
|
+
* @param args.storeKey The key to use to store selected items. Pass false to disable synchronization with the store.
|
|
8
|
+
* @param args.disableSyncWithStore Controls the selection synchronization with the store
|
|
9
|
+
*
|
|
10
|
+
* @returns {Object} Destructure as [selectedIds, { select, unselect, toggle, clearSelection }].
|
|
11
|
+
*/
|
|
12
|
+
export const useRecordSelection = (args) => {
|
|
13
|
+
const { resource = '', storeKey, disableSyncWithStore } = args;
|
|
14
|
+
const finalStoreKey = `${storeKey || resource}.selectedIds`;
|
|
15
|
+
const [localSelectionStore, setLocalSelectionStore] = useState(defaultIds);
|
|
16
|
+
// As we can't conditionally call a hook, if the disableSyncWithStore is true,
|
|
17
|
+
// we'll ignore the useStore values later on and won't call set functions either.
|
|
18
|
+
const [selectionStore, setSelectionStore] = useStore(finalStoreKey, defaultIds);
|
|
19
|
+
const [storeKeys, setStoreKeys] = useStore(`${resource}.selectedIds.storeKeys`, defaultStoreKeys);
|
|
20
|
+
useEffect(function addStoreKeyToStore() {
|
|
21
|
+
if (!disableSyncWithStore && storeKey) {
|
|
22
|
+
setStoreKeys(storeKeys => {
|
|
23
|
+
if (!storeKeys.includes(finalStoreKey)) {
|
|
24
|
+
return [...storeKeys, finalStoreKey];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return storeKeys;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}, [disableSyncWithStore, finalStoreKey, setStoreKeys, storeKey]);
|
|
32
|
+
const { getItem, setItem } = useStoreContext();
|
|
33
|
+
const ids = disableSyncWithStore ? localSelectionStore : selectionStore;
|
|
34
|
+
const setStore = useMemo(() => disableSyncWithStore ? setLocalSelectionStore : setSelectionStore, [disableSyncWithStore, setSelectionStore]);
|
|
35
|
+
const selectionModifiers = useMemo(() => ({
|
|
36
|
+
select: (idsToSelect) => {
|
|
37
|
+
if (!idsToSelect)
|
|
38
|
+
return;
|
|
39
|
+
setStore(idsToSelect);
|
|
40
|
+
},
|
|
41
|
+
unselect(idsToRemove, fromAllStoreKeys) {
|
|
42
|
+
if (!idsToRemove || idsToRemove.length === 0)
|
|
43
|
+
return;
|
|
44
|
+
setStore(ids => ids.filter(id => !idsToRemove.includes(id)));
|
|
45
|
+
if (!disableSyncWithStore && fromAllStoreKeys) {
|
|
46
|
+
storeKeys
|
|
47
|
+
.filter(storeKey => storeKey !== finalStoreKey)
|
|
48
|
+
.forEach(storeKey => {
|
|
49
|
+
const ids = getItem(storeKey);
|
|
50
|
+
if (ids) {
|
|
51
|
+
setItem(storeKey, ids.filter(id => !idsToRemove.includes(id)));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
toggle: (id) => {
|
|
57
|
+
if (typeof id === 'undefined')
|
|
58
|
+
return;
|
|
59
|
+
setStore(ids => {
|
|
60
|
+
if (!Array.isArray(ids))
|
|
61
|
+
return [...ids];
|
|
62
|
+
const index = ids.indexOf(id);
|
|
63
|
+
const hasId = index > -1;
|
|
64
|
+
return hasId
|
|
65
|
+
? [...ids.slice(0, index), ...ids.slice(index + 1)]
|
|
66
|
+
: [...ids, id];
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
clearSelection: (fromAllStoreKeys) => {
|
|
70
|
+
setStore(defaultIds);
|
|
71
|
+
if (!disableSyncWithStore && fromAllStoreKeys) {
|
|
72
|
+
storeKeys
|
|
73
|
+
.filter(storeKey => storeKey !== finalStoreKey)
|
|
74
|
+
.forEach(storeKey => {
|
|
75
|
+
const ids = getItem(storeKey);
|
|
76
|
+
if (ids) {
|
|
77
|
+
setItem(storeKey, defaultIds);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
}), [
|
|
83
|
+
disableSyncWithStore,
|
|
84
|
+
finalStoreKey,
|
|
85
|
+
getItem,
|
|
86
|
+
setItem,
|
|
87
|
+
setStore,
|
|
88
|
+
storeKeys,
|
|
89
|
+
]);
|
|
90
|
+
return [ids, selectionModifiers];
|
|
91
|
+
};
|
|
92
|
+
const defaultIds = [];
|
|
93
|
+
const defaultStoreKeys = [];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SortPayload } from '../../types';
|
|
2
|
+
export declare const useSavedQueries: (resource: string) => [SavedQuery[], (value: SavedQuery[] | ((value: SavedQuery[]) => void), defaultValue?: SavedQuery[] | undefined) => void];
|
|
3
|
+
export interface SavedQuery {
|
|
4
|
+
label: string;
|
|
5
|
+
value: {
|
|
6
|
+
filter?: any;
|
|
7
|
+
displayedFilters?: any[];
|
|
8
|
+
sort?: SortPayload;
|
|
9
|
+
perPage?: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare const extractValidSavedQueries: (savedQueries: SavedQuery[]) => SavedQuery[];
|
|
13
|
+
export declare const areValidSavedQueries: (savedQueries: SavedQuery[]) => true | undefined;
|
|
14
|
+
export declare const isValidSavedQuery: (savedQuery: SavedQuery) => boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useStore } from '../../store/useStore';
|
|
2
|
+
export const useSavedQueries = (resource) => {
|
|
3
|
+
return useStore(`${resource}.savedQueries`, []);
|
|
4
|
+
};
|
|
5
|
+
export const extractValidSavedQueries = (savedQueries) => {
|
|
6
|
+
if (Array.isArray(savedQueries)) {
|
|
7
|
+
return savedQueries.filter(query => isValidSavedQuery(query));
|
|
8
|
+
}
|
|
9
|
+
return [];
|
|
10
|
+
};
|
|
11
|
+
export const areValidSavedQueries = (savedQueries) => {
|
|
12
|
+
if (Array.isArray(savedQueries) &&
|
|
13
|
+
savedQueries.every(query => isValidSavedQuery(query))) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export const isValidSavedQuery = (savedQuery) => {
|
|
18
|
+
if (savedQuery.label &&
|
|
19
|
+
typeof savedQuery.label === 'string' &&
|
|
20
|
+
savedQuery.value &&
|
|
21
|
+
typeof Array.isArray(savedQuery.value.displayedFilters) &&
|
|
22
|
+
typeof savedQuery.value.perPage === 'number' &&
|
|
23
|
+
typeof savedQuery.value.sort?.field === 'string' &&
|
|
24
|
+
typeof savedQuery.value.sort?.order === 'string' &&
|
|
25
|
+
typeof savedQuery.value.filter === 'object') {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Identifier } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to Unselect the rows of a datagrid
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
*
|
|
7
|
+
* const unselect = useUnselect('posts');
|
|
8
|
+
* unselect([123, 456]);
|
|
9
|
+
*/
|
|
10
|
+
export declare const useUnselect: (resource?: string, storeKey?: string) => (ids: Identifier[], fromAllStoreKeys?: boolean) => void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useRecordSelection } from './useRecordSelection';
|
|
3
|
+
/**
|
|
4
|
+
* Hook to Unselect the rows of a datagrid
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* const unselect = useUnselect('posts');
|
|
9
|
+
* unselect([123, 456]);
|
|
10
|
+
*/
|
|
11
|
+
export const useUnselect = (resource, storeKey) => {
|
|
12
|
+
const [, { unselect }] = useRecordSelection(resource
|
|
13
|
+
? { resource, storeKey }
|
|
14
|
+
: { disableSyncWithStore: true, storeKey });
|
|
15
|
+
return useCallback((ids, fromAllStoreKeys = false) => {
|
|
16
|
+
unselect(ids, fromAllStoreKeys);
|
|
17
|
+
}, [unselect]);
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useRecordSelection } from './useRecordSelection';
|
|
3
|
+
/**
|
|
4
|
+
* Hook to unselect all row of a datagrid
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* const unselectAll = useUnselectAll('posts');
|
|
9
|
+
* unselectAll();
|
|
10
|
+
*/
|
|
11
|
+
export const useUnselectAll = (resource, storeKey) => {
|
|
12
|
+
const [, { clearSelection }] = useRecordSelection(resource
|
|
13
|
+
? { resource, storeKey }
|
|
14
|
+
: { disableSyncWithStore: true, storeKey });
|
|
15
|
+
return useCallback((fromAllStoreKeys) => {
|
|
16
|
+
clearSelection(fromAllStoreKeys);
|
|
17
|
+
}, [clearSelection]);
|
|
18
|
+
};
|