2eee5195cc
* new react and reactdom packages in wallet * new react and reactdom packages in root * new react and reactdom packages in nym connect * new react and reactdom packages in root * update react and reactdom for explorer * react and react-dom upgrade for ts-packages remove unused import fix linting error * use custom FC typing move typings folder * fix type error
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import React, { useRef } from 'react';
|
|
import { MoreVertSharp } from '@mui/icons-material';
|
|
import { IconButton, ListItemIcon, ListItemText, Menu, MenuItem } from '@mui/material';
|
|
|
|
export const ActionsMenu: FCWithChildren<{
|
|
open: boolean;
|
|
children: React.ReactNode;
|
|
onOpen: () => void;
|
|
onClose: () => void;
|
|
}> = ({ children, open, onOpen, onClose }) => {
|
|
const anchorEl: any = useRef<HTMLElement>();
|
|
|
|
return (
|
|
<>
|
|
<IconButton ref={anchorEl} onClick={onOpen}>
|
|
<MoreVertSharp sx={{ color: (t) => t.palette.nym.nymWallet.text.main }} />
|
|
</IconButton>
|
|
<Menu anchorEl={anchorEl.current} open={open} onClose={onClose}>
|
|
{children}
|
|
</Menu>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export const ActionsMenuItem = ({
|
|
title,
|
|
description,
|
|
onClick,
|
|
Icon,
|
|
disabled,
|
|
}: {
|
|
title: string;
|
|
description?: string;
|
|
onClick?: () => void;
|
|
Icon?: React.ReactNode;
|
|
disabled?: boolean;
|
|
}) => (
|
|
<MenuItem sx={{ p: 2 }} onClick={onClick} disabled={disabled}>
|
|
<ListItemIcon sx={{ color: 'text.primary' }}>{Icon}</ListItemIcon>
|
|
<ListItemText sx={{ color: 'text.primary' }} primary={title} secondary={description} />
|
|
</MenuItem>
|
|
);
|