Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_with_redux/models/user/user.dart';
  3.  
  4. import 'package:redux/redux.dart';
  5.  
  6. import 'package:flutter_redux/flutter_redux.dart';
  7.  
  8. import 'package:flutter_with_redux/models/app_state.dart';
  9. import 'package:flutter_with_redux/models/user/user_state.dart';
  10.  
  11. class UserDetailsScreen extends StatelessWidget {
  12. @override
  13. Widget build(BuildContext context) {
  14. return StoreConnector<AppState, UserDetailsScreenProps>(
  15. converter: (store) => mapStateToProps(store),
  16. builder: (context, props) {
  17. UserDetails data = props.detailsResponse.data;
  18. bool loading = props.detailsResponse.loading;
  19.  
  20. TextStyle textStyle = TextStyle(
  21. height: 2,
  22. fontSize: 20,
  23. );
  24.  
  25. Widget body;
  26. if (loading) {
  27. body = Center(
  28. child: CircularProgressIndicator(),
  29. );
  30. } else {
  31. body = Center(
  32. child: IntrinsicWidth(
  33. child: Column(
  34. mainAxisAlignment: MainAxisAlignment.center,
  35. crossAxisAlignment: CrossAxisAlignment.center,
  36. children: [
  37. Text(data.name, style: textStyle),
  38. Text(data.email, style: textStyle),
  39. Text(data.website, style: textStyle),
  40. ],
  41. ),
  42. ),
  43. );
  44. }
  45.  
  46. return Scaffold(
  47. appBar: AppBar(
  48. title: Text('User details'),
  49. ),
  50. body: body,
  51. );
  52. },
  53. );
  54. }
  55. }
  56.  
  57. class UserDetailsScreenProps {
  58. final UserDetailsState detailsResponse;
  59.  
  60. UserDetailsScreenProps({
  61. this.detailsResponse,
  62. });
  63. }
  64.  
  65. UserDetailsScreenProps mapStateToProps(Store<AppState> store) {
  66. return UserDetailsScreenProps(
  67. detailsResponse: store.state.user.details,
  68. );
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement