diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx
index f3f15d9..a1de63a 100644
--- a/frontend/app/page.tsx
+++ b/frontend/app/page.tsx
@@ -752,8 +752,10 @@ export default function Page() {
function formatTrophies(value: number) {
const sign = value > 0 ? '' : '+';
-
- return `${sign}${value} trophies`;
+ let gained = false;
+ if(sign === '+') gained = true;
+ let suffix = gained ? 'gained' : 'lost';
+ return `${sign}${value} trophies ${suffix}`;
}
function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
@@ -1399,50 +1401,50 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
Manage Attacks
- {defenses.length ? (
- defenses.slice(0, 10).map((defense) => {
- const categoryName =
- categoryNameMap.get(defense.armyCategoryId) || defense.categoryName || '(No category)';
- return (
- -
-
-
- {defense.baseTitle}{' '}
- {categoryName}
-
-
-
-
-
+ {defenses.length ? (
+ defenses.slice(0, 10).map((defense) => {
+ const categoryName =
+ categoryNameMap.get(defense.armyCategoryId) || defense.categoryName || '(No category)';
+ return (
+
-
+
+
+ {defense.baseTitle}{' '}
+ {categoryName}
- {defense.stars}★
- {defense.percent}%
- {formatTrophies(defense.trophies)}
- {new Date(defense.createdAt).toLocaleString()}
+
+
-
- );
- })
- ) : (
-
- No attacks logged yet.
- )}
-
- {defenses.length > 10 ? (
-
Showing the latest 10 entries.
- ) : null}
+
+
+ {defense.stars}★
+ {defense.percent}%
+ {formatTrophies(defense.trophies)}
+ {new Date(defense.createdAt).toLocaleString()}
+
+
+ );
+ })
+ ) : (
+
- No attacks logged yet.
+ )}
+
+ {defenses.length > 10 ? (
+
Showing the latest 10 entries.
+ ) : null}
{defenseBeingEdited && (
@@ -1555,7 +1557,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
@@ -1638,7 +1640,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
@@ -1765,8 +1767,8 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
- {reset.trophiesAtStart} trophies at start
- {formatTrophies(reset.trophiesLost)} lost
+ {reset.trophiesAtStart} trophies
+ {formatTrophies(reset.trophiesLost)}
{reset.numberOfDefenses} defenses
@@ -1781,30 +1783,30 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
Defenses
- {defenses.filter((defense) => defense.baseId === selectedBaseId).length ? (
- defenses
- .filter((defense) => defense.baseId === selectedBaseId)
- .map((defense) => {
- const date = new Date(defense.createdAt);
- const categoryName = categoryNameMap.get(defense.armyCategoryId) || '(No category)';
- return (
- -
-
-
{categoryName}
-
- {defense.stars}★ • {defense.percent}% • {formatTrophies(defense.trophies)}
-
+ {defenses.filter((defense) => defense.baseId === selectedBaseId).length ? (
+ defenses
+ .filter((defense) => defense.baseId === selectedBaseId)
+ .map((defense) => {
+ const date = new Date(defense.createdAt);
+ const categoryName = categoryNameMap.get(defense.armyCategoryId) || '(No category)';
+ return (
+
-
+
+
{categoryName}
+
+ {defense.stars}★ • {defense.percent}% • {formatTrophies(defense.trophies)}
-
- {date.toLocaleString()}
-
-
- );
- })
- ) : (
-
- No defenses recorded for this base yet.
- )}
-
+
+
+ {date.toLocaleString()}
+
+
+ );
+ })
+ ) : (
+
- No defenses recorded for this base yet.
+ )}
+