From 618bebc4d8d793fe1d86cc560ee032c985a7a9a7 Mon Sep 17 00:00:00 2001 From: Mathurah Ravigulan Date: Wed, 6 Sep 2023 11:22:33 -0400 Subject: [PATCH] Revert "Fix TypeScript errors" --- app/layout.tsx | 2 - components/account.tsx | 33 +++--- components/edit-member.tsx | 195 ++++++++++++++++------------------ components/email-composer.tsx | 104 +++++++++--------- next.config.js | 11 +- package-lock.json | 28 ----- package.json | 1 - 7 files changed, 160 insertions(+), 214 deletions(-) diff --git a/app/layout.tsx b/app/layout.tsx index 962c458..2760474 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -6,8 +6,6 @@ import { TailwindIndicator } from "@/components/tailwind-indicator"; import { Metadata } from "next"; import { siteConfig } from "@/config/site"; -export const dynamic = "force-dynamic"; - export const metadata: Metadata = { title: { default: siteConfig.name, diff --git a/components/account.tsx b/components/account.tsx index 201fc70..f7e7f31 100644 --- a/components/account.tsx +++ b/components/account.tsx @@ -28,7 +28,7 @@ export default function AccountForm({ name, email, }: { - user: { id: string }; + user: any; name: string; email: string; }) { @@ -42,30 +42,23 @@ export default function AccountForm({ }); async function onSubmit(data: AccountFormValues) { - try { - const updates = { - email: data.email, - full_name: data.name, - }; + try { + const updates = { + email: email, + full_name: data.name, + }; let { error } = await supabase .from("profiles") .update(updates) .eq("id", user.id); - if (error) { - toast({ - description: "An error occurred while updating your profile", - }); - } else { - toast({ - description: "Your profile has been updated", - }); - } - } catch (error) { - toast({ - description: "An error occurred while updating your profile", - }); - } + if (error) throw error; + toast({ + description: "Your profile has been updated", + }); + } catch (error) { + console.log(error); + } } return ( diff --git a/components/edit-member.tsx b/components/edit-member.tsx index 95aabef..457c941 100644 --- a/components/edit-member.tsx +++ b/components/edit-member.tsx @@ -51,8 +51,8 @@ export default function EditMemberForm({ member, existingGroups, }: { - member: { id: string; email: string; first_name: string; last_name: string }; - existingGroups: string[]; + member: any; + existingGroups: any; }) { //track all the groups const [memberGroups, setMemberGroups] = React.useState([]); @@ -112,110 +112,103 @@ export default function EditMemberForm({ console.log("existingIDs", existingGroupIds); async function onSubmit(data: MemberFormValues) { - const { - data: { user }, - } = await supabase.auth.getUser(); - - let groupIds = []; - - // Delete all existing associations for the member - const { error: deleteError } = await supabase - .from("member_group_joins") - .delete() - .eq("member_id", member.id); - if (deleteError) { - console.error("Error deleting existing associations:", deleteError); - } - - // Get the IDs of the selected groups that already exist in memberGroups - // Get the IDs of the selected groups that already exist in memberGroups - const existingGroupIds = selectedGroups - ?.filter((group) => - memberGroups?.map(({ name }) => name).includes(group.value) + const { + data: { user }, + } = await supabase.auth.getUser(); + + let groupIds = []; + + // Delete all existing associations for the member + const { error: deleteError } = await supabase + .from("member_group_joins") + .delete() + .eq("member_id", member.id); + if (deleteError) { + console.error("Error deleting existing associations:", deleteError); + } + + // Get the IDs of the selected groups that already exist in memberGroups + // Get the IDs of the selected groups that already exist in memberGroups + const existingGroupIds = selectedGroups + ?.filter((group) => + memberGroups?.map(({ name }) => name).includes(group.value) + ) + .map((group) => memberGroups.find(({ name }) => name === group.value)?.id); + + // Add the IDs of the existing groups to groupIds + + // Save new groups - if the member group doesn't hold any of the selected groups + const newGroups = + selectedGroups + ?.filter( + (group) => + !memberGroups?.map(({ name }) => name).includes(group.value) ) - .map((group) => memberGroups.find(({ name }) => name === group.value)?.id); - - // Add the IDs of the existing groups to groupIds - - // Save new groups - if the member group doesn't hold any of the selected groups - const newGroups = - selectedGroups - ?.filter( - (group) => - !memberGroups?.map(({ name }) => name).includes(group.value) - ) - .map(({ value }) => value) || []; - - //Creating a new group if there are elements in the newgroup array - if (!!newGroups.length) { - const groupResponse = await supabase - .from("member_groups") - .insert(newGroups.map((name) => ({ name }))) - .select(); - console.log("gr", groupResponse); - const { data: createdGroups, error: createGroupError } = groupResponse; - console.log("created groups", createdGroups); - if (createGroupError) { - console.error("Error creating new group:", createGroupError); - } else { - if (Array.isArray(createdGroups) && createdGroups.length > 0) { - groupIds = createdGroups.map(({ id }) => id); - } - } - } - - try { - const updates = { - email: data.email, - first_name: data.first_name, - last_name: data.last_name, - created_by: user?.id, - }; - - const selectedGroupIds = selectedGroups - ? selectedGroups.map((group) => group.value) - : []; - - console.log("SId", selectedGroupIds); - - if (!!selectedGroups?.length && member.id) { - // Insert new associations - const joinUpdates = selectedGroups - ?.map((group) => memberGroups.find((g) => g.name === group.value)?.id) - .concat(groupIds) - .filter((id) => id !== undefined) - .map((memberGroupId) => ({ - member_id: member.id, - group_id: memberGroupId, - })); - - const { error: joinError } = await supabase - .from("member_group_joins") - .insert(joinUpdates); - if (joinError) { - console.error("Error updating member_group_joins:", joinError); - } + .map(({ value }) => value) || []; + + //Creating a new group if there are elements in the newgroup array + if (!!newGroups.length) { + const groupResponse = await supabase + .from("member_groups") + .insert(newGroups.map((name) => ({ name }))) + .select(); + console.log("gr", groupResponse); + const { data: createdGroups, error: createGroupError } = groupResponse; + console.log("created groups", createdGroups); + if (createGroupError) { + console.error("Error creating new group:", createGroupError); + } else { + if (Array.isArray(createdGroups) && createdGroups.length > 0) { + groupIds = createdGroups.map(({ id }) => id); } - let { error } = await supabase - .from("members") - .update(updates) - .eq("id", member.id); - if (error) { - toast({ - description: "An error occurred while updating the member", - }); - } else { - toast({ - description: "Your member has been updated", - }); - router.refresh(); + } + } + + try { + const updates = { + email: data.email, + first_name: data.first_name, + last_name: data.last_name, + created_by: user?.id, + }; + + const selectedGroupIds = selectedGroups + ? selectedGroups.map((group) => group.value) + : []; + + console.log("SId", selectedGroupIds); + + if (!!selectedGroups?.length && member.id) { + // Insert new associations + const joinUpdates = selectedGroups + ?.map((group) => memberGroups.find((g) => g.name === group.value)?.id) + .concat(groupIds) + .filter((id) => id !== undefined) + .map((memberGroupId) => ({ + member_id: member.id, + group_id: memberGroupId, + })); + + const { error: joinError } = await supabase + .from("member_group_joins") + .insert(joinUpdates); + if (joinError) { + console.error("Error updating member_group_joins:", joinError); } - } catch (error) { - toast({ - description: "An error occurred while updating the member", - }); } + let { error } = await supabase + .from("members") + .update(updates) + .eq("id", member.id); + if (error) throw error; + toast({ + description: "Your member has been updated", + }); + router.refresh(); + } catch (error) { + console.log(error); } + } // React.useEffect(() => { // async function fetchMemberGroups() { diff --git a/components/email-composer.tsx b/components/email-composer.tsx index 89feb6f..a11d00f 100644 --- a/components/email-composer.tsx +++ b/components/email-composer.tsx @@ -214,63 +214,61 @@ export default function EmailComposer({ console.log("SLECTEDMEMBER", selectedMembers); const onSubmit = async (data: EmailFormValues) => { - console.log("entered the onsubnit with", data); - try { - setIsSending(true); - - const toEmails = data.to_emails.map((email) => email.value); - let mergedEmails = toEmails; - - if (memberEmailsArray.length > 0) { - console.log(memberEmailsArray, "memberEmailsArray"); - mergedEmails = [...new Set([...toEmails, ...memberEmailsArray])].filter( - (v) => isNaN(v) - ); - } - console.log("MERGE", mergedEmails); - const newEmailData = { - to_emails: mergedEmails, - subject: data.subject ? data.subject : "empty subject", - body: data.body ? data.body : "

", - cc_emails: [], - bcc_emails: [], - attachments: [], - from_email: userEmail, - }; - - const response = await fetch("/send-email", { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify(newEmailData), + console.log("entered the onsubnit with", data); + try { + setIsSending(true); + + const toEmails = data.to_emails.map((email) => email.value); + let mergedEmails = toEmails; + + if (memberEmailsArray.length > 0) { + console.log(memberEmailsArray, "memberEmailsArray"); + mergedEmails = [...new Set([...toEmails, ...memberEmailsArray])].filter( + (v) => isNaN(v) + ); + } + console.log("MERGE", mergedEmails); + const newEmailData = { + to_emails: mergedEmails, + subject: data.subject ? data.subject : "empty subject", + body: data.body ? data.body : "

", + cc_emails: [], + bcc_emails: [], + attachments: [], + from_email: userEmail, + }; + + const response = await fetch("/send-email", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(newEmailData), + }); + + const { data: newEmail, error: insertError } = await supabase + .from("emails") + .insert([newEmailData]); + + if (response.ok) { + console.log("Email sent successfully"); + onSend(); + form.reset(); + toast({ + description: "Your email has been sent successfully", }); - - const { data: newEmail, error: insertError } = await supabase - .from("emails") - .insert([newEmailData]); - - if (response.ok) { - console.log("Email sent successfully"); - onSend(); - form.reset(); - toast({ - description: "Your email has been sent successfully", - }); - } else { - console.error("Failed to send email", response.statusText); - toast({ - description: response.statusText, - }); - } - } catch (error) { + } else { + console.error("Failed to send email", response.statusText); toast({ - description: "An error occurred while sending the email", + description: response.statusText, }); - } finally { - setIsSending(false); } - }; + } catch (error) { + console.error("Error sending email:", error); + } finally { + setIsSending(false); + } + }; return ( diff --git a/next.config.js b/next.config.js index 30df71c..950e2f4 100644 --- a/next.config.js +++ b/next.config.js @@ -3,13 +3,6 @@ const nextConfig = { experimental: { serverActions: true, }, - typescript: { - // !! WARN !! - // Dangerously allow production builds to successfully complete even if - // your project has type errors. - // !! WARN !! - ignoreBuildErrors: true, - }, -}; +} -module.exports = nextConfig; +module.exports = nextConfig diff --git a/package-lock.json b/package-lock.json index a8f2b49..56b4a7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,7 +49,6 @@ "@types/node": "20.3.1", "@types/react": "18.2.12", "@types/react-dom": "18.2.5", - "encoding": "^0.1.13", "supabase": "^1.77.9" } }, @@ -2811,15 +2810,6 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==" }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "devOptional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", @@ -3224,18 +3214,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "devOptional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/immutable": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", @@ -4765,12 +4743,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, "node_modules/sass": { "version": "1.66.1", "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", diff --git a/package.json b/package.json index 08704b5..685abc9 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "@types/node": "20.3.1", "@types/react": "18.2.12", "@types/react-dom": "18.2.5", - "encoding": "^0.1.13", "supabase": "^1.77.9" } }