forked from opens3/console
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSubnetMFAToken.tsx
More file actions
83 lines (78 loc) · 2.7 KB
/
SubnetMFAToken.tsx
File metadata and controls
83 lines (78 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// This file is part of MinIO Console Server
// Copyright (c) 2023 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Box, Button, FormLayout, InputBox, LockIcon } from "mds";
import { useSelector } from "react-redux";
import { setSubnetOTP } from "./registerSlice";
import { AppState, useAppDispatch } from "../../../store";
import { subnetLoginWithMFA } from "./registerThunks";
import { modalStyleUtils } from "../Common/FormComponents/common/styleLibrary";
import RegisterHelpBox from "./RegisterHelpBox";
const SubnetMFAToken = () => {
const dispatch = useAppDispatch();
const subnetMFAToken = useSelector(
(state: AppState) => state.register.subnetMFAToken,
);
const subnetOTP = useSelector((state: AppState) => state.register.subnetOTP);
const loading = useSelector((state: AppState) => state.register.loading);
return (
<FormLayout
title={"Two-Factor Authentication"}
helpBox={<RegisterHelpBox />}
withBorders={false}
containerPadding={false}
>
<Box
sx={{
fontSize: 14,
display: "flex",
flexFlow: "column",
marginBottom: "30px",
}}
>
Please enter the 6-digit verification code that was sent to your email
address. This code will be valid for 5 minutes.
</Box>
<Box>
<InputBox
overlayIcon={<LockIcon />}
id="subnet-otp"
name="subnet-otp"
onChange={(event: React.ChangeEvent<HTMLInputElement>) =>
dispatch(setSubnetOTP(event.target.value))
}
placeholder=""
label=""
value={subnetOTP}
/>
</Box>
<Box sx={modalStyleUtils.modalButtonBar}>
<Button
id={"verify"}
onClick={() => dispatch(subnetLoginWithMFA())}
disabled={
loading ||
subnetOTP.trim().length === 0 ||
subnetMFAToken.trim().length === 0
}
variant="callAction"
label={"Verify"}
/>
</Box>
</FormLayout>
);
};
export default SubnetMFAToken;