The main server, and probably only repository in this org.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
4.3 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. import React, {useState} from "react";
  2. import {
  3. Button,
  4. Card,
  5. CardBody,
  6. CardFooter,
  7. CardHeader,
  8. Col,
  9. Form,
  10. FormGroup,
  11. Input,
  12. Label,
  13. Nav,
  14. NavItem,
  15. NavLink,
  16. TabPane
  17. } from "reactstrap";
  18. import TabContent from "reactstrap/es/TabContent";
  19. import useAuth from "../../Hooks/auth";
  20. import {onEnter} from "../../Helpers/keys";
  21. export default function LoginForm() {
  22. const {login, register} = useAuth();
  23. const [tab, setTab] = useState(1);
  24. const [loginUser, setLoginUser] = useState("");
  25. const [loginPass, setLoginPass] = useState("");
  26. const [regUser, setRegUser] = useState("");
  27. const [regPass1, setRegPass1] = useState("");
  28. const [regPass2, setRegPass2] = useState("");
  29. return (
  30. <Card className="mt-3">
  31. <CardHeader>Tilgangskontroll</CardHeader>
  32. <CardBody>
  33. <Nav tabs>
  34. <NavItem>
  35. <NavLink className={tab === 1 ? "active" : ""}
  36. onClick={() => setTab(1)}
  37. onKeyDown={onEnter(() => setTab(1))}
  38. tabIndex={0}
  39. >
  40. Innlogging
  41. </NavLink>
  42. </NavItem>
  43. <NavItem>
  44. <NavLink className={tab === 2 ? "active" : ""}
  45. onClick={() => setTab(2)}
  46. onKeyDown={onEnter(() => setTab(2))}
  47. tabIndex={0}
  48. >
  49. Registrering
  50. </NavLink>
  51. </NavItem>
  52. </Nav>
  53. <TabContent activeTab={tab} className="mt-3">
  54. <TabPane tabId={1}>
  55. <Form>
  56. <FormGroup row>
  57. <Label sm={3} for="input-login-user">Brukernavn</Label>
  58. <Col sm={9}>
  59. <Input type="text"
  60. id="input-login-user"
  61. value={loginUser}
  62. onChange={e => setLoginUser(e.target.value)}
  63. />
  64. </Col>
  65. </FormGroup>
  66. <FormGroup row>
  67. <Label sm={3} for="input-login-password">Passord</Label>
  68. <Col sm={9}>
  69. <Input type="password"
  70. id="input-login-password"
  71. value={loginPass}
  72. onChange={e => setLoginPass(e.target.value)}
  73. />
  74. </Col>
  75. </FormGroup>
  76. </Form>
  77. </TabPane>
  78. <TabPane tabId={2}>
  79. <Form>
  80. <FormGroup row>
  81. <Label sm={3} for="input-reg-user">Brukernavn</Label>
  82. <Col sm={9}>
  83. <Input type="text"
  84. id="input-reg-user"
  85. value={regUser}
  86. onChange={e => setRegUser(e.target.value)}
  87. />
  88. </Col>
  89. </FormGroup>
  90. <FormGroup row>
  91. <Label sm={3} for="input-reg-password-1">Passord</Label>
  92. <Col sm={9}>
  93. <Input type="password"
  94. id="input-reg-password-1"
  95. value={regPass1}
  96. onChange={e => setRegPass1(e.target.value)}
  97. />
  98. </Col>
  99. </FormGroup>
  100. <FormGroup row>
  101. <Label sm={3} for="input-reg-password-2">Gjenta passord</Label>
  102. <Col sm={9}>
  103. <Input type="password"
  104. id="input-reg-password-2"
  105. value={regPass2}
  106. onChange={e => setRegPass2(e.target.value)}
  107. />
  108. </Col>
  109. </FormGroup>
  110. </Form>
  111. </TabPane>
  112. </TabContent>
  113. </CardBody>
  114. <CardFooter>
  115. {tab === 1 && <Button color="primary" onClick={() => login(loginUser, loginPass)}>Logg inn</Button>}
  116. {tab === 2 && (
  117. <>
  118. <Button color="primary"
  119. onClick={() => register(regUser, regPass1, regPass2)}
  120. >
  121. Registrer
  122. </Button>
  123. {" "}
  124. <Button color="secondary"
  125. onClick={() => {
  126. setRegUser("");
  127. setRegPass1("");
  128. setRegPass2("");
  129. setTab(1);
  130. }}>
  131. Avbryt
  132. </Button>
  133. </>
  134. )}
  135. </CardFooter>
  136. </Card>
  137. );
  138. }