From c298d8d8f7ce9f196bb7066fdaa8f79455b22a95 Mon Sep 17 00:00:00 2001 From: Step7750 Date: Tue, 1 Aug 2023 21:27:14 -0600 Subject: [PATCH] Adds Auto-Fill All --- src/lib/components/trade_offer/auto_fill.ts | 49 +++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/src/lib/components/trade_offer/auto_fill.ts b/src/lib/components/trade_offer/auto_fill.ts index 772ca485..7545cc11 100644 --- a/src/lib/components/trade_offer/auto_fill.ts +++ b/src/lib/components/trade_offer/auto_fill.ts @@ -105,6 +105,41 @@ export class AutoFill extends FloatElement { `; } + renderBulkAutoFillDialog(rawTrades: Trade[]): HTMLTemplateResult { + // Remove items already included and non-pending + const fTrades = rawTrades + .filter( + (trade) => !g_rgCurrentTradeStatus.me.assets.find((a) => a.assetid === trade.contract.item.asset_id) + ) + .filter((trade) => trade.state === TradeState.PENDING); + + // Bulk implies > 1 + if (fTrades.length <= 1) { + return html``; + } + + const totalValue = fTrades.map((e) => e.contract.price).reduce((acc, e) => acc + e, 0); + + return html` +
+
+
+ +
+ Detected ${fTrades.length} Sales +
Total Value: $${(totalValue / 100).toFixed(2)}
+
+ +
+ `; + } + getSaleInfo(item: Item): HTMLTemplateResult { if (item.float_value) { return html` @@ -157,14 +192,22 @@ export class AutoFill extends FloatElement { protected render(): HTMLTemplateResult { if (!this.pendingTradesResponse) return html``; + const tradesToBuyer = this.pendingTradesResponse.trades_to_send.filter( + (e) => e.buyer_id === UserThem?.strSteamId + ); + return html` - ${this.pendingTradesResponse.trades_to_send - .filter((e) => e.buyer_id === UserThem?.strSteamId) - .map((e) => this.renderAutoFillDialog(e))} + ${this.renderBulkAutoFillDialog(tradesToBuyer)} ${tradesToBuyer.map((e) => this.renderAutoFillDialog(e))} ${this.showWarningDialog()} `; } + autoFillAll(trades: Trade[]) { + for (const trade of trades) { + this.autoFill(trade); + } + } + autoFill(trade: Trade) { $J('#inventory_select_your_inventory').click(); const el = UserYou?.findAsset(AppId.CSGO, ContextId.PRIMARY, trade.contract.item.asset_id)?.element;