Spaces:
Running
Running
| import React, { useEffect } from "react"; | |
| import { useLocation, useNavigate } from "react-router-dom"; | |
| const InitialRedirectHandler: React.FC = () => { | |
| const navigate = useNavigate(); | |
| const location = useLocation(); | |
| useEffect(() => { | |
| const handleInitialRedirect = async () => { | |
| if (location.pathname === "/") { | |
| try { | |
| const response = await fetch("/_api/", { | |
| method: "GET", | |
| redirect: "follow", | |
| }); | |
| if (response.ok) { | |
| console.log("Backend redirect response URL", response.url); | |
| if (response.url && response.url != window.location.href) { | |
| const newPath = new URL(response.url).pathname; | |
| if (location.pathname !== newPath) { | |
| navigate(newPath, { replace: true }); | |
| } | |
| } else { | |
| const data = await response.json(); | |
| if (data && data.url) { | |
| navigate(data.url, { replace: true }); | |
| } | |
| } | |
| } else { | |
| console.error("Failed to get initial chat URL: ", response.status); | |
| } | |
| } catch (error) { | |
| console.error("Error getting chat URL: ", error); | |
| } | |
| } | |
| }; | |
| handleInitialRedirect(); | |
| }, [location.pathname, navigate]); | |
| return null; | |
| }; | |
| export default InitialRedirectHandler; | |