Compare commits

..

2 commits

Author SHA1 Message Date
f01d77fde7 a 2025-10-15 14:38:14 +02:00
e59f917c46 RAAAAAAAAAAAAAAAAAAAH 2025-10-15 14:35:50 +02:00

View file

@ -751,8 +751,11 @@ export default function Page() {
}, [categories]); }, [categories]);
function formatTrophies(value: number) { function formatTrophies(value: number) {
const sign = value > 0 ? '+' : ''; 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 { function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
@ -1141,6 +1144,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<li>No categories yet.</li> <li>No categories yet.</li>
)} )}
</ul> </ul>
</details>
</div> </div>
</div> </div>
<div className="card"> <div className="card">
@ -1236,6 +1240,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<li>No bases yet.</li> <li>No bases yet.</li>
)} )}
</ul> </ul>
</details>
</div> </div>
{baseBeingEdited && ( {baseBeingEdited && (
<div className="subsection"> <div className="subsection">
@ -1440,6 +1445,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
{defenses.length > 10 ? ( {defenses.length > 10 ? (
<p className="muted">Showing the latest 10 entries.</p> <p className="muted">Showing the latest 10 entries.</p>
) : null} ) : null}
</details>
</div> </div>
{defenseBeingEdited && ( {defenseBeingEdited && (
<div className="subsection"> <div className="subsection">
@ -1551,7 +1557,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<input type="number" name="trophiesAtStart" min={0} step={1} required className="styled-number" /> <input type="number" name="trophiesAtStart" min={0} step={1} required className="styled-number" />
</label> </label>
<label> <label>
Trophies Lost Trophies Gained/Lost
<input type="number" name="trophiesLost" step={1} required className="styled-number" /> <input type="number" name="trophiesLost" step={1} required className="styled-number" />
</label> </label>
<label> <label>
@ -1596,7 +1602,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
</div> </div>
<div className="defense-meta"> <div className="defense-meta">
<span>{reset.trophiesAtStart} trophies</span> <span>{reset.trophiesAtStart} trophies</span>
<span>{formatTrophies(reset.trophiesLost)} lost</span> <span>{formatTrophies(reset.trophiesLost)}</span>
<span>{reset.numberOfDefenses} defenses</span> <span>{reset.numberOfDefenses} defenses</span>
</div> </div>
</li> </li>
@ -1634,7 +1640,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<input type="number" name="trophiesAtStart" min={0} step={1} required className="styled-number" defaultValue={trophyResetBeingEdited.trophiesAtStart} /> <input type="number" name="trophiesAtStart" min={0} step={1} required className="styled-number" defaultValue={trophyResetBeingEdited.trophiesAtStart} />
</label> </label>
<label> <label>
Trophies Lost Trophies Gained/Lost
<input type="number" name="trophiesLost" step={1} required className="styled-number" defaultValue={trophyResetBeingEdited.trophiesLost} /> <input type="number" name="trophiesLost" step={1} required className="styled-number" defaultValue={trophyResetBeingEdited.trophiesLost} />
</label> </label>
<label> <label>
@ -1732,6 +1738,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<li>No army categories have attacked this base yet.</li> <li>No army categories have attacked this base yet.</li>
)} )}
</ul> </ul>
</details>
</div> </div>
<div className="card"> <div className="card">
<details open> <details open>
@ -1760,8 +1767,8 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
</div> </div>
</div> </div>
<div className="defense-meta"> <div className="defense-meta">
<span>{reset.trophiesAtStart} trophies at start</span> <span>{reset.trophiesAtStart} trophies</span>
<span>{formatTrophies(reset.trophiesLost)} lost</span> <span>{formatTrophies(reset.trophiesLost)}</span>
<span>{reset.numberOfDefenses} defenses</span> <span>{reset.numberOfDefenses} defenses</span>
</div> </div>
</li> </li>
@ -1800,6 +1807,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<li>No defenses recorded for this base yet.</li> <li>No defenses recorded for this base yet.</li>
)} )}
</ul> </ul>
</details>
</div> </div>
</section> </section>
@ -1888,7 +1896,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
</ul> </ul>
</div> </div>
<div className="card"> <div className="card">
<details> <details open>
<summary><h3>Recent Resets</h3></summary> <summary><h3>Recent Resets</h3></summary>
<ul className="list compact"> <ul className="list compact">
{profileSelectedBase.trophyResets.length ? ( {profileSelectedBase.trophyResets.length ? (
@ -1897,7 +1905,7 @@ function summarizeProfileDefenses(defenses: ProfileDefense[]): Summary {
<div className="defense-header"> <div className="defense-header">
<span>{new Date(reset.date).toLocaleDateString()}</span> <span>{new Date(reset.date).toLocaleDateString()}</span>
<div className="defense-meta"> <div className="defense-meta">
<span>{reset.trophiesAtStart} trophies </span> <span>{reset.trophiesAtStart} trophies at start</span>
<span>{formatTrophies(reset.trophiesLost)} lost</span> <span>{formatTrophies(reset.trophiesLost)} lost</span>
<span>{reset.numberOfDefenses} defenses</span> <span>{reset.numberOfDefenses} defenses</span>
</div> </div>