diff --git a/src/components/InterviwerForm.tsx b/src/components/InterviwerForm.tsx
index 18a15b4..cfb2613 100644
--- a/src/components/InterviwerForm.tsx
+++ b/src/components/InterviwerForm.tsx
@@ -49,7 +49,7 @@ type FormState = {
name: string;
email: string;
sid: string;
-
+ phone: string;
availableDays: string[];
responses: Record<
@@ -63,6 +63,7 @@ const initialForm: FormState = {
email: "",
sid: "",
availableDays: [],
+ phone:"",
responses:
createEmptyResponses(),
};
@@ -201,6 +202,9 @@ export default function InterviewerForm() {
const sid =
form.sid.trim();
+ const phone =
+ form.phone.trim();
+
const availableDays =
form.availableDays;
@@ -212,6 +216,7 @@ export default function InterviewerForm() {
!name ||
!email ||
!sid ||
+ !phone||
availableDays.length ===
0
) {
@@ -253,6 +258,17 @@ export default function InterviewerForm() {
return;
}
+ if (
+ !/^\d{10}$/.test(
+ phone
+ )
+ ) {
+ setError(
+ "phone number is invalid."
+ );
+
+ return;
+ }
/*
* Check questions
@@ -313,6 +329,7 @@ export default function InterviewerForm() {
name,
sid,
email,
+ phone,
availableDays,
trimmedResponses
);
@@ -362,6 +379,11 @@ export default function InterviewerForm() {
.applicant
.sid ||
"",
+ phone:
+ result
+ .applicant
+ .phone ||
+ "",
availableDays:
result
@@ -416,6 +438,9 @@ export default function InterviewerForm() {
const sid =
form.sid.trim();
+ const phone =
+ form.phone.trim();
+
const availableDays =
form.availableDays;
@@ -427,6 +452,7 @@ export default function InterviewerForm() {
!name ||
!email ||
!sid ||
+ !phone ||
availableDays.length ===
0
) {
@@ -469,6 +495,22 @@ export default function InterviewerForm() {
return;
}
+ /*
+ * Phone validation
+ */
+
+ if (
+ !/^\d{10}$/.test(
+ phone
+ )
+ ) {
+ setError(
+ "phone number is invalid."
+ );
+
+ return;
+ }
+
setSavingPersonalInfo(
true
);
@@ -480,6 +522,7 @@ export default function InterviewerForm() {
name,
email,
sid,
+ phone,
availableDays
);
@@ -530,6 +573,12 @@ export default function InterviewerForm() {
.applicant
.sid,
+ phone:
+ result
+ .applicant
+ .phone ||
+ "",
+
availableDays:
result
.applicant
@@ -711,6 +760,43 @@ export default function InterviewerForm() {
className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-60"
/>
+
+
+
+
+
+ updateField(
+ "phone",
+ event.target.value.replace(
+ /\D/g,
+ ""
+ )
+ )
+ }
+ placeholder="10-digit phone number"
+ className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-60"
+ />
+
{/* Available days */}
@@ -961,6 +1047,40 @@ export default function InterviewerForm() {
className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm outline-none"
/>
+
+
+
+
+
+ updateField(
+ "phone",
+ event.target.value.replace(
+ /\D/g,
+ ""
+ )
+ )
+ }
+ placeholder="10-digit phone number"
+ className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm outline-none"
+ />
+
{/* Available days */}
diff --git a/src/lib/supabase/actions/interviewers.actions.ts b/src/lib/supabase/actions/interviewers.actions.ts
index f88d2ce..c76a150 100644
--- a/src/lib/supabase/actions/interviewers.actions.ts
+++ b/src/lib/supabase/actions/interviewers.actions.ts
@@ -54,13 +54,13 @@ const appsScriptRequest =
if (isServer) {
const appsScriptUrl =
process.env
- .GOOGLE_APPS_SCRIPT_URL;
+ .INT_GOOGLE_APPS_SCRIPT_URL;
if (
!appsScriptUrl
) {
throw new Error(
- "GOOGLE_APPS_SCRIPT_URL is not configured."
+ "INT_GOOGLE_APPS_SCRIPT_URL is not configured."
);
}
@@ -159,6 +159,10 @@ const mapInterviewer =
String(
item.sid || ""
),
+ phone:
+ String(
+ item.phone || ""
+ ),
availableDays:
Array.isArray(
@@ -255,6 +259,7 @@ export const createInterviewer =
name: string,
sid: string,
email: string,
+ phone: string,
availableDays: string[],
responses: Record<
string,
@@ -279,6 +284,9 @@ export const createInterviewer =
email:
email.trim(),
+ phone:
+ phone.trim(),
+
availableDays:
availableDays,
@@ -373,6 +381,7 @@ export const updateInterviewerPersonalInfo =
name: string,
email: string,
sid: string,
+ phone: string,
availableDays: string[]
): Promise<
UpdateInterviewerResult
@@ -395,6 +404,9 @@ export const updateInterviewerPersonalInfo =
sid:
sid.trim(),
+ phone:
+ phone.trim(),
+
availableDays:
availableDays,
}
diff --git a/src/pages/api/interviewer.ts b/src/pages/api/interviewer.ts
index 6e05dce..08f67e4 100644
--- a/src/pages/api/interviewer.ts
+++ b/src/pages/api/interviewer.ts
@@ -9,7 +9,7 @@ export default async function handler(
}
try {
- const scriptUrl = process.env.GOOGLE_APPS_SCRIPT_URL;
+ const scriptUrl = process.env.INT_GOOGLE_APPS_SCRIPT_URL;
if (!scriptUrl) {
console.error("Missing GOOGLE_APPS_SCRIPT_URL in environment");
diff --git a/src/types/index.d.ts b/src/types/index.d.ts
index 2ac05d2..212b95a 100644
--- a/src/types/index.d.ts
+++ b/src/types/index.d.ts
@@ -192,6 +192,7 @@ export type InterviewerType = {
name: string;
email: string;
sid: string;
+ phone: string;
availableDays: string[];
responses: Record;
status: