Plan stuff. Log stuff.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.1 KiB

  1. <script>
  2. import {onMount} from "svelte";
  3. import {get} from "svelte/store";
  4. import items from "../stores/items";
  5. import modal from "../stores/modal";
  6. import Boi from "../components/Boi.svelte";
  7. import AddBoi from "../components/AddBoi.svelte";
  8. import Link from "../components/Link.svelte";
  9. import ItemTable from "../components/tables/ItemTable.svelte";
  10. let activeItems = [];
  11. let inactiveItems = [];
  12. onMount(() => {
  13. items.listItems().catch(err => {
  14. console.warn("Item fetch failed:", err)
  15. })
  16. })
  17. function openModal(modalName, id) {
  18. const list = get(items)
  19. const item = list.find(i => i.id === id)
  20. modal.open(modalName, {item})
  21. }
  22. $: activeItems = $items.filter(i => i.active)
  23. $: inactiveItems = $items.filter(i => !i.active)
  24. </script>
  25. <div class="page">
  26. <AddBoi top on:click={() => modal.open("item.create")}>Item</AddBoi>
  27. <Boi header="Active Items" icon="cubes">
  28. <ItemTable items={activeItems} />
  29. </Boi>
  30. <Boi header="Archived Items" icon="archive">
  31. <ItemTable items={inactiveItems} />
  32. </Boi>
  33. </div>
  34. <style>
  35. div.page {
  36. width: 100ch;
  37. max-width: 90%;
  38. margin: auto;
  39. }
  40. </style>