feat: New Open Tab dialog with search and optional customer email. Drinks are now grouped per order. Payments trigger cha-ching and money rain.

This commit is contained in:
2026-10-28 02:11:32 +01:00
parent 1aee0541c4
commit 29ceb51177
41 changed files with 2771 additions and 812 deletions
-17
View File
@@ -8,7 +8,6 @@ import '../models/remote_command.dart';
import '../utils/navigation.dart';
import '../viewmodels/admin_pin_view_model.dart';
import '../viewmodels/remote_sync_view_model.dart';
import 'dialogs/new_tab_dialog.dart';
class AdminScreenView extends StatelessWidget {
const AdminScreenView({super.key});
@@ -19,16 +18,6 @@ class AdminScreenView extends StatelessWidget {
adminPinViewModel.lock();
}
Future<void> _openNewTab(BuildContext context) async {
final l10n = AppLocalizations.of(context);
final name = await showNewTabDialog(context);
if (name == null || !context.mounted) return;
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text(l10n.tabOpened(name))));
}
Future<void> _confirmUnlink(BuildContext context) async {
final l10n = AppLocalizations.of(context);
final confirmed = await showDialog<bool>(
@@ -94,12 +83,6 @@ class AdminScreenView extends StatelessWidget {
_AdminSection(
title: l10n.adminTools,
children: [
_AdminTile(
icon: Icons.person_add_alt_1_outlined,
title: l10n.openNewTab,
subtitle: l10n.openNewTabDescription,
onTap: () => _openNewTab(context),
),
_AdminTile(
icon: Icons.inventory_2_outlined,
title: l10n.products,