lemmur-app-android/lib/pages/profile_tab.dart

74 lines
2.1 KiB
Dart
Raw Normal View History

2020-08-31 01:04:08 +02:00
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
2020-09-01 13:22:37 +02:00
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:provider/provider.dart';
2020-08-31 12:05:45 +02:00
2020-09-01 13:22:37 +02:00
import '../stores/accounts_store.dart';
2020-08-31 12:05:45 +02:00
import '../widgets/user_profile.dart';
2020-08-31 16:17:39 +02:00
import 'settings.dart';
2020-08-31 01:04:08 +02:00
class UserProfileTab extends HookWidget {
2020-09-01 13:22:37 +02:00
UserProfileTab();
2020-08-31 01:04:08 +02:00
@override
Widget build(BuildContext context) {
var theme = Theme.of(context);
2020-09-01 13:22:37 +02:00
return Observer(
builder: (ctx) {
var user = ctx.watch<AccountsStore>().defaultUser;
return Scaffold(
extendBodyBehindAppBar: true,
appBar: AppBar(
backgroundColor: Colors.transparent,
shadowColor: Colors.transparent,
centerTitle: true,
title: FlatButton(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'@${user.name}',
style: TextStyle(color: Colors.white),
),
Icon(
Icons.expand_more,
color: theme.primaryIconTheme.color,
),
],
),
2020-09-01 13:22:37 +02:00
onPressed: () {}, // TODO: should open bottomsheet
),
actions: [
IconButton(
icon: Container(
decoration: BoxDecoration(boxShadow: [
BoxShadow(
blurRadius: 10,
color: Colors.black54,
)
]),
child: Icon(
Icons.settings,
color: user.banner == null ? theme.iconTheme.color : null,
),
),
onPressed: () {
Navigator.of(context)
.push(MaterialPageRoute(builder: (_) => Settings()));
},
)
],
),
2020-09-01 13:22:37 +02:00
body: UserProfile(
userId: user.id,
instanceUrl: user.actorId.split('/')[2],
),
);
},
2020-08-31 01:04:08 +02:00
);
}
}