UNPKG

@cross-nft-marketplace/auction-house-nft-components

Version:
85 lines (84 loc) 5.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BidHistory = void 0; const react_1 = require("react"); const jsx_runtime_1 = require("react/jsx-runtime"); const react_2 = require("react"); const PricingString_1 = require("../utils/PricingString"); const AddressView_1 = require("../components/AddressView"); const NFTDataContext_1 = require("../context/NFTDataContext"); const useMediaContext_1 = require("../context/useMediaContext"); const InfoContainer_1 = require("./InfoContainer"); const date_1 = require("../utils/date"); const media_urls_1 = require("../constants/media-urls"); //todo sort bidHistory by block and logIndex const BidHistory = ({ className, }) => { const { nft } = (0, react_2.useContext)(NFTDataContext_1.NFTDataContext); const { getString, getStyles, style, networkId } = (0, useMediaContext_1.useMediaContext)(); const getPastBids = () => { var _a, _b, _c, _d; if (!nft || !nft.pricing) { return (0, jsx_runtime_1.jsx)(react_2.Fragment, {}); } const data = nft; const auction = nft.pricing; if (!auction.trasformedPricing) { return (0, jsx_runtime_1.jsx)(react_2.Fragment, {}); } const currentBid = auction.trasformedPricing.currentBid ? [auction.trasformedPricing.currentBid] : []; const eventsList = [ ...(auction.trasformedPricing.previousBids || []), ...currentBid, ].map((bid) => ({ activityDescription: getString((bid === null || bid === void 0 ? void 0 : bid.buyNowActual) ? "BID_HISTORY_PURCHASED_FOR" : "BID_HISTORY_BID"), actor: bid.bidder, pricing: (0, jsx_runtime_1.jsx)(PricingString_1.PricingString, { pricing: bid.trasformedPricing, showUSD: false }), createdAt: bid.transactionInfo.blockTimestamp, transactionHash: bid.transactionInfo.transactionHash, key: `${bid.transactionInfo.transactionHash}-${bid.transactionInfoLogIndex}-bid` })); if (auction.approvedTransactionInfo && auction.createTransactionInfo && auction.tokenOwner) { eventsList.push({ activityDescription: getString("BID_HISTORY_LISTED"), pricing: (0, jsx_runtime_1.jsx)(react_2.Fragment, {}), actor: auction.tokenOwner, createdAt: auction.approvedTransactionInfo.blockTimestamp, transactionHash: auction.createTransactionInfo.transactionHash, key: `${auction.tokenOwner.wallet}-${auction.approvedTransactionInfo.blockTimestamp}-listed` }); } if (auction.isLikelyHasEnded && !auction.endedUsingBuyNow) { const highestBid = auction.topBid; const wonDt = ((_a = auction.finalizedTransactionInfo) === null || _a === void 0 ? void 0 : _a.blockTimestamp) ? auction.finalizedTransactionInfo.blockTimestamp : auction.expectedEndTimestamp; eventsList.push({ activityDescription: getString("BID_HISTORY_WON_AUCTION"), pricing: (0, jsx_runtime_1.jsx)(react_2.Fragment, {}), actor: highestBid.bidder, createdAt: wonDt, transactionHash: highestBid.transactionInfo.transactionHash, key: `${highestBid.bidder.wallet}-${wonDt}-won` }); } if (data.creator) { eventsList.push({ key: `${(_b = data.creator) === null || _b === void 0 ? void 0 : _b.wallet}-${null}-minted`, activityDescription: getString("BID_HISTORY_MINTED"), pricing: (0, jsx_runtime_1.jsx)(react_2.Fragment, {}), actor: data.creator, createdAt: ((_c = data === null || data === void 0 ? void 0 : data.mintInfo) === null || _c === void 0 ? void 0 : _c.blockTimestamp) || 0, transactionHash: (_d = data.mintInfo) === null || _d === void 0 ? void 0 : _d.transactionHash, }); } return eventsList .sort((bidA, bidB) => (bidA.createdAt > bidB.createdAt ? -1 : 1)) .map((bidItem) => ((0, react_1.createElement)("li", { ...getStyles("fullPageHistoryItem"), key: bidItem.key }, (0, jsx_runtime_1.jsxs)("div", { ...getStyles("fullPageHistoryItemDescription"), children: [(0, jsx_runtime_1.jsxs)("div", { ...getStyles("fullPageHistoryItemDescriptionCopy"), children: [(0, jsx_runtime_1.jsx)(AddressView_1.AddressView, { address: bidItem.actor }), "\u00A0", (0, jsx_runtime_1.jsxs)("span", { ...getStyles("pricingAmount"), children: [bidItem.activityDescription, " ", bidItem.pricing] })] }), bidItem.transactionHash && style.theme.showTxnLinks && ((0, jsx_runtime_1.jsx)("a", { ...getStyles("fullPageHistoryTxnLink"), href: `${media_urls_1.VIEW_ETHERSCAN_URL_BASE_BY_NETWORK[networkId]}tx/${bidItem.transactionHash}`, target: "_blank", rel: "noreferrer", children: getString("BID_HISTORY_VIEW_TRANSACTION") }))] }), bidItem.createdAt > 0 && ((0, jsx_runtime_1.jsx)("div", { ...getStyles("fullPageHistoryItemMeta"), children: (0, jsx_runtime_1.jsx)("time", { dateTime: (0, date_1.dateFromTimestamp)(bidItem.createdAt.toString()).toISOString(), ...getStyles("fullPageHistoryItemDatestamp"), children: (0, date_1.dateFormat)(bidItem.createdAt.toString()) }) }))))); }; return ((0, jsx_runtime_1.jsx)(InfoContainer_1.InfoContainer, { titleString: "NFT_HISTORY", className: className, children: (0, jsx_runtime_1.jsx)("ol", { ...getStyles("fullPageHistoryList"), children: getPastBids() }) })); }; exports.BidHistory = BidHistory;