Files
2021-07-19 16:36:10 +02:00

45 lines
1.2 KiB
Dart

import 'dart:io';
import 'package:stream_chatter/data/image_picker_repository.dart';
import 'package:stream_chatter/domain/usecases/profile_sign_in_usecase.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class ProfileState {
const ProfileState(
this.file, {
this.success = false,
this.loading = false,
});
final File? file;
final bool success;
final bool loading;
}
class ProfileVerifyCubit extends Cubit<ProfileState> {
ProfileVerifyCubit(
this._imagePickerRepository,
this._profileSignInUseCase,
) : super(ProfileState(null));
final nameController = TextEditingController();
final ImagePickerRepository _imagePickerRepository;
final ProfileSignInUseCase _profileSignInUseCase;
void startChatting() async {
final file = state.file;
emit(ProfileState(file, loading: true));
final name = nameController.text;
await _profileSignInUseCase.verify(ProfileInput(
imageFile: file,
name: name,
));
emit(ProfileState(file, success: true, loading: false));
}
void pickImage() async {
final file = await _imagePickerRepository.pickImage();
emit(ProfileState(file));
}
}