diff --git a/app/components/inventory.tsx b/app/components/inventory.tsx index 36d7d07..e801f55 100644 --- a/app/components/inventory.tsx +++ b/app/components/inventory.tsx @@ -13,6 +13,10 @@ export function Inventory({ side }: { side: "T" | "CT" }) { const [weapons, setWeapons] = useState>([]); const { notify } = useNotification(); + const setWeapon = (index:number, newWeapon:WeaponInfo) => { + setWeapons(weapons.map((v,i) => (i===index ? newWeapon: v))) + } + useEffect(() => { const fetch_weapons = async () => { let response = await fetch( @@ -141,19 +145,22 @@ export function Inventory({ side }: { side: "T" | "CT" }) {
{knife && ( setKnife(newSkin as WeaponInfo)} side={side} > )} {gloves && ( setGloves(newSkin as WeaponInfo)} side={side} > )} {agent && ( setAgent(newSkin as AgentInfo)} side={side} > )} @@ -167,7 +174,8 @@ export function Inventory({ side }: { side: "T" | "CT" }) { {weapons.map((v, i) => ( setWeapon(i, newWeapon as WeaponInfo)} side={side} /> ))} diff --git a/app/components/skin_selector.tsx b/app/components/skin_selector.tsx index d2288d7..fe8a67a 100644 --- a/app/components/skin_selector.tsx +++ b/app/components/skin_selector.tsx @@ -17,7 +17,7 @@ export function SkinSelector({ setIsOpen, skin, setSkin, - side + side, }: { isOpen: boolean; setIsOpen: Dispatch>; @@ -32,7 +32,7 @@ export function SkinSelector({ if (skin instanceof WeaponInfo) { const newSkin = new WeaponInfo(skin); newSkin.paint_index = v.paint_index; - newSkin.display = newSkin.display.split("|")[0] + " | " + v.display; + newSkin.display = v.display === "" ? newSkin.display : newSkin.display.split("|")[0] + " | " + v.display; newSkin.min_float = v.min_float; newSkin.max_float = v.max_float; newSkin.color = v.color; @@ -70,6 +70,7 @@ export function SkinSelector({ fetchSkins(); } }, [isOpen]); + return ( - + { @@ -87,7 +88,7 @@ export function SkinSelector({ }} /> -
+
{skins && skins.map((v, i) => ( ))}
diff --git a/app/components/skin_tile.tsx b/app/components/skin_tile.tsx index bc0a3e5..198dc32 100644 --- a/app/components/skin_tile.tsx +++ b/app/components/skin_tile.tsx @@ -1,18 +1,19 @@ import { Button, Typography } from "@heroui/react"; import { Float } from "./float"; -import { useState } from "react"; +import { useState, type Dispatch, type SetStateAction } from "react"; import { SkinDialog } from "./skin_dialog"; import { WeaponInfo, AgentInfo } from "~/types/skin"; export function SkinTile({ - skinInfo, + skin, + setSkin, side, }: { - skinInfo: WeaponInfo | AgentInfo; + skin: WeaponInfo | AgentInfo; + setSkin: Dispatch> side: "T" | "CT"; }) { const [isDialogOpen, setIsDialogOpen] = useState(false); - const [skin, setSkin] = useState(skinInfo); const acolor = `${skin.color}64`; return ( <>