diff --git a/src/Components/Login/Login.jsx b/src/Components/Login/Login.jsx index 669e20b..1f17f9d 100644 --- a/src/Components/Login/Login.jsx +++ b/src/Components/Login/Login.jsx @@ -16,6 +16,10 @@ export default function Login() { const completeLogin = async(e) => { const { userId, token, userCredentials } = e; + + // store email in supabase + // await generalFunction.supabase_addData("users", userCredentials); + if (userId && token) { localStorage.setItem("questUserId", userId); localStorage.setItem("questUserToken", token); diff --git a/src/Components/Onboarding/Onboarding.jsx b/src/Components/Onboarding/Onboarding.jsx index f6ae070..50eb7ba 100644 --- a/src/Components/Onboarding/Onboarding.jsx +++ b/src/Components/Onboarding/Onboarding.jsx @@ -13,7 +13,16 @@ export default function Onboarding() { const { theme, bgColors, contentConfig } = useContext(ThemeContext); const [key, setKey] = useState(""); - const completeAnswer = (e) => { + const completeAnswer = async(e) => { + // await generalFunction.supabase_updateData( + // "users", + // generalFunction.getUserCredentials()?.email, + // { + // // for storing the data in supabase add the following key and value + // // eg. name: answer["ec-cf14a2e1-9ea5-448f-aaa4-d6f866a853e9"] + // } + // ); + navigate("/dashboard"); }; diff --git a/src/assets/Config/appConfig.js b/src/assets/Config/appConfig.js index 81e4da3..7c83458 100644 --- a/src/assets/Config/appConfig.js +++ b/src/assets/Config/appConfig.js @@ -6,4 +6,6 @@ export const mainConfig = { GOOGLE_REDIRECT_URI: "https://quest-dashboard-starter-template-26sa.vercel.app/", GOOGLE_CLIENT_ID: "48459226857-eobo616j32erioo3dab9nid98fmvjom7.apps.googleusercontent.com", CONTACT_EMAIL: "", + REACT_APP_SUPABASE_URL: "", + REACT_APP_SUPABASE_ANON_KEY: "", } \ No newline at end of file diff --git a/src/assets/Config/generalFunction.jsx b/src/assets/Config/generalFunction.jsx index 5877758..a5cc19e 100644 --- a/src/assets/Config/generalFunction.jsx +++ b/src/assets/Config/generalFunction.jsx @@ -110,5 +110,37 @@ export const generalFunction = { } catch (error) { return { success: false, loginAgain: true }; } + }, + + supabase_addData: async (table, rowData) => { + const { data, error } = await supabase.from(table).select('*').eq("email", rowData.email).maybeSingle(); + if (error) { + throw error; + } + + if (!data || !data?.email) { + const { data: newUserData, error: insertError } = await supabase + .from(table) + .insert([{ + email: rowData.email, + ...(!!rowData?.name && { name: rowData?.name }), + }]) + .select(); + if (insertError) { + throw insertError; + } + } + }, + + supabase_updateData: async (table, email, rowData) => { + const { data, error } = await supabase + .from(table) + .update(rowData) + .eq("email", email) + .select() + + if (error) { + throw error; + } } } diff --git a/src/supabaseClient.js b/src/supabaseClient.js new file mode 100644 index 0000000..3dfcc3c --- /dev/null +++ b/src/supabaseClient.js @@ -0,0 +1,7 @@ +import { createClient } from "@supabase/supabase-js"; +import { mainConfig } from "./assets/Config/appConfig"; + +const supabaseUrl = mainConfig.REACT_APP_SUPABASE_URL; +const supabaseKey = mainConfig.REACT_APP_SUPABASE_ANON_KEY; + +export const supabase = createClient(supabaseUrl, supabaseKey); \ No newline at end of file