summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/app.jsx41
-rw-r--r--client/components/home/_home.jsx3
-rw-r--r--client/components/router.jsx10
-rw-r--r--client/components/sign_in/_sign_in.jsx3
-rw-r--r--client/index.js2
-rw-r--r--client/package.json3
-rw-r--r--client/yarn.lock34
7 files changed, 59 insertions, 37 deletions
diff --git a/client/app.jsx b/client/app.jsx
index 556623f..5ae62df 100644
--- a/client/app.jsx
+++ b/client/app.jsx
@@ -1,39 +1,10 @@
-import { useState } from 'react';
-import { setConstantValue } from 'typescript';
-
-const App = () => {
- const [email, setEmail] = useState('');
- const [password, setPassword] = useState('');
-
- const submit = () => {
- fetch('/sign_in', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({ email, password }),
- });
- };
+import { BrowserRouter } from 'react-router-dom';
+import { Router } from './components/router';
+export const App = () => {
return (
- <>
- <div>
- <input
- type="email"
- value={email}
- onChange={(e) => setEmail(e.target.value)}
- />
- </div>
- <div>
- <input
- type="password"
- value={password}
- onChange={(e) => setPassword(e.target.value)}
- />
- </div>
- <button type="button" onClick={submit}>Login</button>
- </>
+ <BrowserRouter>
+ <Router />
+ </BrowserRouter>
);
};
-
-export default App;
diff --git a/client/components/home/_home.jsx b/client/components/home/_home.jsx
new file mode 100644
index 0000000..59389ad
--- /dev/null
+++ b/client/components/home/_home.jsx
@@ -0,0 +1,3 @@
+export const Home = () => {
+ return <div>I am the home page</div>;
+};
diff --git a/client/components/router.jsx b/client/components/router.jsx
new file mode 100644
index 0000000..a40b06e
--- /dev/null
+++ b/client/components/router.jsx
@@ -0,0 +1,10 @@
+import { Routes, Route } from 'react-router-dom';
+import { Home } from './home/_home';
+
+export const Router = () => {
+ return (
+ <Routes>
+ <Route path="/" element={<Home />} />
+ </Routes>
+ );
+};
diff --git a/client/components/sign_in/_sign_in.jsx b/client/components/sign_in/_sign_in.jsx
new file mode 100644
index 0000000..099ecd6
--- /dev/null
+++ b/client/components/sign_in/_sign_in.jsx
@@ -0,0 +1,3 @@
+export const SignIn = () => {
+ return <div>I am the sign in page</div>;
+};
diff --git a/client/index.js b/client/index.js
index bab4dcd..762ab1b 100644
--- a/client/index.js
+++ b/client/index.js
@@ -1,5 +1,5 @@
import ReactDOM from 'react-dom';
-import App from './app';
+import { App } from './app';
const app = document.getElementById('app');
ReactDOM.render(<App />, app);
diff --git a/client/package.json b/client/package.json
index e69cc8e..dfce878 100644
--- a/client/package.json
+++ b/client/package.json
@@ -8,6 +8,7 @@
"devDependencies": {},
"dependencies": {
"react": "^17.0.2",
- "react-dom": "^17.0.2"
+ "react-dom": "^17.0.2",
+ "react-router-dom": "6"
}
}
diff --git a/client/yarn.lock b/client/yarn.lock
index 347c5c2..c39acd0 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -2,6 +2,20 @@
# yarn lockfile v1
+"@babel/runtime@^7.7.6":
+ version "7.16.3"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5"
+ integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+history@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/history/-/history-5.1.0.tgz#2e93c09c064194d38d52ed62afd0afc9d9b01ece"
+ integrity sha512-zPuQgPacm2vH2xdORvGGz1wQMuHSIB56yNAy5FnLuwOwgSYyPKptJtcMm6Ev+hRGeS+GzhbmRacHzvlESbFwDg==
+ dependencies:
+ "@babel/runtime" "^7.7.6"
+
"js-tokens@^3.0.0 || ^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -28,6 +42,21 @@ react-dom@^17.0.2:
object-assign "^4.1.1"
scheduler "^0.20.2"
+react-router-dom@6:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.0.2.tgz#860cefa697b9d4965eced3f91e82cdbc5995f3ad"
+ integrity sha512-cOpJ4B6raFutr0EG8O/M2fEoyQmwvZWomf1c6W2YXBZuFBx8oTk/zqjXghwScyhfrtnt0lANXV2182NQblRxFA==
+ dependencies:
+ history "^5.1.0"
+ react-router "6.0.2"
+
+react-router@6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.0.2.tgz#bd2b0fa84fd1d152671e9f654d9c0b1f5a7c86da"
+ integrity sha512-8/Wm3Ed8t7TuedXjAvV39+c8j0vwrI5qVsYqjFr5WkJjsJpEvNSoLRUbtqSEYzqaTUj1IV+sbPJxvO+accvU0Q==
+ dependencies:
+ history "^5.1.0"
+
react@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
@@ -36,6 +65,11 @@ react@^17.0.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+regenerator-runtime@^0.13.4:
+ version "0.13.9"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+ integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
scheduler@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"