-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathPaymentProviderSelect.tsx
44 lines (39 loc) · 1.17 KB
/
PaymentProviderSelect.tsx
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
import { Menu, MenuButton, MenuList, MenuItem, Button } from "@chakra-ui/react";
import { ChevronBarDown } from "react-bootstrap-icons";
import { useReactFlow } from "reactflow";
const PAYMENT_PROVIDERS = [
{ code: "St", name: "Stripe" },
{ code: "Gp", name: "Google Pay" },
{ code: "Ap", name: "Apple Pay" },
{ code: "Pp", name: "Paypal" },
{ code: "Am", name: "Amazon Pay" },
];
export default function PaymentProviderSelect() {
const { setNodes } = useReactFlow();
const onProviderClick = ({ name, code }: { name: string; code: string }) => {
const location = Math.random() * 500;
setNodes((prevNodes) => [
...prevNodes,
{
id: `${prevNodes.length + 1}`,
data: { name, code },
type: "paymentProvider",
position: { x: location, y: location },
},
]);
};
return (
<Menu>
<MenuButton as={Button} rightIcon={<ChevronBarDown />}>
Add Payment Provider
</MenuButton>
<MenuList>
{PAYMENT_PROVIDERS.map((provider) => (
<MenuItem onClick={() => onProviderClick(provider)}>
{provider.name}
</MenuItem>
))}
</MenuList>
</Menu>
);
}