1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
thesis_shop/lib/widgets/user_switch.dart

38 lines
1.1 KiB

import 'package:flutter/material.dart';
import 'package:thesis_shop/benchmark_counter.dart';
import 'package:thesis_shop/bloc/user_bloc.dart';
import 'package:thesis_shop/bloc_provider.dart';
class UserSwitch extends StatelessWidget {
final bool isOn;
final ValueChanged<bool> onChanged;
const UserSwitch({
required this.isOn,
required this.onChanged,
}) : super(key: const Key('user_switch'));
@override
Widget build(BuildContext context) {
final UserBloc userBloc = AppState.of(context).blocProvider.userBloc;
return StreamBuilder<bool>(
stream: userBloc.isSignedInStream,
initialData: userBloc.isSignedIn,
builder: (context, snapshot) {
BenchmarkCounters.userSwitch++;
return Row(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(Icons.account_circle),
Switch(
value: snapshot.data ?? false,
onChanged: (newValue) => userBloc.userEventSink.add(
UserEvent(isSignedIn: newValue),
),
activeColor: Colors.green,
)
],
);
},
);
}
}