Fix demo task readiness and gate event creation
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-02-05 11:26:07 +01:00
parent 7262617897
commit 04c399aeb6
14 changed files with 318 additions and 36 deletions

View File

@@ -28,6 +28,7 @@ export default function MobileEventsPage() {
const navigate = useNavigate();
const { user } = useAuth();
const isMember = user?.role === 'member';
const isSuperAdmin = user?.role === 'super_admin' || user?.role === 'superadmin';
const [events, setEvents] = React.useState<TenantEvent[]>([]);
const [loading, setLoading] = React.useState(true);
const [error, setError] = React.useState<string | null>(null);
@@ -85,13 +86,21 @@ export default function MobileEventsPage() {
}, [isMember]);
const canCreateEvent = React.useMemo(() => {
if (isMember || packagesLoading) {
if (isMember) {
return false;
}
if (isSuperAdmin) {
return true;
}
if (packagesLoading) {
return false;
}
const activePackages = collectActivePackages(packagesOverview);
return activePackages.some((pkg) => packageHasRemainingEvents(pkg));
}, [isMember, packagesLoading, packagesOverview]);
return activePackages.some((pkg) => resellerHasRemainingEvents(pkg));
}, [isMember, isSuperAdmin, packagesLoading, packagesOverview]);
return (
<MobileShell
@@ -540,18 +549,13 @@ function toNumber(value: unknown): number | null {
return null;
}
function packageHasRemainingEvents(pkg: TenantPackageSummary): boolean {
const remaining = toNumber(pkg.remaining_events);
function resellerHasRemainingEvents(pkg: TenantPackageSummary): boolean {
if (pkg.package_type !== 'reseller') {
if (remaining !== null) {
return remaining > 0;
}
const usedEvents = toNumber(pkg.used_events) ?? 0;
return usedEvents < 1;
return false;
}
const remaining = toNumber(pkg.remaining_events);
if (remaining !== null) {
return remaining > 0;
}