/ islands / Inventory.tsx
Inventory.tsx
 1  import { useState } from "preact/hooks";
 2  import Phase from "../components/Phase.tsx"
 3  
 4  export interface IItem {
 5    itemName: string
 6  }
 7  
 8  export default function Inventory() {
 9    const [items, setItem] = useState<IItem[]>([]);
10  
11    const addToInventory = (i: IItem) => {
12        setItem([...items, i])
13    }
14  
15    return (
16      <div class="items-center justify-start h-1/2 w-4/5">
17        <p class="font-mono p-3 mx-3">inventory</p>
18        <div class="border-2 border-solid rounded-lg h-96">
19          {
20            items.map(item => {
21              return (
22                <p class="font-mono p-3 mx-3">{ item.itemName }</p>
23              )
24            })
25          }
26        </div>
27        {Phase.value.isItemAvailable &&
28          <button
29            class="text-center border-2 border-solid rounded-lg font-mono p-3 mx-3 my-3 bg-green-100 hover:bg-green-400"
30            onClick={ () => addToInventory({ itemName: Phase.value.item }) }
31          >
32            pick up
33          </button>
34        }
35      </div>
36    );
37  }