diff --git a/src/components/items/profile-pet-card.svelte b/src/components/items/profile-pet-card.svelte new file mode 100644 index 00000000..67eae7ef --- /dev/null +++ b/src/components/items/profile-pet-card.svelte @@ -0,0 +1,77 @@ + + + + {#snippet child({ props })} + + + + + {petName} + {#if pet.active} + Active + {/if} + + + Level {pet.level} + {#if pet.heldItem} + • {heldItemName} + {/if} + + + + {/snippet} + +
+
+ +
+
+

{petName}

+ {#if pet.active} + Active Pet + {/if} +
+

{tier} • Level {pet.level}

+
+
+
+

Held Item: {heldItemName}

+ {#if (pet.candyUsed ?? 0) > 0} +

Candy Used: {pet.candyUsed}

+ {/if} +

+ Experience: + + {(pet.exp ?? 0).toLocaleString(undefined, { maximumFractionDigits: 0 })} + +

+ {#if pet.skin} +

Skin: {pet.skin}

+ {/if} +
+
+
diff --git a/src/components/items/profile-pets.svelte b/src/components/items/profile-pets.svelte new file mode 100644 index 00000000..e38c803d --- /dev/null +++ b/src/components/items/profile-pets.svelte @@ -0,0 +1,126 @@ + + +
+
+
+

Pets

+ + {#if groupedPets.length === 0} +
+

No pets found

+
+ {:else} + +
+ {#each groupedPets as [rarity, pets] (rarity)} +
+

+ {rarity} +

+
+ {#each pets as pet (pet.uuid ?? pet)} + + {/each} +
+
+ {/each} +
+
+ {/if} +
+
+
diff --git a/src/routes/(main)/@[id=id]/[[profile]]/+page.svelte b/src/routes/(main)/@[id=id]/[[profile]]/+page.svelte index 01e6f8bb..0c5f7e7e 100644 --- a/src/routes/(main)/@[id=id]/[[profile]]/+page.svelte +++ b/src/routes/(main)/@[id=id]/[[profile]]/+page.svelte @@ -3,6 +3,7 @@ import ProfileEventMember from '$comp/events/profile-event-member.svelte'; import Head from '$comp/head.svelte'; import InventorySelect from '$comp/items/inventories/inventory-select.svelte'; + import ProfilePets from '$comp/items/profile-pets.svelte'; import SackContents from '$comp/items/sack-contents.svelte'; import Farmingtools from '$comp/items/tools/farmingtools.svelte'; import Breakdown from '$comp/stats/breakdown.svelte'; @@ -119,6 +120,7 @@ +