diff --git a/src/app/ItemsPage.js b/src/app/ItemsPage.js index 1e37134..5f028ac 100644 --- a/src/app/ItemsPage.js +++ b/src/app/ItemsPage.js @@ -74,25 +74,44 @@ function ItemsPage() { data.currentUser.itemsTheyWant.map((i) => i.id) ); + // This helps you compare your owns/wants to other users! If they own + // something, and you want it, we say "You own this!". And if they want + // something, and you own it, we say "You want this!". + const showYouOwnThisBadge = (item) => + !isCurrentUser && itemIdsYouOwn.has(item.id); + const showYouWantThisBadge = (item) => + !isCurrentUser && itemIdsYouWant.has(item.id); + + const sortedItemsTheyOwn = [...data.user.itemsTheyOwn].sort((a, b) => { + // This is a cute sort hack. We sort first by, bringing "You want this!" to + // the top, and then sorting by name _within_ those two groups. + const aName = `${showYouWantThisBadge(a) ? "000" : "999"} ${a.name}`; + const bName = `${showYouWantThisBadge(b) ? "000" : "999"} ${b.name}`; + return aName.localeCompare(bName); + }); + + const sortedItemsTheyWant = [...data.user.itemsTheyWant].sort((a, b) => { + // This is a cute sort hack. We sort first by, bringing "You own this!" to + // the top, and then sorting by name _within_ those two groups. + const aName = `${showYouOwnThisBadge(a) ? "000" : "999"} ${a.name}`; + const bName = `${showYouOwnThisBadge(b) ? "000" : "999"} ${b.name}`; + return aName.localeCompare(bName); + }); + return ( {isCurrentUser ? "Items you own" : `Items ${data.user.username} owns`} - {data.user.itemsTheyOwn.map((item) => ( + {sortedItemsTheyOwn.map((item) => ( {item.isNc ? : } - { - // This helps you compare your owns/wants to other users. - !isCurrentUser && itemIdsYouWant.has(item.id) && ( - - ) - } + {showYouWantThisBadge(item) && } } /> @@ -103,19 +122,14 @@ function ItemsPage() { {isCurrentUser ? "Items you want" : `Items ${data.user.username} wants`} - {data.user.itemsTheyWant.map((item) => ( + {sortedItemsTheyWant.map((item) => ( {item.isNc ? : } - { - // This helps you compare your owns/wants to other users. - !isCurrentUser && itemIdsYouOwn.has(item.id) && ( - - ) - } + {showYouOwnThisBadge(item) && } } />