Add custom main tab bar with global scan-to-verify flow.

Introduce configurable custom TabBar with order badge, central scanner routing to verification orders, and update the migration checklist for recently completed modules.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-23 10:52:45 +08:00
parent 3a11583729
commit 1d1eb46ed8
25 changed files with 740 additions and 34 deletions

View File

@ -93,12 +93,16 @@ struct OrdersView: View {
.task {
viewModel.selectedEntry = appRouter.selectedOrdersEntry
await reload()
await consumePendingScanCodeIfNeeded()
}
.onChange(of: appRouter.selectedOrdersEntry) { _, entry in
guard viewModel.selectedEntry != entry else { return }
viewModel.selectedEntry = entry
Task { await reload() }
}
.onChange(of: appRouter.pendingOrderScanCode) { _, _ in
Task { await consumePendingScanCodeIfNeeded() }
}
.onChange(of: accountContext.currentScenic?.id) { _, _ in
Task { await reload() }
}
@ -575,6 +579,15 @@ struct OrdersView: View {
}
}
/// TabBar
private func consumePendingScanCodeIfNeeded() async {
guard let rawCode = appRouter.consumePendingOrderScanCode() else { return }
viewModel.selectedEntry = .verificationOrders
appRouter.selectOrders(entry: .verificationOrders)
await reload(showLoading: false)
handleScanResult(rawCode)
}
///
private func handleScanResult(_ rawCode: String) {
guard let result = viewModel.matchedWriteOffOrder(for: rawCode) else {