diff --git a/.gitignore b/.gitignore index 78ab7aa..1389464 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,9 @@ build # Miscellaneous *.local + + +# env + +.env.development +.env.production \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index af575b2..3ff9b11 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,6 +7,7 @@ import { createTheme, ThemeProvider } from "@mui/material" import { useAppDispatch, useAppSelector } from "@/app/hooks" import { useEffect } from "react" import { appActions } from "@/features/app/app.slice" +import { instance } from "@/app/instance" export const Test = () => { const isLoading = useAppSelector((state) => state.app.isLoading) @@ -21,6 +22,7 @@ export const Test = () => { setTimeout(() => { dispatch(appActions.setIsLoading({ isLoading: false })) }, 3000) + instance.get("/ping") }, [dispatch]) if (isLoading) return
loading...
diff --git a/src/app/instance.ts b/src/app/instance.ts new file mode 100644 index 0000000..34e6e1e --- /dev/null +++ b/src/app/instance.ts @@ -0,0 +1,9 @@ +import axios from "axios" + +export const instance = axios.create({ + baseURL: + process.env.NODE_ENV === "development" + ? "http://localhost:7542/2.0/" + : "https://neko-back.herokuapp.com/2.0/", + withCredentials: true, +}) diff --git a/src/constants/api_url.ts b/src/constants/api_url.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/features/app/app.slice.ts b/src/features/app/app.slice.ts index a4455bb..75c10c2 100644 --- a/src/features/app/app.slice.ts +++ b/src/features/app/app.slice.ts @@ -1,12 +1,16 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit" +const initialAppState = { + error: null as null | string, + isLoading: true, + isAppInitialized: false, +} + +export type InitialAppState = typeof initialAppState + const slice = createSlice({ name: "app", - initialState: { - error: null as null | string, - isLoading: true, - isAppInitialized: false, - }, + initialState: initialAppState, reducers: { setIsLoading: (state, action: PayloadAction<{ isLoading: boolean }>) => { state.isLoading = action.payload.isLoading @@ -14,11 +18,11 @@ const slice = createSlice({ setError: (state, action: PayloadAction<{ error: string | null }>) => { state.error = action.payload.error }, - setIsAppInitialized: ( + setAppInitialized: ( state, - action: PayloadAction<{ isInitialized: boolean }>, + action: PayloadAction<{ isAppInitialized: boolean }>, ) => { - state.isAppInitialized = action.payload.isInitialized + state.isAppInitialized = action.payload.isAppInitialized }, }, }) diff --git a/src/features/auth/auth.api.ts b/src/features/auth/auth.api.ts new file mode 100644 index 0000000..9f10798 --- /dev/null +++ b/src/features/auth/auth.api.ts @@ -0,0 +1,7 @@ +import { AuthInstance } from "@/features/auth/auth.instance" + +export const AuthApi = () => ({ + register: (params: any) => { + return AuthInstance.post(params) + }, +}) diff --git a/src/features/auth/auth.instance.ts b/src/features/auth/auth.instance.ts new file mode 100644 index 0000000..4b60f91 --- /dev/null +++ b/src/features/auth/auth.instance.ts @@ -0,0 +1,6 @@ +import axios from "axios" + +export const AuthInstance = axios.create({ + baseURL: import.meta.env.BASE_URL + "auth/", + withCredentials: true, +})