Final commit.
This commit is contained in:
@ -1,43 +1,20 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:hl_lieferservice/bloc/app_events.dart';
|
||||
import 'package:hl_lieferservice/bloc/app_states.dart';
|
||||
import 'package:hl_lieferservice/main.dart';
|
||||
import 'package:hl_lieferservice/repository/config.dart';
|
||||
|
||||
import '../services/erpframe.dart';
|
||||
|
||||
/// App-Bootstrap-Bloc.
|
||||
///
|
||||
/// Vor der Backend-Migration lud dieser Bloc eine `hl_server_config.json` aus
|
||||
/// assets, parste daraus eine `backendUrl` und persistierte sie ins Dateisystem.
|
||||
/// Mit dem Wechsel auf das Rust-Backend kommt die URL über `BackendConfig`
|
||||
/// (compile-time, siehe `data/network/backend_config.dart`); der App-Bloc
|
||||
/// emittiert jetzt nur noch sofort `AppConfigLoaded`, damit die UI ihre
|
||||
/// üblichen Phasen-Übergänge behält.
|
||||
class AppBloc extends Bloc<AppEvents, AppState> {
|
||||
AppBloc() : super(AppInitial()) {
|
||||
on<AppLoadConfig>(_loadConfig);
|
||||
}
|
||||
|
||||
Future<void> _loadConfig(AppLoadConfig event, Emitter<AppState> emit) async {
|
||||
emit(AppConfigLoading());
|
||||
try {
|
||||
final repository = ConfigurationRepository(path: event.path);
|
||||
final configuration = LocalDocuFrameConfiguration.fromJson(
|
||||
json.decode(await rootBundle.loadString("assets/${event.path}")),
|
||||
);
|
||||
|
||||
repository.setDocuFrameConfiguration(configuration);
|
||||
|
||||
var config = await repository.getDocuFrameConfiguration();
|
||||
locator.registerSingleton<LocalDocuFrameConfiguration>(config);
|
||||
|
||||
emit(AppConfigLoaded(config: config));
|
||||
} catch (e, st) {
|
||||
debugPrint(e.toString());
|
||||
debugPrint(st.toString());
|
||||
|
||||
emit(
|
||||
AppConfigLoadingFailed(
|
||||
message: "Fehler beim Laden der Konfigurationsdatei.",
|
||||
),
|
||||
);
|
||||
}
|
||||
AppBloc() : super(const AppInitial()) {
|
||||
on<AppLoadConfig>((event, emit) {
|
||||
emit(const AppConfigLoading());
|
||||
emit(const AppConfigLoaded());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user