weitere verbesserungen der Guest PWA (vor allem TaskPicker)

This commit is contained in:
Codex Agent
2025-11-12 13:19:28 +01:00
parent 1cec116933
commit d91108c883
20 changed files with 2306 additions and 653 deletions

View File

@@ -4,16 +4,16 @@ import type { EventPackageLimits } from '../../services/eventApi';
import { buildLimitSummaries } from '../limitSummaries';
const translations = new Map<string, string>([
['upload.status.cards.photos.title', 'Fotos'],
['upload.status.cards.photos.remaining', 'Noch {remaining} von {limit}'],
['upload.status.cards.photos.unlimited', 'Unbegrenzte Uploads'],
['upload.status.cards.guests.title', 'Gäste'],
['upload.status.cards.guests.remaining', '{remaining} Gäste frei (max. {limit})'],
['upload.status.cards.guests.unlimited', 'Unbegrenzte Gäste'],
['upload.status.badges.ok', 'OK'],
['upload.status.badges.warning', 'Warnung'],
['upload.status.badges.limit_reached', 'Limit erreicht'],
['upload.status.badges.unlimited', 'Unbegrenzt'],
['upload.limitSummary.cards.photos.title', 'Fotos'],
['upload.limitSummary.cards.photos.remaining', 'Noch {remaining} von {limit}'],
['upload.limitSummary.cards.photos.unlimited', 'Unbegrenzte Uploads'],
['upload.limitSummary.cards.guests.title', 'Gäste'],
['upload.limitSummary.cards.guests.remaining', '{remaining} Gäste frei (max. {limit})'],
['upload.limitSummary.cards.guests.unlimited', 'Unbegrenzte Gäste'],
['upload.limitSummary.badges.ok', 'OK'],
['upload.limitSummary.badges.warning', 'Warnung'],
['upload.limitSummary.badges.limit_reached', 'Limit erreicht'],
['upload.limitSummary.badges.unlimited', 'Unbegrenzt'],
]);
const t = (key: string) => translations.get(key) ?? key;

View File

@@ -35,13 +35,13 @@ function buildCard(
summary: LimitUsageSummary,
t: TranslateFn
): LimitSummaryCard {
const labelKey = id === 'photos' ? 'upload.status.cards.photos.title' : 'upload.status.cards.guests.title';
const labelKey = id === 'photos' ? 'upload.limitSummary.cards.photos.title' : 'upload.limitSummary.cards.guests.title';
const remainingKey = id === 'photos'
? 'upload.status.cards.photos.remaining'
: 'upload.status.cards.guests.remaining';
? 'upload.limitSummary.cards.photos.remaining'
: 'upload.limitSummary.cards.guests.remaining';
const unlimitedKey = id === 'photos'
? 'upload.status.cards.photos.unlimited'
: 'upload.status.cards.guests.unlimited';
? 'upload.limitSummary.cards.photos.unlimited'
: 'upload.limitSummary.cards.guests.unlimited';
const tone = resolveTone(summary.state);
const progress = typeof summary.limit === 'number' && summary.limit > 0
@@ -50,7 +50,7 @@ function buildCard(
const valueLabel = typeof summary.limit === 'number' && summary.limit > 0
? `${summary.used.toLocaleString()} / ${summary.limit.toLocaleString()}`
: t('upload.status.badges.unlimited');
: t('upload.limitSummary.badges.unlimited');
const description = summary.state === 'unlimited'
? t(unlimitedKey)
@@ -63,13 +63,13 @@ function buildCard(
const badgeKey = (() => {
switch (summary.state) {
case 'limit_reached':
return 'upload.status.badges.limit_reached';
return 'upload.limitSummary.badges.limit_reached';
case 'warning':
return 'upload.status.badges.warning';
return 'upload.limitSummary.badges.warning';
case 'unlimited':
return 'upload.status.badges.unlimited';
return 'upload.limitSummary.badges.unlimited';
default:
return 'upload.status.badges.ok';
return 'upload.limitSummary.badges.ok';
}
})();