Showing
4 changed files
with
149 additions
and
0 deletions
... | @@ -4,12 +4,14 @@ | ... | @@ -4,12 +4,14 @@ |
4 | "private": true, | 4 | "private": true, |
5 | "dependencies": { | 5 | "dependencies": { |
6 | "@chakra-ui/core": "^0.8.0", | 6 | "@chakra-ui/core": "^0.8.0", |
7 | + "@chakra-ui/icons": "^1.0.13", | ||
7 | "@chakra-ui/react": "^1.6.3", | 8 | "@chakra-ui/react": "^1.6.3", |
8 | "@emotion/react": "11", | 9 | "@emotion/react": "11", |
9 | "@emotion/styled": "11", | 10 | "@emotion/styled": "11", |
10 | "@testing-library/jest-dom": "^5.11.4", | 11 | "@testing-library/jest-dom": "^5.11.4", |
11 | "@testing-library/react": "^11.1.0", | 12 | "@testing-library/react": "^11.1.0", |
12 | "@testing-library/user-event": "^12.1.10", | 13 | "@testing-library/user-event": "^12.1.10", |
14 | + "axios": "^0.21.1", | ||
13 | "framer-motion": "4", | 15 | "framer-motion": "4", |
14 | "react": "^17.0.2", | 16 | "react": "^17.0.2", |
15 | "react-dom": "^17.0.2", | 17 | "react-dom": "^17.0.2", | ... | ... |
... | @@ -2,6 +2,7 @@ import React, { useEffect } from 'react' | ... | @@ -2,6 +2,7 @@ import React, { useEffect } from 'react' |
2 | import { BrowserRouter, Route, Redirect, Switch, Link } from 'react-router-dom' | 2 | import { BrowserRouter, Route, Redirect, Switch, Link } from 'react-router-dom' |
3 | import { ChakraProvider } from '@chakra-ui/react' | 3 | import { ChakraProvider } from '@chakra-ui/react' |
4 | import Index from './components/Index' | 4 | import Index from './components/Index' |
5 | +import SignIn from './components/SignIn' | ||
5 | import DockerContainerCreate from './components/DockerContainerCreate' | 6 | import DockerContainerCreate from './components/DockerContainerCreate' |
6 | 7 | ||
7 | const App = () => { | 8 | const App = () => { |
... | @@ -10,6 +11,7 @@ const App = () => { | ... | @@ -10,6 +11,7 @@ const App = () => { |
10 | <BrowserRouter> | 11 | <BrowserRouter> |
11 | <Switch> | 12 | <Switch> |
12 | <Route exact path="/" component={Index}/> | 13 | <Route exact path="/" component={Index}/> |
14 | + <Route exact path="/sign-in" component={SignIn}/> | ||
13 | <Route exact path="/docker/container/create" component={DockerContainerCreate}/> | 15 | <Route exact path="/docker/container/create" component={DockerContainerCreate}/> |
14 | <Redirect path="*" to="/"/> | 16 | <Redirect path="*" to="/"/> |
15 | </Switch> | 17 | </Switch> | ... | ... |
frontend/src/components/SignUp.js
0 → 100644
1 | +import React, { useState, useEffect } from 'react' | ||
2 | +import { useHistory, Redirect } from 'react-router-dom' | ||
3 | +import { | ||
4 | + Container, | ||
5 | + Heading, | ||
6 | + Button, | ||
7 | + Segment, | ||
8 | + Message, | ||
9 | + Divider, | ||
10 | + Form, | ||
11 | + Input, | ||
12 | + Transition, | ||
13 | + Select, | ||
14 | + Checkbox, | ||
15 | + FormControl, | ||
16 | + FormLabel, | ||
17 | + FormErrorMessage, | ||
18 | + FormHelperText, | ||
19 | + VStack, | ||
20 | + Stack, | ||
21 | + StackDivider, | ||
22 | + Box, | ||
23 | + Text, | ||
24 | + InputGroup, | ||
25 | + InputLeftElement, | ||
26 | + InputRightElement, | ||
27 | +} from '@chakra-ui/react' | ||
28 | +import { PhoneIcon } from '@chakra-ui/icons' | ||
29 | +import http from '../utils/http' | ||
30 | + | ||
31 | +const SignUp = () => { | ||
32 | + const [username, setUsername] = useState('') | ||
33 | + const [password, setPassword] = useState('') | ||
34 | + const [email, setEmail] = useState('') | ||
35 | + const [phone, setPhone] = useState('') | ||
36 | + | ||
37 | + const handleUsernameOnChange = (event) => { | ||
38 | + setUsername(event.target.value) | ||
39 | + } | ||
40 | + | ||
41 | + const handlePasswordOnChange = (event) => { | ||
42 | + setPassword(event.target.value) | ||
43 | + } | ||
44 | + | ||
45 | + const handlePhoneOnChange = (event) => { | ||
46 | + setPhone(event.target.value) | ||
47 | + } | ||
48 | + | ||
49 | + const handleEmailOnChange = (event) => { | ||
50 | + setEmail(event.target.value) | ||
51 | + } | ||
52 | + | ||
53 | + useEffect(() => { | ||
54 | + }, []) | ||
55 | + | ||
56 | + return ( | ||
57 | + <Container> | ||
58 | + <Heading>Sign-Up</Heading> | ||
59 | + <br /> | ||
60 | + | ||
61 | + <Stack | ||
62 | + // divider={<StackDivider borderColor="gray.200"/>} | ||
63 | + spacing={4} | ||
64 | + align="stretch" | ||
65 | + > | ||
66 | + <Input | ||
67 | + type="text" | ||
68 | + placeholder="username" | ||
69 | + value={username} | ||
70 | + onChange={handleUsernameOnChange} | ||
71 | + /> | ||
72 | + | ||
73 | + <InputGroup size="md"> | ||
74 | + <Input | ||
75 | + pr="4.5rem" | ||
76 | + type="password" | ||
77 | + placeholder="Enter password" | ||
78 | + value={password} | ||
79 | + onChange={handlePasswordOnChange} | ||
80 | + /> | ||
81 | + <InputRightElement width="4.5rem"> | ||
82 | + </InputRightElement> | ||
83 | + </InputGroup> | ||
84 | + | ||
85 | + <Input | ||
86 | + type="email" | ||
87 | + placeholder="email" | ||
88 | + value={email} | ||
89 | + onChange={handleEmailOnChange} | ||
90 | + /> | ||
91 | + | ||
92 | + | ||
93 | + <InputGroup> | ||
94 | + <InputLeftElement | ||
95 | + pointerEvents="none" | ||
96 | + children={<PhoneIcon color="gray.300" />} | ||
97 | + /> | ||
98 | + <Input | ||
99 | + type="tel" | ||
100 | + placeholder="phone" | ||
101 | + value={phone} | ||
102 | + onChange={handlePhoneOnChange} | ||
103 | + /> | ||
104 | + </InputGroup> | ||
105 | + | ||
106 | + <Button | ||
107 | + colorScheme="teal" | ||
108 | + > | ||
109 | + Sign Up | ||
110 | + </Button> | ||
111 | + </Stack> | ||
112 | + </Container> | ||
113 | + ) | ||
114 | +} | ||
115 | + | ||
116 | +export default SignUp |
... | @@ -1317,6 +1317,14 @@ | ... | @@ -1317,6 +1317,14 @@ |
1317 | dependencies: | 1317 | dependencies: |
1318 | "@chakra-ui/utils" "1.8.0" | 1318 | "@chakra-ui/utils" "1.8.0" |
1319 | 1319 | ||
1320 | +"@chakra-ui/icons@^1.0.13": | ||
1321 | + version "1.0.13" | ||
1322 | + resolved "https://registry.yarnpkg.com/@chakra-ui/icons/-/icons-1.0.13.tgz#d8eb04479b048d8023ae90d76205cd4a0bf7dd79" | ||
1323 | + integrity sha512-twDpFz2uPVboMTEI4QA2y3EJND3G4+/9AVs730fgnnfhTw4EOJt0Lhfm4Spq1qi1LgHF16x4/Lao1E2imB5lWw== | ||
1324 | + dependencies: | ||
1325 | + "@chakra-ui/icon" "1.1.9" | ||
1326 | + "@types/react" "^17.0.0" | ||
1327 | + | ||
1320 | "@chakra-ui/image@1.0.15": | 1328 | "@chakra-ui/image@1.0.15": |
1321 | version "1.0.15" | 1329 | version "1.0.15" |
1322 | resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-1.0.15.tgz#57aaf7e22d2793b9278481aab56b27063a922e5b" | 1330 | resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-1.0.15.tgz#57aaf7e22d2793b9278481aab56b27063a922e5b" |
... | @@ -2642,6 +2650,15 @@ | ... | @@ -2642,6 +2650,15 @@ |
2642 | "@types/scheduler" "*" | 2650 | "@types/scheduler" "*" |
2643 | csstype "^3.0.2" | 2651 | csstype "^3.0.2" |
2644 | 2652 | ||
2653 | +"@types/react@^17.0.0": | ||
2654 | + version "17.0.11" | ||
2655 | + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.11.tgz#67fcd0ddbf5a0b083a0f94e926c7d63f3b836451" | ||
2656 | + integrity sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA== | ||
2657 | + dependencies: | ||
2658 | + "@types/prop-types" "*" | ||
2659 | + "@types/scheduler" "*" | ||
2660 | + csstype "^3.0.2" | ||
2661 | + | ||
2645 | "@types/resolve@0.0.8": | 2662 | "@types/resolve@0.0.8": |
2646 | version "0.0.8" | 2663 | version "0.0.8" |
2647 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" | 2664 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" |
... | @@ -3388,6 +3405,13 @@ axe-core@^4.0.2: | ... | @@ -3388,6 +3405,13 @@ axe-core@^4.0.2: |
3388 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.2.tgz#7cf783331320098bfbef620df3b3c770147bc224" | 3405 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.2.tgz#7cf783331320098bfbef620df3b3c770147bc224" |
3389 | integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== | 3406 | integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== |
3390 | 3407 | ||
3408 | +axios@^0.21.1: | ||
3409 | + version "0.21.1" | ||
3410 | + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" | ||
3411 | + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== | ||
3412 | + dependencies: | ||
3413 | + follow-redirects "^1.10.0" | ||
3414 | + | ||
3391 | axobject-query@^2.2.0: | 3415 | axobject-query@^2.2.0: |
3392 | version "2.2.0" | 3416 | version "2.2.0" |
3393 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" | 3417 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" |
... | @@ -5982,6 +6006,11 @@ follow-redirects@^1.0.0: | ... | @@ -5982,6 +6006,11 @@ follow-redirects@^1.0.0: |
5982 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" | 6006 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" |
5983 | integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== | 6007 | integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== |
5984 | 6008 | ||
6009 | +follow-redirects@^1.10.0: | ||
6010 | + version "1.14.1" | ||
6011 | + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" | ||
6012 | + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== | ||
6013 | + | ||
5985 | for-in@^1.0.2: | 6014 | for-in@^1.0.2: |
5986 | version "1.0.2" | 6015 | version "1.0.2" |
5987 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" | 6016 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" | ... | ... |
-
Please register or login to post a comment