Split MapFlow data repositories
Build and deploy Flutter Web / build (push) Successful in 2m16s

This commit is contained in:
Ruslan Bakiev
2026-06-12 15:14:01 +07:00
parent aaaf60ab05
commit 8aa2a43cc7
10 changed files with 582 additions and 393 deletions
@@ -16,7 +16,8 @@ import '../../../app/theme/mapflow_theme.dart';
import '../../../shared/auth/telegram_login_button.dart';
import '../../../shared/auth/telegram_session.dart' as telegram_session;
import '../application/place_cubit.dart';
import '../data/mapflow_api.dart';
import '../data/auth_repository.dart';
import '../data/places_repository.dart';
import '../domain/place_models.dart';
import 'widgets/place_photo_card.dart';
@@ -376,13 +377,14 @@ class _TelegramLoginScreen extends StatefulWidget {
}
class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
final _api = MapflowApi();
late final AuthRepository _authRepository;
var _loading = false;
var _message = '';
@override
void initState() {
super.initState();
_authRepository = context.read<AuthRepository>();
final urlToken = telegram_session.telegramLoginTokenFromUrl();
if (urlToken.isNotEmpty) {
_completeLogin(urlToken);
@@ -394,7 +396,7 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
_loading = true;
_message = '';
});
final login = await _api.startTelegramBotLogin();
final login = await _authRepository.startTelegramBotLogin();
telegram_session.openExternalUrl(login.botUrl);
setState(() {
_loading = false;
@@ -407,7 +409,7 @@ class _TelegramLoginScreenState extends State<_TelegramLoginScreen> {
_loading = true;
_message = '';
});
final session = await _api.completeTelegramBotLogin(token);
final session = await _authRepository.completeTelegramBotLogin(token);
telegram_session.saveMapflowSessionToken(session.sessionToken);
widget.onAuthenticated();
telegram_session.reloadApp();
@@ -667,7 +669,6 @@ class _AddExperienceFlowState extends State<AddExperienceFlow> {
static const _minimumInformationUnits = 16.0;
static const _nearbyPlaceRadiusMeters = 50;
final _api = MapflowApi();
final _waveController = WaveformRecorderController(
interval: const Duration(milliseconds: 45),
config: const RecordConfig(
@@ -718,7 +719,7 @@ class _AddExperienceFlowState extends State<AddExperienceFlow> {
return const [];
}
return _api.fetchNearbyPlaces(
return context.read<PlacesRepository>().fetchNearbyPlaces(
coordinate: coordinate,
radiusMeters: _nearbyPlaceRadiusMeters,
);