@queuezero/react 0.1.6 → 0.1.7

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/index.js CHANGED
@@ -233,34 +233,79 @@ function WaitlistForm({
233
233
  "aria-label": !showLabel ? labelText : void 0
234
234
  }
235
235
  ) }),
236
- !configLoading && config?.formFields?.map((field) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "qz-form-row", children: [
237
- showLabel && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("label", { className: "qz-form-label", children: field.label }),
238
- field.type === "select" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
239
- "select",
240
- {
241
- value: formData[field.key] || "",
242
- onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
243
- disabled: loading,
244
- required: field.required,
245
- className: "qz-form-select",
246
- children: [
247
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("option", { value: "", children: field.placeholder || `Select ${field.label}` }),
248
- field.options?.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("option", { value: opt, children: opt }, opt))
249
- ]
250
- }
251
- ) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
252
- "input",
253
- {
254
- type: field.type === "number" ? "number" : "text",
255
- value: formData[field.key] || "",
256
- onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
257
- placeholder: field.placeholder || field.label,
258
- disabled: loading,
259
- required: field.required,
260
- className: "qz-form-input"
236
+ !configLoading && config?.formFields?.map((field) => {
237
+ if (field.key === "email") return null;
238
+ const renderFieldInput = () => {
239
+ switch (field.type) {
240
+ case "select":
241
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
242
+ "select",
243
+ {
244
+ value: formData[field.key] || "",
245
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
246
+ disabled: loading,
247
+ required: field.required,
248
+ className: "qz-form-select",
249
+ children: [
250
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("option", { value: "", children: field.placeholder || `Select ${field.label}` }),
251
+ field.options?.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("option", { value: opt, children: opt }, opt))
252
+ ]
253
+ }
254
+ );
255
+ case "checkbox":
256
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("label", { className: "qz-form-checkbox-label", children: [
257
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
258
+ "input",
259
+ {
260
+ type: "checkbox",
261
+ checked: formData[field.key] === "true",
262
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.checked ? "true" : "" })),
263
+ disabled: loading,
264
+ required: field.required,
265
+ className: "qz-form-checkbox"
266
+ }
267
+ ),
268
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { children: [
269
+ field.label,
270
+ field.required && " *"
271
+ ] })
272
+ ] });
273
+ case "textarea":
274
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
275
+ "textarea",
276
+ {
277
+ value: formData[field.key] || "",
278
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
279
+ placeholder: field.placeholder || field.label,
280
+ disabled: loading,
281
+ required: field.required,
282
+ className: "qz-form-textarea",
283
+ rows: 3
284
+ }
285
+ );
286
+ default:
287
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
288
+ "input",
289
+ {
290
+ type: field.type === "number" ? "number" : "text",
291
+ value: formData[field.key] || "",
292
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
293
+ placeholder: field.placeholder || field.label,
294
+ disabled: loading,
295
+ required: field.required,
296
+ className: "qz-form-input"
297
+ }
298
+ );
261
299
  }
262
- )
263
- ] }, field.key)),
300
+ };
301
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "qz-form-row", children: [
302
+ showLabel && field.type !== "checkbox" && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("label", { className: "qz-form-label", children: [
303
+ field.label,
304
+ field.required && " *"
305
+ ] }),
306
+ renderFieldInput()
307
+ ] }, field.key);
308
+ }),
264
309
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "qz-form-row", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "submit", disabled: loading, className: "qz-form-button", children: loading ? loadingText : buttonText }) }),
265
310
  displayError && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "qz-form-error", role: "alert", children: displayError.message }),
266
311
  children
package/dist/index.mjs CHANGED
@@ -199,34 +199,79 @@ function WaitlistForm({
199
199
  "aria-label": !showLabel ? labelText : void 0
200
200
  }
201
201
  ) }),
202
- !configLoading && config?.formFields?.map((field) => /* @__PURE__ */ jsxs("div", { className: "qz-form-row", children: [
203
- showLabel && /* @__PURE__ */ jsx2("label", { className: "qz-form-label", children: field.label }),
204
- field.type === "select" ? /* @__PURE__ */ jsxs(
205
- "select",
206
- {
207
- value: formData[field.key] || "",
208
- onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
209
- disabled: loading,
210
- required: field.required,
211
- className: "qz-form-select",
212
- children: [
213
- /* @__PURE__ */ jsx2("option", { value: "", children: field.placeholder || `Select ${field.label}` }),
214
- field.options?.map((opt) => /* @__PURE__ */ jsx2("option", { value: opt, children: opt }, opt))
215
- ]
216
- }
217
- ) : /* @__PURE__ */ jsx2(
218
- "input",
219
- {
220
- type: field.type === "number" ? "number" : "text",
221
- value: formData[field.key] || "",
222
- onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
223
- placeholder: field.placeholder || field.label,
224
- disabled: loading,
225
- required: field.required,
226
- className: "qz-form-input"
202
+ !configLoading && config?.formFields?.map((field) => {
203
+ if (field.key === "email") return null;
204
+ const renderFieldInput = () => {
205
+ switch (field.type) {
206
+ case "select":
207
+ return /* @__PURE__ */ jsxs(
208
+ "select",
209
+ {
210
+ value: formData[field.key] || "",
211
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
212
+ disabled: loading,
213
+ required: field.required,
214
+ className: "qz-form-select",
215
+ children: [
216
+ /* @__PURE__ */ jsx2("option", { value: "", children: field.placeholder || `Select ${field.label}` }),
217
+ field.options?.map((opt) => /* @__PURE__ */ jsx2("option", { value: opt, children: opt }, opt))
218
+ ]
219
+ }
220
+ );
221
+ case "checkbox":
222
+ return /* @__PURE__ */ jsxs("label", { className: "qz-form-checkbox-label", children: [
223
+ /* @__PURE__ */ jsx2(
224
+ "input",
225
+ {
226
+ type: "checkbox",
227
+ checked: formData[field.key] === "true",
228
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.checked ? "true" : "" })),
229
+ disabled: loading,
230
+ required: field.required,
231
+ className: "qz-form-checkbox"
232
+ }
233
+ ),
234
+ /* @__PURE__ */ jsxs("span", { children: [
235
+ field.label,
236
+ field.required && " *"
237
+ ] })
238
+ ] });
239
+ case "textarea":
240
+ return /* @__PURE__ */ jsx2(
241
+ "textarea",
242
+ {
243
+ value: formData[field.key] || "",
244
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
245
+ placeholder: field.placeholder || field.label,
246
+ disabled: loading,
247
+ required: field.required,
248
+ className: "qz-form-textarea",
249
+ rows: 3
250
+ }
251
+ );
252
+ default:
253
+ return /* @__PURE__ */ jsx2(
254
+ "input",
255
+ {
256
+ type: field.type === "number" ? "number" : "text",
257
+ value: formData[field.key] || "",
258
+ onChange: (e) => setFormData((prev) => ({ ...prev, [field.key]: e.target.value })),
259
+ placeholder: field.placeholder || field.label,
260
+ disabled: loading,
261
+ required: field.required,
262
+ className: "qz-form-input"
263
+ }
264
+ );
227
265
  }
228
- )
229
- ] }, field.key)),
266
+ };
267
+ return /* @__PURE__ */ jsxs("div", { className: "qz-form-row", children: [
268
+ showLabel && field.type !== "checkbox" && /* @__PURE__ */ jsxs("label", { className: "qz-form-label", children: [
269
+ field.label,
270
+ field.required && " *"
271
+ ] }),
272
+ renderFieldInput()
273
+ ] }, field.key);
274
+ }),
230
275
  /* @__PURE__ */ jsx2("div", { className: "qz-form-row", children: /* @__PURE__ */ jsx2("button", { type: "submit", disabled: loading, className: "qz-form-button", children: loading ? loadingText : buttonText }) }),
231
276
  displayError && /* @__PURE__ */ jsx2("div", { className: "qz-form-error", role: "alert", children: displayError.message }),
232
277
  children
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@queuezero/react",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "React components and hooks for QueueZero viral waitlists",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -35,7 +35,7 @@
35
35
  "react": ">=17.0.0"
36
36
  },
37
37
  "dependencies": {
38
- "queuezero": "^0.1.4"
38
+ "queuezero": "^0.1.5"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^22.13.11",