From 21f223272378488fe708f5395c5b1ddb49ff6cba Mon Sep 17 00:00:00 2001 From: MiguelMLorente Date: Sun, 16 Nov 2025 21:34:08 +0100 Subject: [PATCH] Setup CORS for dev-server --- src/api/client.ts | 13 +++++++++++++ src/context/EnvContext.ts | 7 ------- src/context/EnvContextSupplier.tsx | 16 ---------------- src/main.tsx | 13 +++++-------- src/pages/Login.tsx | 16 +++------------- src/pages/Register.tsx | 19 ++++++------------- vite.config.ts | 9 +++++++++ 7 files changed, 36 insertions(+), 57 deletions(-) create mode 100644 src/api/client.ts delete mode 100644 src/context/EnvContext.ts delete mode 100644 src/context/EnvContextSupplier.tsx diff --git a/src/api/client.ts b/src/api/client.ts new file mode 100644 index 0000000..15e4c51 --- /dev/null +++ b/src/api/client.ts @@ -0,0 +1,13 @@ +import axios from "axios"; + +export const login = (name: string, password: string) => + axios.post("/access/login", { + name, + password, + }); + +export const registerUser = (name: string, password: string) => + axios.post("/access/register", { + name, + password, + }); diff --git a/src/context/EnvContext.ts b/src/context/EnvContext.ts deleted file mode 100644 index 81bf641..0000000 --- a/src/context/EnvContext.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { createContext } from "react"; - -interface EnvContextProps { - getRequestUrl: (path: string) => string; -} - -export const EnvContext = createContext(null); diff --git a/src/context/EnvContextSupplier.tsx b/src/context/EnvContextSupplier.tsx deleted file mode 100644 index 351eeea..0000000 --- a/src/context/EnvContextSupplier.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import type { PropsWithChildren } from "react"; -import { EnvContext } from "./EnvContext"; - -interface EnvContextSupplieProps { - apiHostName: string; - apiPort: number; -} - -export const EnvContextSupplier = ( - props: PropsWithChildren>, -) => { - const { apiHostName = "http://localhost", apiPort = 3000 } = props; - const getRequestUrl = (path: string) => `${apiHostName}:${apiPort}${path}`; - - return {props.children}; -}; diff --git a/src/main.tsx b/src/main.tsx index 9785faa..ffd97c5 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -3,16 +3,13 @@ import { createRoot } from "react-dom/client"; import App from "./App.tsx"; import { BrowserRouter } from "react-router"; import { IntlProvider } from "react-intl"; -import { EnvContextSupplier } from "./context/EnvContextSupplier.tsx"; createRoot(document.getElementById("root")!).render( - - - - - - - + + + + + , ); diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index a63c20e..935f3a5 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -5,24 +5,14 @@ import { Header, SpaceBetween, } from "@cloudscape-design/components"; -import axios from "axios"; -import { useContext, useState } from "react"; -import { EnvContext } from "../context/EnvContext"; +import { useState } from "react"; +import { login } from "../api/client"; export const Login = () => { const [userName, setUserName] = useState(""); const [password, setPassword] = useState(""); const [rememberMe, setRememberMe] = useState(false); - const { getRequestUrl } = useContext(EnvContext)!; - - const login = () => { - axios.post(getRequestUrl("/access/login"), { - name: userName, - password: password, - }); - }; - return (
Login
@@ -43,7 +33,7 @@ export const Login = () => { > Remember me - +
); }; diff --git a/src/pages/Register.tsx b/src/pages/Register.tsx index c7831aa..eb92ddb 100644 --- a/src/pages/Register.tsx +++ b/src/pages/Register.tsx @@ -1,4 +1,4 @@ -import { useContext, useState } from "react"; +import { useState } from "react"; import { Alert, Button, @@ -7,8 +7,7 @@ import { SpaceBetween, } from "@cloudscape-design/components"; import * as zod from "zod"; -import { EnvContext } from "../context/EnvContext"; -import axios from "axios"; +import { registerUser } from "../api/client"; export const Register = () => { const [userName, setUserName] = useState(""); @@ -46,15 +45,6 @@ export const Register = () => { } } - const { getRequestUrl } = useContext(EnvContext)!; - - const registerUser = () => { - axios.post(getRequestUrl("/access/register"), { - name: userName, - password: password, - }); - }; - return (
Register
@@ -78,7 +68,10 @@ export const Register = () => { {passwordErrors.map((error) => ( {error} ))} -
diff --git a/vite.config.ts b/vite.config.ts index 0e43ae8..640fc48 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,5 +3,14 @@ import react from "@vitejs/plugin-react"; // https://vite.dev/config/ export default defineConfig({ + server: { + proxy: { + "/access": { + target: "http://localhost:3000", + changeOrigin: true, + secure: false, + }, + }, + }, plugins: [react()], });