38 lines
1.1 KiB
Dart
38 lines
1.1 KiB
Dart
import 'dart:convert';
|
|
|
|
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/repository/config.dart';
|
|
|
|
import '../services/erpframe.dart';
|
|
|
|
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);
|
|
|
|
emit(
|
|
AppConfigLoaded(config: await repository.getDocuFrameConfiguration()),
|
|
);
|
|
} catch (e) {
|
|
emit(
|
|
AppConfigLoadingFailed(
|
|
message: "Fehler beim Laden der Konfigurationsdatei.",
|
|
),
|
|
);
|
|
}
|
|
}
|
|
}
|