import React, { Fragment, FC } from "react"; import { MemberForm } from "@dorgtech/daocreator-lib"; import { MDBRow, MDBContainer, MDBTooltip, MDBBtn, MDBIcon, MDBCol } from "mdbreact"; import EthAddressAvatar from "../../EthAddressAvatar"; import FormField from "../../FormField"; import { truncateString } from "../../../utils"; const pencilIcon = require("../../../assets/icons/pencil.svg"); interface Props { membersForm: any; editing: number; editedMemberForm: MemberForm; onEdit: any; onDelete: any; selectEdit: any; cancelEdit: any; tokenDistribution: boolean; getDAOTokenSymbol: () => string; } interface RowProps { memberForm: MemberForm; index: number; } export const MembersTable: FC = ({ membersForm, editing, editedMemberForm, onEdit, onDelete, selectEdit, cancelEdit, tokenDistribution, getDAOTokenSymbol }) => { const Row: FC = ({ memberForm, index }) => { const lineEdit = editing === index; return (
{ navigator.clipboard.writeText(memberForm.values.address); }} style={ (styles.noPadding, { cursor: "pointer", display: "inline-block", color: "blue" }) } > {truncateString(memberForm.values.address, 6, 4)}
Click to copy
window.open( `https://etherscan.io/address/${memberForm.values.address}` ) } floating size="lg" color="transparent" style={styles.link} >
{lineEdit ? (
{ if (event.key === "Enter") onEdit(index); }} >
) : (
{memberForm.values.reputation}
)}
{tokenDistribution && ( {lineEdit ? (
{ if (event.key === "Enter") onEdit(index); }} >
) : (
{memberForm.values.tokens}
)}
)}
{ lineEdit ? onEdit(index) : selectEdit(index); }} style={styles.editCol} id="editCol" > {lineEdit ? ( ) : ( menu icon )}
{ lineEdit ? cancelEdit() : onDelete(index); }} style={styles.editCol} id="editCol" > {lineEdit ? ( ) : ( )}
); }; if (membersForm.$.length === 0) return ; return (
MEMBERS REPUTATION {tokenDistribution && ( {getDAOTokenSymbol()} TOKEN )} {membersForm.$.map((memberForm: MemberForm, index: number) => ( ))}
); }; const styles = { tableWidth: { width: "-webkit-fill-available", marginLeft: "-10.5px", marginRight: "-11.5px", borderBottom: "0.5px solid lightgray", borderTop: "0.5px lightgray", padding: "5px" }, titles: { fontSize: "13px", color: "gray", padding: "10px 0" }, borderCell: { padding: "5px 0", paddingTop: "7px", paddingRight: '1px', paddingLeft: '1px' }, addressCell: { marginLeft: "-5px", padding: "5px 0" }, avatarCell: { width: "20px", padding: "5px 0", paddingTop: "7px" }, noPadding: { padding: 0 }, link: { backgroundColor: "transparent !important", color: "lightgray", boxShadow: "none", fontSize: "normal", border: "none", outline: "none", padding: 0, margin: "2px", marginLeft: "14px" }, editCol: { paddingTop: "5px", cursor: "pointer", } };