From 5bbcb00147decd17df2e7bc7915980d02fd4e8d9 Mon Sep 17 00:00:00 2001
From: ARITRIK GHOSH <109242925+aritrikg@users.noreply.github.com>
Date: Sat, 20 Dec 2025 15:40:17 +0530
Subject: [PATCH] Refactor Facebook component to functional component
---
client/src/components/Facebook.js | 94 ++++++++++++-------------------
1 file changed, 37 insertions(+), 57 deletions(-)
diff --git a/client/src/components/Facebook.js b/client/src/components/Facebook.js
index 41f2447..658bded 100644
--- a/client/src/components/Facebook.js
+++ b/client/src/components/Facebook.js
@@ -1,66 +1,46 @@
-import React, { Component } from "react";
-import ReactDOM from "react-dom";
+import React, { useCallback } from "react";
import FacebookLogin from "react-facebook-login";
import axios from "axios";
-class Facebook extends Component {
- state = {
- isLoggedIn: false,
- name: "",
- email: "",
- picture: "",
- accessToken: "",
- };
- onLoginSuccess() {
- axios
- .post("/api/auth/facebook/login", {
- access_token: this.state.accessToken,
- })
- .then((res) => {
- console.log(res);
- sessionStorage.setItem(
- "user",
- JSON.stringify({
- jwtToken: res.data.token,
- userId: res.data.userId,
- name: res.data.name,
- })
- );
- this.props.setUser(res.data.name);
- this.props.history.push("/");
- })
- .catch((err) => console.log(err.response.data));
- }
- responseFacebook = (response) => {
- if (response.accessToken) {
- this.setState({
- isLoggedIn: true,
- name: response.name,
- email: response.email,
- picture: response.picture.data.url,
- accessToken: response.accessToken,
+const Facebook = ({ setUser, history }) => {
+ const handleLogin = useCallback(async (accessToken) => {
+ try {
+ const res = await axios.post("/api/auth/facebook/login", {
+ access_token: accessToken,
});
- console.log(response);
- this.onLoginSuccess();
+
+ sessionStorage.setItem(
+ "user",
+ JSON.stringify({
+ jwtToken: res.data.token,
+ userId: res.data.userId,
+ name: res.data.name,
+ })
+ );
+
+ setUser(res.data.name);
+ history.push("/");
+ } catch (err) {
+ console.error(err?.response?.data || err);
}
+ }, [setUser, history]);
+
+ const responseFacebook = (response) => {
+ if (!response?.accessToken) return;
+
+ handleLogin(response.accessToken);
};
- componentClicked = {};
- render() {
- let fbContent;
- fbContent = (
-