Advertisement
rizalrox

Untitled

Jan 10th, 2019
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 4.40 KB | None | 0 0
  1. import 'dart:convert';
  2.  
  3. import 'package:kamispace_management/modules.dart';
  4. import 'package:http/http.dart' as http;
  5.  
  6. class Drawerheader extends StatefulWidget {
  7.   @override
  8.   DrawerheaderState createState() {
  9.     return new DrawerheaderState();
  10.   }
  11. }
  12.  
  13. class DrawerheaderState extends State<Drawerheader> {
  14.   final AuthorizedRepo auth = new AuthorizedRepo();
  15.   final LocalStorage storage = new LocalStorage('tokenAPI');
  16.   dynamic tokenDecode = [];
  17.   dynamic memberDetail = [];
  18.   String token = '';
  19.  
  20.   ///fetch get data decode token
  21.   ///param is token
  22.   Future getToken(String token) async {
  23.     //URL_GETTOKEN =http://administrator.womaplex.com/member/decode_token
  24.     final String url = '$URL_GETTOKEN';
  25.     final data = {"token": "$token"};
  26.     final response = await http.get(url, headers: data);
  27.     if (response.statusCode == 200) {
  28.       setState(() => tokenDecode = json.decode(response.body)['content']);
  29.     } else {
  30.       throw Exception('Failed data not response');
  31.     }
  32.   }
  33.  
  34.   @override
  35.   void initState() {
  36.     super.initState();
  37.     getTokenMember();
  38.     getToken(token);
  39.   }
  40.  
  41.   @override
  42.   Widget build(BuildContext context) {
  43.     Widget _drawerHeader(BuildContext context) {
  44.       //lihat data decodeToken user id kenpah error
  45.       print('isi data decode toke ${tokenDecode['userid']}');
  46.       return ClipPath(
  47.         clipper: MyClipper(),
  48.         child: DrawerHeader(
  49.           decoration: BoxDecoration(
  50.             gradient: LinearGradient(colors: darkLightBluesColor),
  51.           ),
  52.           child: Column(
  53.             crossAxisAlignment: CrossAxisAlignment.start,
  54.             mainAxisAlignment: MainAxisAlignment.start,
  55.             children: <Widget>[
  56.               CircleAvatar(
  57.                 //backgroundImage: NetworkImage(''),
  58.                 child: Text('SF', style: TextStyle(fontSize: 20)),
  59.                 radius: 26.0,
  60.                 backgroundColor: Colors.white,
  61.               ),
  62.               Ui.textView(
  63.                 'Syafrizal fiqih',
  64.                 color: Colors.white,
  65.                 padding: EdgeInsets.only(top: 10.0),
  66.               ),
  67.               Text(
  68.                 'syafrizal_fiqih@gmail.com',
  69.                 style: TextStyle(color: Colors.white54, fontSize: 11),
  70.               )
  71.             ],
  72.           ),
  73.         ),
  74.       );
  75.     }
  76.  
  77.     Widget _drawerS(BuildContext context) {
  78.       return Drawer(
  79.         child: ListView(
  80.           children: <Widget>[
  81.             _drawerHeader(context),
  82.             Ui.navMenuInkWell('Profile', Icons.account_circle, context,
  83.                 onTap: () {}),
  84.             Ui.navMenuInkWell('Notifikasi', Icons.notifications, context,
  85.                 onTap: () {}),
  86.             Ui.navMenuInkWell('Tentang Kami', Icons.device_unknown, context,
  87.                 onTap: () {}),
  88.             Ui.navMenuInkWell('Hubungi Kami', Icons.contact_phone, context,
  89.                 onTap: () {}),
  90.             Ui.navMenu('Keluar', Icons.exit_to_app, onTap: () {
  91.               showDialog(
  92.                 context: context,
  93.                 builder: (ctx) => new AlertDialog(
  94.                       content: new Text('Apakah kami yakin ingin keluar ?'),
  95.                       actions: <Widget>[
  96.                         new FlatButton(
  97.                           child: new Text('Batal'),
  98.                           onPressed: () {
  99.                             Navigator.pop(context);
  100.                           },
  101.                         ),
  102.                         new FlatButton(
  103.                           child: new Text('Keluar'),
  104.                           onPressed: () {
  105.                             storage.deleteItem("tokenAPI");
  106.                             if (storage.getItem("tokenAPI") == null)
  107.                               return navigationLogout(context);
  108.                           },
  109.                         ),
  110.                       ],
  111.                     ),
  112.               );
  113.             }),
  114.           ],
  115.         ),
  116.       );
  117.     }
  118.  
  119.     return _drawerS(context);
  120.   }
  121.  
  122.   getTokenMember() {
  123.     var items = storage.getItem('tokenAPI');
  124.     var jsonEncode = json.encode(items);
  125.     var tokenApi = json.decode(jsonEncode)[0]['token'];
  126.     print('data token $tokenApi');
  127.     token = tokenApi;
  128.     return token;
  129.   }
  130.  
  131.   navigationLogout(context) {
  132.     while (Navigator.canPop(context)) {
  133.       Navigator.pop(context);
  134.     }
  135.     Navigator.pushReplacementNamed(context, ScreenLogin.routeName);
  136.   }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement