@cross-nft-marketplace/auction-house-nft-components
Version:
NFT Media Rendering Components
85 lines (84 loc) • 5.76 kB
JavaScript
;
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;