Widget build()

in packages/amplify_auth_cognito/example/lib/Widgets/ViewUserAttributes.dart [71:150]


  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('User Attributes'),
        actions: [
          TextButton(
            onPressed: () {
              Navigator.of(context).push(
                MaterialPageRoute(
                  builder: (context) => UpdateUserAttributesWidget(),
                ),
              );
            },
            child: Text(
              'Bulk Update',
              style: TextStyle(color: Colors.white),
            ),
          ),
          IconButton(
            icon: Icon(Icons.refresh),
            onPressed: () => _fetchAttributes(isRefresh: true),
          )
        ],
      ),
      body: Builder(
        builder: (context) {
          if (_isLoading) {
            return Center(child: CircularProgressIndicator());
          } else if (_errorMessage != '') {
            return Center(child: Text(_errorMessage));
          } else if (_userAttributes.isEmpty) {
            return Center(child: Text('This user has no attributes'));
          } else {
            return RefreshIndicator(
              onRefresh: () => _fetchAttributes(isRefresh: true),
              child: ListView.builder(
                itemCount: _userAttributes.length,
                itemBuilder: (context, index) {
                  AuthUserAttribute atrribute = _userAttributes[index];
                  CognitoUserAttributeKey userAttributeKey =
                      atrribute.userAttributeKey as CognitoUserAttributeKey;
                  String value = atrribute.value;
                  return ListTile(
                    title: Text(userAttributeKey.toString()),
                    subtitle: Text(value),
                    trailing: userAttributeKey.readOnly
                        ? null
                        : IconButton(
                            icon: Icon(Icons.edit),
                            onPressed: () {
                              Navigator.of(context).push(
                                MaterialPageRoute(
                                  builder: (context) =>
                                      UpdateUserAttributeWidget(
                                    userAttributeKey: userAttributeKey,
                                  ),
                                ),
                              );
                            },
                          ),
                  );
                },
              ),
            );
          }
        },
      ),
      floatingActionButton: FloatingActionButton.extended(
        onPressed: () {
          Navigator.of(context).push(
            MaterialPageRoute(
              builder: (context) => UpdateUserAttributeWidget(),
            ),
          );
        },
        icon: Icon(Icons.add),
        label: Text('Add Attribute'),
      ),
    );
  }