feat: add frontend app, improve static file serving with lazy loading and root redirect

This commit is contained in:
2026-07-20 21:03:48 +03:00
parent 799e939037
commit d1e96d35aa
27 changed files with 2053 additions and 14 deletions
@@ -0,0 +1,47 @@
import 'package:flutter/material.dart';
import '../api/models.dart';
class RunStatusBadge extends StatelessWidget {
final RunStatus status;
const RunStatusBadge({super.key, required this.status});
Color _color(BuildContext context) {
switch (status) {
case RunStatus.pending:
return Colors.amber;
case RunStatus.running:
return Colors.blue;
case RunStatus.completed:
return Colors.green;
case RunStatus.error:
return Colors.red;
}
}
IconData _icon() {
switch (status) {
case RunStatus.pending:
return Icons.schedule;
case RunStatus.running:
return Icons.play_circle_outline;
case RunStatus.completed:
return Icons.check_circle;
case RunStatus.error:
return Icons.error;
}
}
@override
Widget build(BuildContext context) {
final c = _color(context);
return Chip(
avatar: Icon(_icon(), size: 16, color: c),
label: Text(
status.name.toUpperCase(),
style: TextStyle(color: c, fontWeight: FontWeight.bold, fontSize: 12),
),
backgroundColor: c.withValues(alpha: 0.1),
);
}
}