feat(app): экран «События»
Лента брокерского леджера: фильтры по счёту, типу, датам и поиск, бесконечная прокрутка с явной кнопкой «Ещё», карточка события в bottom sheet с переходом на инструмент. Паттерн контроллера и пагинации взят у транзакций один в один — это тот же список с фильтрами, и второй способ делать одно и то же был бы просто вторым способом его чинить. Пункт навигации стоит между «Портфелем» и «Потоками», а не рядом с «Операциями»: это инвестиционная лента, а в операциях лежит ZenMoney. eventKindLabels переиспользован из portfolio/labels.dart, где он уже жил ради карточки инструмента, а не скопирован: два словаря подписей для одного енума разъезжаются на первом же новом типе события. Бэкенд не менялся — /events с фильтрами и пагинацией закрывает экран целиком, клиент не перегенерировался.
This commit is contained in:
@@ -6,6 +6,7 @@ import 'core/auth/auth_controller.dart';
|
||||
import 'features/accounts/accounts_page.dart';
|
||||
import 'features/cashflow/cashflow_page.dart';
|
||||
import 'features/categories/categories_page.dart';
|
||||
import 'features/events/events_page.dart';
|
||||
import 'features/home/home_page.dart';
|
||||
import 'features/login/login_page.dart';
|
||||
import 'features/portfolio/instrument_page.dart';
|
||||
@@ -47,6 +48,7 @@ final routerProvider = Provider<GoRouter>((ref) {
|
||||
builder: (_, state) =>
|
||||
InstrumentPage(instrumentId: int.parse(state.pathParameters['id']!)),
|
||||
),
|
||||
GoRoute(path: '/events', builder: (_, _) => const EventsPage()),
|
||||
GoRoute(path: '/cashflow', builder: (_, _) => const CashflowPage()),
|
||||
GoRoute(
|
||||
path: '/categories',
|
||||
|
||||
Reference in New Issue
Block a user