From 5dc1744cfdf6e1b6bfbc1b45d3c85bf971c09781 Mon Sep 17 00:00:00 2001 From: aurinex Date: Mon, 29 Dec 2025 22:31:20 +0500 Subject: [PATCH] add set description in sell item --- src/renderer/api.ts | 2 + src/renderer/components/PlayerInventory.tsx | 12 ++++++ src/renderer/pages/Marketplace.tsx | 44 +++++++++++++-------- 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/renderer/api.ts b/src/renderer/api.ts index 12e2137..2fdf53c 100644 --- a/src/renderer/api.ts +++ b/src/renderer/api.ts @@ -1155,6 +1155,7 @@ export async function sellItem( amount: number, price: number, server_ip: string, + description: string, ): Promise<{ status: string; operation_id: string }> { const response = await fetch(`${API_BASE_URL}/api/marketplace/items/sell`, { method: 'POST', @@ -1167,6 +1168,7 @@ export async function sellItem( amount, price, server_ip, + description, }), }); diff --git a/src/renderer/components/PlayerInventory.tsx b/src/renderer/components/PlayerInventory.tsx index eea1a6f..80cf912 100644 --- a/src/renderer/components/PlayerInventory.tsx +++ b/src/renderer/components/PlayerInventory.tsx @@ -161,6 +161,8 @@ const PlayerInventory = React.forwardRef(false); const [sellError, setSellError] = useState(null); + const [description, setDescription] = useState(''); + // Функция для запроса инвентаря игрока const fetchPlayerInventory = async () => { try { @@ -256,6 +258,7 @@ const PlayerInventory = React.forwardRef + setDescription(e.target.value)} + inputProps={{ min: 1 }} + sx={INPUT_SX} + /> + {sellError && ( { const meta = item.item_data; - if (!meta) return false; + // if (!meta) return false; // базовые поля, которые НЕ считаем метой const baseKeys = ['slot', 'material', 'amount']; @@ -643,6 +643,12 @@ export default function Marketplace() { return Object.keys(meta).some((key) => !baseKeys.includes(key)); }; + const hasItemDetails = (item: MarketplaceItemResponse) => { + return Boolean( + hasItemMeta(item) || item.description + ); + }; + const statusChip = useMemo(() => { if (statusLoading) { @@ -892,14 +898,15 @@ export default function Marketplace() { {metaItem && (() => { const meta = getItemMeta(metaItem); - if (!meta) return null; - const enchants = formatEnchants(meta.enchants); + const enchants = meta ? formatEnchants(meta.enchants) : []; - const filteredMeta = Object.entries(meta).filter(([key]) => - key !== 'enchants' && - metaKeyMatchesSearch(key, metaSearch) - ); + const filteredMeta = meta + ? Object.entries(meta).filter(([key]) => + key !== 'enchants' && + metaKeyMatchesSearch(key, metaSearch) + ) + : []; return ( @@ -961,15 +968,18 @@ export default function Marketplace() { )} {/* SEARCH */} - setMetaSearch(e.target.value)} - fullWidth - sx={PRICE_FIELD_SX} - /> - - + {meta && Object.keys(meta).length > 0 && ( + + setMetaSearch(e.target.value)} + fullWidth + sx={PRICE_FIELD_SX} + /> + + + )} {/* ENCHANTS */} {enchants && ( @@ -1372,7 +1382,7 @@ export default function Marketplace() { }} > {/* INFO BUTTON */} - {hasItemMeta(item) && ( + {hasItemDetails(item) && ( openMetaDialog(item)} size="small"