pixelize-design-library 2.1.26 → 2.1.28
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,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ContactFormProps } from "./ContactFormProps";
|
|
3
|
-
declare const ContactForm: ({ apiKey, customFields, getCustomValues, isDisabled, organizationId, customerId, }: ContactFormProps) => React.JSX.Element;
|
|
3
|
+
declare const ContactForm: ({ apiKey, customFields, getCustomValues, isDisabled, organizationId, customerId, buttonColorScheme, buttonSx, }: ContactFormProps) => React.JSX.Element;
|
|
4
4
|
export default ContactForm;
|
|
@@ -78,22 +78,24 @@ var react_2 = require("@chakra-ui/react");
|
|
|
78
78
|
var TextInput_1 = __importDefault(require("../Input/TextInput"));
|
|
79
79
|
var lucide_react_1 = require("lucide-react");
|
|
80
80
|
var useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
81
|
+
var InputTextArea_1 = __importDefault(require("../InputTextArea/InputTextArea"));
|
|
82
|
+
var Button_1 = __importDefault(require("../Button/Button"));
|
|
81
83
|
var ContactForm = function (_a) {
|
|
82
84
|
var _b;
|
|
83
|
-
var apiKey = _a.apiKey, customFields = _a.customFields, getCustomValues = _a.getCustomValues, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, organizationId = _a.organizationId, customerId = _a.customerId;
|
|
85
|
+
var apiKey = _a.apiKey, customFields = _a.customFields, getCustomValues = _a.getCustomValues, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, organizationId = _a.organizationId, customerId = _a.customerId, _d = _a.buttonColorScheme, buttonColorScheme = _d === void 0 ? "primary" : _d, buttonSx = _a.buttonSx;
|
|
84
86
|
var colors = (0, useCustomTheme_1.useCustomTheme)().colors;
|
|
85
|
-
var
|
|
87
|
+
var _e = (0, react_1.useState)({
|
|
86
88
|
firstName: "",
|
|
87
89
|
lastName: "",
|
|
88
90
|
email: "",
|
|
89
91
|
phone: "",
|
|
90
92
|
enquiry: "",
|
|
91
|
-
}), formData =
|
|
92
|
-
var
|
|
93
|
+
}), formData = _e[0], setFormData = _e[1];
|
|
94
|
+
var _f = (0, react_1.useState)({
|
|
93
95
|
title: "",
|
|
94
96
|
isSuccess: false,
|
|
95
|
-
}), response =
|
|
96
|
-
var
|
|
97
|
+
}), response = _f[0], setResponse = _f[1];
|
|
98
|
+
var _g = (0, react_1.useState)({}), errors = _g[0], setErrors = _g[1];
|
|
97
99
|
var handleChange = function (field, value) {
|
|
98
100
|
setFormData(function (prev) {
|
|
99
101
|
var _a;
|
|
@@ -108,11 +110,12 @@ var ContactForm = function (_a) {
|
|
|
108
110
|
var newErrors = {};
|
|
109
111
|
if (!formData.firstName.trim())
|
|
110
112
|
newErrors.firstName = "First name is required";
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
if (!formData.email.trim()) {
|
|
114
|
+
// newErrors.email = "Email is required";
|
|
115
|
+
}
|
|
116
|
+
else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formData.email)) {
|
|
117
|
+
newErrors.email = "Invalid email format";
|
|
118
|
+
}
|
|
116
119
|
if (!formData.phone.trim()) {
|
|
117
120
|
newErrors.phone = "Phone is required";
|
|
118
121
|
}
|
|
@@ -194,22 +197,20 @@ var ContactForm = function (_a) {
|
|
|
194
197
|
react_1.default.createElement(react_2.Box, { as: "form", onSubmit: handleSubmit },
|
|
195
198
|
react_1.default.createElement(react_2.VStack, { spacing: 4 },
|
|
196
199
|
react_1.default.createElement(react_2.SimpleGrid, { columns: { base: 1, md: 2 }, spacing: 4, w: "100%" },
|
|
197
|
-
react_1.default.createElement(react_2.FormControl,
|
|
198
|
-
react_1.default.createElement(TextInput_1.default, { label: "First Name", placeholder: "Enter first name", value: formData.firstName, onChange: function (e) { return handleChange("firstName", e.target.value); }, isRequired: true }),
|
|
199
|
-
react_1.default.createElement(react_2.FormErrorMessage, null, errors.firstName)),
|
|
200
|
+
react_1.default.createElement(react_2.FormControl, null,
|
|
201
|
+
react_1.default.createElement(TextInput_1.default, { label: "First Name", placeholder: "Enter first name", value: formData.firstName, onChange: function (e) { return handleChange("firstName", e.target.value); }, error: Boolean(errors.firstName), errorMessage: errors.firstName, isRequired: true })),
|
|
200
202
|
react_1.default.createElement(react_2.FormControl, null,
|
|
201
203
|
react_1.default.createElement(TextInput_1.default, { label: "Last Name", placeholder: "Enter last name", value: formData.lastName, onChange: function (e) { return handleChange("lastName", e.target.value); } }))),
|
|
202
204
|
react_1.default.createElement(react_2.SimpleGrid, { columns: { base: 1, md: 2 }, spacing: 4, w: "100%" },
|
|
203
|
-
react_1.default.createElement(react_2.FormControl,
|
|
204
|
-
react_1.default.createElement(TextInput_1.default, { label: "Phone", placeholder: "Enter phone number", value: formData.phone, onChange: function (e) { return handleChange("phone", e.target.value); }, isRequired: true }),
|
|
205
|
-
react_1.default.createElement(react_2.FormErrorMessage, null, errors.phone)),
|
|
205
|
+
react_1.default.createElement(react_2.FormControl, null,
|
|
206
|
+
react_1.default.createElement(TextInput_1.default, { label: "Phone", placeholder: "Enter phone number", value: formData.phone, onChange: function (e) { return handleChange("phone", e.target.value); }, isRequired: true, error: Boolean(errors.phone), errorMessage: errors.phone })),
|
|
206
207
|
react_1.default.createElement(react_2.FormControl, { isInvalid: !!errors.email },
|
|
207
|
-
react_1.default.createElement(TextInput_1.default, { label: "Email", placeholder: "Enter email", value: formData.email, onChange: function (e) { return handleChange("email", e.target.value); } }),
|
|
208
|
-
react_1.default.createElement(react_2.FormErrorMessage, null, errors.email))),
|
|
208
|
+
react_1.default.createElement(TextInput_1.default, { label: "Email", placeholder: "Enter email", value: formData.email, onChange: function (e) { return handleChange("email", e.target.value); }, error: Boolean(errors.email), errorMessage: errors.email }))),
|
|
209
209
|
customFields,
|
|
210
|
-
react_1.default.createElement(react_2.FormControl,
|
|
210
|
+
react_1.default.createElement(react_2.FormControl, null,
|
|
211
211
|
react_1.default.createElement(react_2.Text, { fontSize: "sm", mb: 1 }, "Enquiry"),
|
|
212
|
-
react_1.default.createElement(react_2.
|
|
213
|
-
|
|
212
|
+
react_1.default.createElement(react_2.Box, null,
|
|
213
|
+
react_1.default.createElement(InputTextArea_1.default, { placeholder: "Enter your enquiry", rows: 4, width: "100%", value: formData.enquiry, onChange: function (e) { return handleChange("enquiry", e.target.value); } }))),
|
|
214
|
+
react_1.default.createElement(Button_1.default, { type: "submit", isDisabled: isDisabled, colorScheme: buttonColorScheme, width: "full", sx: buttonSx }, "Send Message")))));
|
|
214
215
|
};
|
|
215
216
|
exports.default = ContactForm;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SystemStyleObject } from "@chakra-ui/react";
|
|
1
2
|
import { ReactNode } from "react";
|
|
2
3
|
export interface ContactFormProps {
|
|
3
4
|
apiKey?: string;
|
|
@@ -6,4 +7,6 @@ export interface ContactFormProps {
|
|
|
6
7
|
isDisabled?: boolean;
|
|
7
8
|
customFields?: ReactNode;
|
|
8
9
|
getCustomValues?: () => Record<string, any>;
|
|
10
|
+
buttonColorScheme?: "primary" | "blue" | "cyan" | "gray" | "green" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "secondary" | "tertiary" | undefined;
|
|
11
|
+
buttonSx?: SystemStyleObject;
|
|
9
12
|
}
|