Line data Source code
1 : import 'package:flutter/material.dart';
2 :
3 : import '../../../../types.dart';
4 : import '../../../redux/extensions/build_context_extensions.dart';
5 : import '../../utils/constants/auth_provider_names.dart';
6 : import '../actions/link_account_action.dart';
7 : import '../enums/linking_account_enum.dart';
8 :
9 : class LinkProviderButton<T extends RedFireState> extends StatelessWidget {
10 0 : const LinkProviderButton(
11 : ProvidersEnum provider, LinkingStateEnum linkingState,
12 : {Key? key})
13 : : _provider = provider,
14 : _linkingState = linkingState,
15 0 : super(key: key);
16 :
17 : final ProvidersEnum _provider;
18 : final LinkingStateEnum _linkingState;
19 :
20 0 : @override
21 : Widget build(BuildContext context) {
22 0 : return (_linkingState == LinkingStateEnum.linking)
23 : ? const CircularProgressIndicator()
24 0 : : IconButton(
25 0 : onPressed: (_linkingState == LinkingStateEnum.linked)
26 : ? null
27 0 : : () => context.dispatch<T>(LinkAccountAction(_provider)),
28 0 : icon: Icon(authProviderIconFrom[_provider]));
29 : }
30 : }
|