Skip to content

Commit dbd36ae

Browse files
committed
Don't display empty tables
1 parent 87a0299 commit dbd36ae

5 files changed

Lines changed: 72 additions & 57 deletions

File tree

src/components/item_table.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -182,16 +182,6 @@ export default class ItemTable extends Table {
182182
]
183183
});
184184

185-
const emptyTableRowElement = CreateElement("tr", {
186-
children: [
187-
CreateElement("td", {
188-
class: "cs2s_table_empty",
189-
colspan: 6,
190-
text: this.#mode == ItemTable.MODE.RETRIEVE ? "Storage Unit is empty" : "Inventory has no storable items"
191-
})
192-
]
193-
});
194-
195185
// Build Footer Elements
196186
if (this.#mode === ItemTable.MODE.RETRIEVE) {
197187
this.#selectionLimit = Constant.INVENTORY_ITEM_LIMIT - inventory.items.filter(x => typeof x.attributes["trade protected escrow date"] === "undefined").length;
@@ -419,7 +409,6 @@ export default class ItemTable extends Table {
419409
// Build Table
420410
this._CreateTable(items, tableHeaderElement, tableFooterElement, {
421411
defaultSort: this.#defaultSort,
422-
emptyTableRowElement: emptyTableRowElement,
423412
popupTitle: popupTitle,
424413
popupTitleChildren: [
425414
popupTitleCrateNameElement

src/components/table.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ export default class Table {
1010
_sortColumns = null;
1111
_sortDirection = null;
1212
#defaultSort;
13-
#emptyTableRowElement;
1413

1514
static #ROW_HEIGHT = 69;
1615
static #BUFFER_ROWS = 3;
@@ -38,7 +37,6 @@ export default class Table {
3837
this._filteredData = tableData;
3938

4039
this.#defaultSort = options.defaultSort ?? null;
41-
this.#emptyTableRowElement = options.emptyTableRowElement ?? null;
4240

4341
// Reset all row elements created by another table
4442
this._data.map(item => delete item.element);
@@ -109,10 +107,6 @@ export default class Table {
109107
this.#tableBodyElement.append(rowElement);
110108
}
111109

112-
if (this._data.length == 0 && this.#emptyTableRowElement) {
113-
this.#tableBodyElement.append(this.#emptyTableRowElement);
114-
}
115-
116110
this.#spacerElement.style.height = "0px"
117111
this.#spacerElement.style.height = `${(this._filteredData.length * Table.#ROW_HEIGHT) - this.#tableElement.clientHeight + 31}px`;
118112

src/core/script.js

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,47 @@ class Script {
275275
return true;
276276
}
277277

278+
ShowMessage(options, ...messages) {
279+
const popup = new Popup({
280+
title: options.title ?? "Counter-Strike 2 Script Message",
281+
simpleMode: true,
282+
popoverMode: true,
283+
fade: false,
284+
body: [
285+
CreateElement("div", {
286+
class: "cs2s_action_body",
287+
children: [
288+
CreateElement("div", {
289+
class: "cs2s_action_message_tall cs2s_action_multi_message",
290+
children: [
291+
...messages.map(message =>
292+
CreateElement("div", {
293+
class: "cs2s_action_message",
294+
text: message
295+
})
296+
)
297+
]
298+
}),
299+
CreateElement("div", {
300+
class: "cs2s_action_buttons",
301+
children: [
302+
CreateElement("div", {
303+
class: "cs2s_grey_long_button",
304+
text: "Close",
305+
onclick: () => {
306+
popup.Hide();
307+
}
308+
})
309+
]
310+
})
311+
]
312+
})
313+
]
314+
});
315+
316+
popup.Show();
317+
}
318+
278319
ShowError(options, ...errors) {
279320
if (!this.#errorTableBody) {
280321
this.#errorTableBody = CreateElement("tbody");
@@ -305,44 +346,7 @@ class Script {
305346
}
306347

307348
if (options.level === ERROR_LEVEL.HIGH) {
308-
const popup = new Popup({
309-
title: "Counter-Strike 2 Script Error",
310-
simpleMode: true,
311-
popoverMode: true,
312-
fade: false,
313-
body: [
314-
CreateElement("div", {
315-
class: "cs2s_action_body",
316-
children: [
317-
CreateElement("div", {
318-
class: "cs2s_action_message_tall cs2s_action_multi_message",
319-
children: [
320-
...errors.map(error =>
321-
CreateElement("div", {
322-
class: "cs2s_action_message",
323-
text: error.message
324-
})
325-
)
326-
]
327-
}),
328-
CreateElement("div", {
329-
class: "cs2s_action_buttons",
330-
children: [
331-
CreateElement("div", {
332-
class: "cs2s_grey_long_button",
333-
text: "Close",
334-
onclick: () => {
335-
popup.Hide();
336-
}
337-
})
338-
]
339-
})
340-
]
341-
})
342-
]
343-
});
344-
345-
popup.Show();
349+
this.ShowMessage({title: "Counter-Strike 2 Script Error"}, ...errors.map(error => error.message));
346350
} else if (options.level === ERROR_LEVEL.MEDIUM) {
347351
const globalNavigationButton = unsafeWindow.document.getElementById(`account_pulldown`);
348352
this.#navigationButton.classList.add("cs2s_navigation_status_error_glow");

src/cs2/items/assets/inventory_asset.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,15 @@ export default class InventoryAsset extends Asset {
394394
return;
395395
}
396396

397-
const table = new ItemTable(inventory.storedItems.filter(x => x.casket_id == this._assetid), inventory, {
397+
const casketItems = inventory.storedItems.filter(x => x.casket_id == this._assetid);
398+
399+
if (casketItems.length == 0) {
400+
Script.ShowMessage({}, "Storage Unit is empty");
401+
402+
return;
403+
}
404+
405+
const table = new ItemTable(casketItems, inventory, {
398406
mode: ItemTable.MODE.RETRIEVE,
399407
casket: casket,
400408
casketName: casket.attributes["custom name attr"]
@@ -443,7 +451,15 @@ export default class InventoryAsset extends Asset {
443451
return;
444452
}
445453

446-
const table = new ItemTable(inventory.items.filter(x => x.moveable), inventory, {
454+
const moveableItems = inventory.items.filter(x => x.moveable);
455+
456+
if (moveableItems.length == 0) {
457+
Script.ShowMessage({}, "Inventory has no storable items");
458+
459+
return;
460+
}
461+
462+
const table = new ItemTable(moveableItems, inventory, {
447463
mode: ItemTable.MODE.STORE,
448464
casket: casket,
449465
casketName: casket.attributes["custom name attr"]

src/handlers/inventory_handlers.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ export function HandleShowItemInventory() {
4747
return;
4848
}
4949

50+
if (inventory.storedItems.length == 0) {
51+
Script.ShowMessage({}, "No stored items found");
52+
53+
return;
54+
}
55+
5056
const table = new ItemTable(inventory.storedItems.slice(), inventory, {
5157
mode: ItemTable.MODE.RETRIEVE,
5258
casketName: "All Storage Units",
@@ -86,6 +92,12 @@ export function HandleShowItemInventory() {
8692
return;
8793
}
8894

95+
if (store.items.length == 0) {
96+
Script.ShowMessage({}, "No items found in the store");
97+
98+
return;
99+
}
100+
89101
const table = new StoreTable(store);
90102

91103
table.Show();

0 commit comments

Comments
 (0)