import React, { useContext, useState } from "react"; import { Container, Col, Row, Dropdown, Form } from "react-bootstrap"; import { Spinner } from "react-bootstrap"; import { defaultNetworks } from "src/services/network/networkProvider"; import { UserPrefContext } from "src/services/userPref/userPrefProvider"; import LabelCard from "./LabelCard/LabelCard"; import Dropzone from "../Misc/Dropzone/Dropzone"; import ImportExport from "../Misc/ImportExport/ImportExport"; import "./LabelsPage.css"; const LabelsPage: React.FC = () => { const userPrefContext = useContext(UserPrefContext); if (!userPrefContext) { return (
); } const { labelMap, networkMap, setLabelMap } = userPrefContext; const [searchFilter, setSearchFilter] = useState(""); const [typefilter, setTypefilter] = useState("All"); const [networkNameFilter, setNetworkNameFilter] = useState("All"); return ( <>

Labels

Label data is stored in your browser's local storage.
Network: {networkMap.get(networkNameFilter) || defaultNetworks.get(networkNameFilter) || networkNameFilter} setNetworkNameFilter("All")}> All {[ ...new Set( Object.values(labelMap).map((label) => label.networkName) ), ].map((labelName, index) => ( setNetworkNameFilter(labelName)} key={index} > {labelName} ))} Label Type: {typefilter} setTypefilter("All")}> All setTypefilter("Account")}> Accounts setTypefilter("Contract")}> Contracts setTypefilter("Transaction")}> Transactions setTypefilter("Tx Block")}> Tx Blocks setTypefilter("DS Block")}> DS Blocks ) => { setSearchFilter(e.target.value); }} />
{Object.entries(labelMap).length === 0 ? ( x} dropCb={setLabelMap} /> ) : ( Object.entries(labelMap) .filter(([, v]) => typefilter === "All" || v.type === typefilter) .filter( ([, v]) => networkNameFilter === "All" || v.networkName === networkNameFilter ) .filter( ([, v]) => v.name && v.name.includes && v.name.includes(searchFilter) ) .map(([k, v]) => ( )) )}
); }; export default LabelsPage;