+
+
+
+
+
+
+ setFullname(e.target.value)}
+ disabled={loading}
+ />
+
+
+
+ setUsername(e.target.value)}
+ disabled={loading}
+ />
+
+
+
+ setWebsite(e.target.value)}
+ disabled={loading}
+ />
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+AccountForm.propTypes = {
+ user: PropTypes.shape({
+ id: PropTypes.string,
+ email: PropTypes.string,
+ }).isRequired,
+};
diff --git a/src/app/account/page.jsx b/src/app/account/page.jsx
new file mode 100644
index 0000000..fa81e83
--- /dev/null
+++ b/src/app/account/page.jsx
@@ -0,0 +1,20 @@
+"use server";
+
+import { redirect } from "next/navigation";
+import AccountForm from "./account-form";
+import createClient from "@/utils/supabase/server";
+
+export default async function Account() {
+ const supabase = createClient();
+
+ // Ensure user is logged in
+ const {
+ data: { user },
+ error,
+ } = await supabase.auth.getUser();
+ if (error || !user) {
+ redirect("/login");
+ }
+
+ return