revdev-components 0.32.0 → 0.34.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.
@@ -1,3 +1,4 @@
1
1
  export * from "./interfaces";
2
- export * from "./lazy";
2
+ export * from "./lazy-object";
3
+ export * from "./lazy-query";
3
4
  export * from "./mutation";
@@ -4,10 +4,11 @@ export declare enum ApiStatus {
4
4
  Success = 2,
5
5
  NotFound = 3
6
6
  }
7
- export type ApiResponse<TResponse> = {
7
+ export type ApiResponse<TResponse, TRequest> = {
8
8
  data?: TResponse;
9
9
  isLoading: boolean;
10
10
  isSuccess: boolean;
11
+ originalArgs?: TRequest;
11
12
  };
12
13
  export type ApiRequestMethod<TRequest> = (request: TRequest) => void;
13
14
  export interface ApiMutationResponse<TResponse, TRequest> {
@@ -15,5 +16,5 @@ export interface ApiMutationResponse<TResponse, TRequest> {
15
16
  response?: TResponse;
16
17
  status: ApiStatus;
17
18
  }
18
- export type ApiLazyQueryMethod<TResponse, TRequest> = () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse>, any];
19
- export type ApiMutationMethod<TResponse, TRequest> = () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse>];
19
+ export type ApiLazyQueryMethod<TResponse, TRequest> = () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse, TRequest>, any];
20
+ export type ApiMutationMethod<TResponse, TRequest> = () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse, TRequest>];
@@ -0,0 +1,2 @@
1
+ import { ApiLazyQueryMethod } from "./interfaces";
2
+ export declare function useApiLazyQueryRequest<TResponse, TRequest>(request: TRequest | undefined, useLazyQuery: ApiLazyQueryMethod<TResponse, TRequest>): import("./interfaces").ApiMutationResponse<TResponse, TRequest>;
@@ -0,0 +1,2 @@
1
+ import { ApiLazyQueryMethod } from ".";
2
+ export declare function useApiLazyQuery<TResponse, TRequest>(useLazyQuery: ApiLazyQueryMethod<TResponse, TRequest>, success?: (response: TResponse) => void): import("./interfaces").ApiMutationResponse<TResponse, TRequest>;
@@ -1,2 +1,2 @@
1
- import { ApiMutationResponse, ApiRequestMethod, ApiResponse } from ".";
2
- export declare function useApiMutation<TResponse, TRequest>(useMutation: () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse>], success?: (response: TResponse) => void): ApiMutationResponse<TResponse, TRequest>;
1
+ import { ApiMutationMethod } from ".";
2
+ export declare function useApiMutation<TResponse, TRequest>(useMutation: ApiMutationMethod<TResponse, TRequest>, success?: (response: TResponse) => void): import("./interfaces").ApiMutationResponse<TResponse, TRequest>;
@@ -0,0 +1,2 @@
1
+ import { ApiMutationResponse, ApiRequestMethod, ApiResponse, ApiStatus } from "./interfaces";
2
+ export declare function useApiResponse<TResponse, TRequest>(requestMethod: ApiRequestMethod<TRequest>, responseObject: ApiResponse<TResponse, TRequest>, status: ApiStatus): ApiMutationResponse<TResponse, TRequest>;
package/build/index.js CHANGED
@@ -4762,7 +4762,18 @@ exports.ApiStatus = void 0;
4762
4762
  ApiStatus[ApiStatus["NotFound"] = 3] = "NotFound";
4763
4763
  })(exports.ApiStatus || (exports.ApiStatus = {}));
4764
4764
 
4765
- function useApiLazy(request, useLazyQuery) {
4765
+ function useApiResponse(requestMethod, responseObject, status) {
4766
+ return React.useMemo(function () {
4767
+ return {
4768
+ request: requestMethod,
4769
+ response: responseObject.data,
4770
+ originalArgs: responseObject.originalArgs,
4771
+ status: status,
4772
+ };
4773
+ }, [requestMethod, responseObject, status]);
4774
+ }
4775
+
4776
+ function useApiLazyQueryRequest(request, useLazyQuery) {
4766
4777
  var _a = React.useState(exports.ApiStatus.Loading), status = _a[0], setStatus = _a[1];
4767
4778
  var _b = useLazyQuery(), requestMethod = _b[0], responseObject = _b[1];
4768
4779
  React.useEffect(function () {
@@ -4781,7 +4792,22 @@ function useApiLazy(request, useLazyQuery) {
4781
4792
  }
4782
4793
  }
4783
4794
  }, [responseObject]);
4784
- return [responseObject.data, status];
4795
+ return useApiResponse(requestMethod, responseObject, status);
4796
+ }
4797
+
4798
+ function useApiLazyQuery(useLazyQuery, success) {
4799
+ var _a = React.useState(exports.ApiStatus.Loading), status = _a[0], setStatus = _a[1];
4800
+ var _b = useLazyQuery(), requestMethod = _b[0], responseObject = _b[1];
4801
+ React.useEffect(function () {
4802
+ if (responseObject.isSuccess) {
4803
+ var data = responseObject.data;
4804
+ if (data) {
4805
+ success === null || success === void 0 ? void 0 : success(data);
4806
+ }
4807
+ setStatus(exports.ApiStatus.Success);
4808
+ }
4809
+ }, [responseObject]);
4810
+ return useApiResponse(requestMethod, responseObject, status);
4785
4811
  }
4786
4812
 
4787
4813
  function useApiMutation(useMutation, success) {
@@ -4796,13 +4822,7 @@ function useApiMutation(useMutation, success) {
4796
4822
  setStatus(exports.ApiStatus.Success);
4797
4823
  }
4798
4824
  }, [responseObject]);
4799
- return React.useMemo(function () {
4800
- return {
4801
- request: requestMethod,
4802
- response: responseObject.data,
4803
- status: status,
4804
- };
4805
- }, [requestMethod, responseObject, status]);
4825
+ return useApiResponse(requestMethod, responseObject, status);
4806
4826
  }
4807
4827
 
4808
4828
  var s$d = {"root":"index-module_root__f8fnA"};
@@ -5064,7 +5084,8 @@ exports.SelectField = SelectField;
5064
5084
  exports.SocialIcon = SocialIcon;
5065
5085
  exports.SocialIconNameList = SocialIconNameList;
5066
5086
  exports.TextAreaField = TextAreaField;
5067
- exports.useApiLazy = useApiLazy;
5087
+ exports.useApiLazyQuery = useApiLazyQuery;
5088
+ exports.useApiLazyQueryRequest = useApiLazyQueryRequest;
5068
5089
  exports.useApiMutation = useApiMutation;
5069
5090
  exports.useAppFormRules = useAppFormRules;
5070
5091
  exports.useDebounceEffect = useDebounceEffect;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "revdev-components",
3
- "version": "0.32.0",
3
+ "version": "0.34.0",
4
4
  "main": "build/index.js",
5
5
  "module": "build/index.esm.js",
6
6
  "scripts": {
@@ -1,2 +0,0 @@
1
- import { ApiLazyQueryMethod, ApiStatus } from "./interfaces";
2
- export declare function useApiLazy<TResponse, TRequest>(request: TRequest | undefined, useLazyQuery: ApiLazyQueryMethod<TResponse, TRequest>): [TResponse | undefined, ApiStatus];