forked from opens3/console
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDestinationButton.tsx
More file actions
83 lines (77 loc) · 2.4 KB
/
DestinationButton.tsx
File metadata and controls
83 lines (77 loc) · 2.4 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 get from "lodash/get";
import { useNavigate } from "react-router-dom";
import styled from "styled-components";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
interface IDestinationButton {
destinationType: string;
srcImage: string;
title: string;
}
const DestinationButtonBase = styled.button(({ theme }) => ({
background: get(theme, "boxBackground", "#FFF"),
border: `${get(theme, "borderColor", "#E2E2E2")} 1px solid`,
borderRadius: 5,
width: 250,
height: 80,
display: "flex",
alignItems: "center",
justifyContent: "start",
marginBottom: 16,
marginRight: 8,
cursor: "pointer",
overflow: "hidden",
"&:hover": {
backgroundColor: get(theme, "buttons.regular.hover.background", "#ebebeb"),
},
"& .imageContainer": {
width: 80,
"& .logoButton": {
maxWidth: 46,
maxHeight: 46,
filter: "drop-shadow(1px 1px 8px #fff)",
},
},
"& .lambdaNotifTitle": {
color: get(theme, "buttons.callAction.enabled.background", "#07193E"),
fontSize: 16,
fontFamily: "Inter,sans-serif",
paddingLeft: 18,
fontWeight: "bold",
},
}));
const DestinationButton = ({
destinationType,
srcImage,
title,
}: IDestinationButton) => {
const navigate = useNavigate();
return (
<DestinationButtonBase
onClick={() => {
navigate(`${IAM_PAGES.EVENT_DESTINATIONS_ADD}/${destinationType}`);
}}
>
<span className={"imageContainer"}>
<img src={srcImage} className={"logoButton"} alt={title} />
</span>
<span className={"lambdaNotifTitle"}>{title}</span>
</DestinationButtonBase>
);
};
export default DestinationButton;