revdev-components 0.30.0 → 0.32.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,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { FormRule } from "antd";
3
3
  import { NamePath } from "antd/es/form/interface";
4
- export declare function useLineProps<T extends FormLineProps>({ lineClassName, name, label, rules, valuePropName, noStyle, hasFeedback, ...rest }: T): [FormLineProps, Omit<T, "lineClassName" | "name" | "label" | "rules" | "valuePropName" | "noStyle" | "hasFeedback">];
4
+ export declare function useLineProps<T extends FormLineProps>({ lineClassName, name, label, rules, valuePropName, noStyle, hasFeedback, dependencies, ...rest }: T): [FormLineProps, Omit<T, "lineClassName" | "name" | "label" | "rules" | "valuePropName" | "noStyle" | "hasFeedback" | "dependencies">];
5
5
  export interface FormLineProps {
6
6
  lineClassName?: string;
7
7
  name: NamePath;
@@ -10,6 +10,7 @@ export interface FormLineProps {
10
10
  valuePropName?: string;
11
11
  noStyle?: boolean;
12
12
  hasFeedback?: boolean;
13
+ dependencies?: NamePath[];
13
14
  }
14
15
  export declare const FormLine: React.FC<FormLineProps & {
15
16
  children?: React.ReactNode;
@@ -0,0 +1,3 @@
1
+ export * from "./interfaces";
2
+ export * from "./lazy";
3
+ export * from "./mutation";
@@ -0,0 +1,19 @@
1
+ export declare enum ApiStatus {
2
+ Loading = 0,
3
+ Error = 1,
4
+ Success = 2,
5
+ NotFound = 3
6
+ }
7
+ export type ApiResponse<TResponse> = {
8
+ data?: TResponse;
9
+ isLoading: boolean;
10
+ isSuccess: boolean;
11
+ };
12
+ export type ApiRequestMethod<TRequest> = (request: TRequest) => void;
13
+ export interface ApiMutationResponse<TResponse, TRequest> {
14
+ request: ApiRequestMethod<TRequest>;
15
+ response?: TResponse;
16
+ status: ApiStatus;
17
+ }
18
+ export type ApiLazyQueryMethod<TResponse, TRequest> = () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse>, any];
19
+ export type ApiMutationMethod<TResponse, TRequest> = () => readonly [ApiRequestMethod<TRequest>, ApiResponse<TResponse>];
@@ -0,0 +1,2 @@
1
+ import { ApiLazyQueryMethod, ApiStatus } from "./interfaces";
2
+ export declare function useApiLazy<TResponse, TRequest>(request: TRequest | undefined, useLazyQuery: ApiLazyQueryMethod<TResponse, TRequest>): [TResponse | undefined, ApiStatus];
@@ -0,0 +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>;
@@ -2,3 +2,4 @@ export * from "./debounce";
2
2
  export * from "./form-rules";
3
3
  export * from "./mount";
4
4
  export * from "./router";
5
+ export * from "./api";
package/build/index.js CHANGED
@@ -4640,8 +4640,8 @@ function AppForm(_a) {
4640
4640
  var s$g = {"root":"index-module_root__2S1Jp"};
4641
4641
 
4642
4642
  function useLineProps(_a) {
4643
- var lineClassName = _a.lineClassName, name = _a.name, label = _a.label, rules = _a.rules, valuePropName = _a.valuePropName, noStyle = _a.noStyle, hasFeedback = _a.hasFeedback, rest = __rest(_a, ["lineClassName", "name", "label", "rules", "valuePropName", "noStyle", "hasFeedback"]);
4644
- return [{ lineClassName: lineClassName, name: name, label: label, rules: rules, valuePropName: valuePropName, noStyle: noStyle, hasFeedback: hasFeedback }, rest];
4643
+ var lineClassName = _a.lineClassName, name = _a.name, label = _a.label, rules = _a.rules, valuePropName = _a.valuePropName, noStyle = _a.noStyle, hasFeedback = _a.hasFeedback, dependencies = _a.dependencies, rest = __rest(_a, ["lineClassName", "name", "label", "rules", "valuePropName", "noStyle", "hasFeedback", "dependencies"]);
4644
+ return [{ lineClassName: lineClassName, name: name, label: label, rules: rules, valuePropName: valuePropName, noStyle: noStyle, hasFeedback: hasFeedback, dependencies: dependencies }, rest];
4645
4645
  }
4646
4646
  var FormLine = function (_a) {
4647
4647
  var className = _a.lineClassName, validateRules = _a.rules, props = __rest(_a, ["lineClassName", "rules"]);
@@ -4754,6 +4754,57 @@ function useRouterQuery() {
4754
4754
  return query;
4755
4755
  }
4756
4756
 
4757
+ exports.ApiStatus = void 0;
4758
+ (function (ApiStatus) {
4759
+ ApiStatus[ApiStatus["Loading"] = 0] = "Loading";
4760
+ ApiStatus[ApiStatus["Error"] = 1] = "Error";
4761
+ ApiStatus[ApiStatus["Success"] = 2] = "Success";
4762
+ ApiStatus[ApiStatus["NotFound"] = 3] = "NotFound";
4763
+ })(exports.ApiStatus || (exports.ApiStatus = {}));
4764
+
4765
+ function useApiLazy(request, useLazyQuery) {
4766
+ var _a = React.useState(exports.ApiStatus.Loading), status = _a[0], setStatus = _a[1];
4767
+ var _b = useLazyQuery(), requestMethod = _b[0], responseObject = _b[1];
4768
+ React.useEffect(function () {
4769
+ if (request) {
4770
+ requestMethod(request);
4771
+ }
4772
+ }, [requestMethod, request]);
4773
+ React.useEffect(function () {
4774
+ if (responseObject.isSuccess) {
4775
+ var data = responseObject.data;
4776
+ if (data) {
4777
+ setStatus(exports.ApiStatus.Success);
4778
+ }
4779
+ else {
4780
+ setStatus(exports.ApiStatus.NotFound);
4781
+ }
4782
+ }
4783
+ }, [responseObject]);
4784
+ return [responseObject.data, status];
4785
+ }
4786
+
4787
+ function useApiMutation(useMutation, success) {
4788
+ var _a = React.useState(exports.ApiStatus.Loading), status = _a[0], setStatus = _a[1];
4789
+ var _b = useMutation(), requestMethod = _b[0], responseObject = _b[1];
4790
+ React.useEffect(function () {
4791
+ if (responseObject.isSuccess) {
4792
+ var data = responseObject.data;
4793
+ if (data) {
4794
+ success === null || success === void 0 ? void 0 : success(data);
4795
+ }
4796
+ setStatus(exports.ApiStatus.Success);
4797
+ }
4798
+ }, [responseObject]);
4799
+ return React.useMemo(function () {
4800
+ return {
4801
+ request: requestMethod,
4802
+ response: responseObject.data,
4803
+ status: status,
4804
+ };
4805
+ }, [requestMethod, responseObject, status]);
4806
+ }
4807
+
4757
4808
  var s$d = {"root":"index-module_root__f8fnA"};
4758
4809
 
4759
4810
  var DivisionRow = function (_a) {
@@ -5013,6 +5064,8 @@ exports.SelectField = SelectField;
5013
5064
  exports.SocialIcon = SocialIcon;
5014
5065
  exports.SocialIconNameList = SocialIconNameList;
5015
5066
  exports.TextAreaField = TextAreaField;
5067
+ exports.useApiLazy = useApiLazy;
5068
+ exports.useApiMutation = useApiMutation;
5016
5069
  exports.useAppFormRules = useAppFormRules;
5017
5070
  exports.useDebounceEffect = useDebounceEffect;
5018
5071
  exports.useDidMount = useDidMount;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "revdev-components",
3
- "version": "0.30.0",
3
+ "version": "0.32.0",
4
4
  "main": "build/index.js",
5
5
  "module": "build/index.esm.js",
6
6
  "scripts": {