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.
38 lines
1.1 KiB
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,
|
|
)
|
|
],
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|
|
|