eddev 0.1.44-beta-1 → 0.1.44-beta-2

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,11 +1,16 @@
1
- declare type GravityFormsField = {
1
+ export declare type GravityFormsField = {
2
2
  type: string;
3
3
  id: number;
4
4
  label: string;
5
+ isRequired: boolean;
5
6
  } & {
6
7
  [key: string]: any;
7
8
  };
8
9
  export declare type GravityFormData = {
10
+ id: number;
9
11
  fields: GravityFormsField[];
12
+ title: string;
13
+ button: {
14
+ text: string;
15
+ };
10
16
  };
11
- export {};
@@ -1 +1,2 @@
1
1
  export * from "./useGravityForm";
2
+ export * from "./gravity-forms";
@@ -11,3 +11,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./useGravityForm"), exports);
14
+ __exportStar(require("./gravity-forms"), exports);
@@ -1,16 +1,15 @@
1
+ import { GravityFormsField } from ".";
1
2
  import { GravityFormData } from "./gravity-forms";
2
3
  declare type Options = {
3
4
  form: GravityFormData;
4
5
  };
6
+ export declare type GravityFormsFieldState<T = any> = GravityFormsField & {
7
+ value: T | undefined;
8
+ error: string | undefined;
9
+ set(value: T | undefined): void;
10
+ };
5
11
  export declare function useGravityForm(opts: Options): {
6
- fields: {
7
- value: any;
8
- error: string | undefined;
9
- set: (value: any) => void;
10
- type: string;
11
- id: number;
12
- label: string;
13
- }[];
12
+ fields: GravityFormsFieldState<any>[];
14
13
  submit(): void;
15
14
  updateField(id: number, value: any): void;
16
15
  submitting: boolean;
@@ -52,20 +52,20 @@ var react_1 = require("react");
52
52
  var react_2 = require("react");
53
53
  var react_3 = require("react");
54
54
  var reducer = function (state, action) {
55
- var _a, _b;
55
+ var _a, _b, _c;
56
56
  switch (action.type) {
57
57
  case "field":
58
- return __assign(__assign({}, state), { values: __assign(__assign({}, state.values), (_a = {}, _a[action.id] = action.value, _a)) });
58
+ return __assign(__assign({}, state), { errors: __assign(__assign({}, state.errors), (_a = {}, _a[action.id] = undefined, _a)), values: __assign(__assign({}, state.values), (_b = {}, _b[action.id] = action.value, _b)) });
59
59
  case "submitting":
60
60
  return __assign(__assign({}, state), { errors: {}, validity: {}, hasErrors: false, submitting: true });
61
61
  case "success":
62
62
  return __assign(__assign({}, state), { submitting: false, complete: true, errors: {}, validity: {}, hasErrors: false, successMessage: action.message });
63
63
  case "mainError":
64
- return __assign(__assign({}, state), { hasErrors: true, mainError: action.message });
64
+ return __assign(__assign({}, state), { submitting: false, hasErrors: true, mainError: action.message });
65
65
  case "errors":
66
- return __assign(__assign({}, state), { hasErrors: true, errors: action.errors });
66
+ return __assign(__assign({}, state), { submitting: false, hasErrors: true, errors: action.errors });
67
67
  case "clearError":
68
- return __assign(__assign({}, state), { errors: __assign(__assign({}, state.errors), (_b = {}, _b[action.id] = undefined, _b)) });
68
+ return __assign(__assign({}, state), { submitting: false, errors: __assign(__assign({}, state.errors), (_c = {}, _c[action.id] = undefined, _c)) });
69
69
  default:
70
70
  throw new Error("Unknown GravityForms action ".concat(JSON.stringify(action)));
71
71
  }
@@ -96,6 +96,7 @@ function useGravityForm(opts) {
96
96
  submit: function (state) {
97
97
  dispatch({ type: "submitting" });
98
98
  submit(form, state).then(function (result) {
99
+ console.log("RESULT", result);
99
100
  if (cancelled)
100
101
  return;
101
102
  if (result.success) {
@@ -113,7 +114,7 @@ function useGravityForm(opts) {
113
114
  return function () {
114
115
  cancelled = true;
115
116
  };
116
- });
117
+ }, []);
117
118
  return __assign(__assign({}, state), { fields: fields, submit: function () {
118
119
  submitter === null || submitter === void 0 ? void 0 : submitter.submit(state);
119
120
  }, updateField: function (id, value) {
@@ -121,6 +122,14 @@ function useGravityForm(opts) {
121
122
  } });
122
123
  }
123
124
  exports.useGravityForm = useGravityForm;
125
+ function prepareValuesPayload(form, state, data) {
126
+ for (var _i = 0, _a = form.fields; _i < _a.length; _i++) {
127
+ var field = _a[_i];
128
+ var value = state.values[field.id];
129
+ data["input_" + field.id] = value;
130
+ }
131
+ return data;
132
+ }
124
133
  function submit(form, state) {
125
134
  return __awaiter(this, void 0, void 0, function () {
126
135
  var url, params, result, payload, err_1;
@@ -128,8 +137,12 @@ function submit(form, state) {
128
137
  switch (_a.label) {
129
138
  case 0:
130
139
  _a.trys.push([0, 3, , 4]);
140
+ console.log("Submitting", { form: form, state: state });
131
141
  url = "/wp-json/ed/v1/gf/submit";
132
- params = {};
142
+ params = {
143
+ formID: form.id,
144
+ values: prepareValuesPayload(form, state, {}),
145
+ };
133
146
  return [4 /*yield*/, fetch(url, {
134
147
  method: "POST",
135
148
  headers: {
@@ -143,7 +156,17 @@ function submit(form, state) {
143
156
  return [4 /*yield*/, result.json()];
144
157
  case 2:
145
158
  payload = _a.sent();
146
- return [2 /*return*/, payload];
159
+ if (!payload.is_valid) {
160
+ return [2 /*return*/, __assign(__assign({}, payload), { success: false, errors: payload.validation_messages })];
161
+ }
162
+ else if (payload.is_valid) {
163
+ return [2 /*return*/, __assign(__assign({}, payload), { success: true, successMessage: payload.confirmation_message })];
164
+ }
165
+ else {
166
+ console.error("Not sure what to do with GF response", payload);
167
+ return [2 /*return*/, __assign({}, payload)];
168
+ }
169
+ return [3 /*break*/, 4];
147
170
  case 3:
148
171
  err_1 = _a.sent();
149
172
  console.error(err_1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "0.1.44-beta-1",
3
+ "version": "0.1.44-beta-2",
4
4
  "main": "./index.js",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -87,7 +87,7 @@
87
87
  "zustand": "^3.5.10"
88
88
  },
89
89
  "peerDependencies": {
90
- "react": "^17.0.2",
91
- "react-dom": "^17.0.2"
90
+ "react": "^18.0.0-rc.0",
91
+ "react-dom": "^18.0.0-rc.0"
92
92
  }
93
93
  }