Untitled
unknown
plain_text
2 years ago
5.0 kB
8
Indexable
// noti_page
import 'package:finbox_v2/feature/notification/provider/noti_provider.dart';
import 'package:finbox_v2/feature/notification/widget/noti_management.dart';
import 'package:finbox_v2/feature/notification/widget/noti_tab.dart';
import 'package:finbox_v2/feature/notification/widget/system_tab.dart';
import 'package:finbox_v2/l10n/l10n.dart';
import 'package:finbox_v2/shared/repository/user_repository.dart';
import 'package:finbox_v2/shared/util/navigation_util.dart';
import 'package:finbox_v2/theme/finbox_theme.dart';
import 'package:finbox_v2/theme/main_layout.dart';
import 'package:finbox_v2/widgets/custom_underline_indicator.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class NotificationPage extends ConsumerStatefulWidget {
const NotificationPage({Key? key}) : super(key: key);
@override
ConsumerState<NotificationPage> createState() => NotificationPageState();
}
class NotificationPageState extends ConsumerState<NotificationPage>
with SingleTickerProviderStateMixin {
@override
void dispose() {
print('dispose parent widget');
super.dispose();
}
@override
Widget build(BuildContext context) {
late final finboxColors = Theme.of(context).extension<FinboxColors>()!;
late final textTheme = Theme.of(context).textTheme;
final user = ref.watch(userDataProvider);
return PopLayout(
actions: [
IconButton(
icon: Icon(Icons.edit),
onPressed: () {
ref.refresh(notiProvider);
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => NotiManagement(user: user!),
),
);
}),
],
titleAppbar: '',
content: Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: Container(
margin: EdgeInsets.only(left: 16),
padding: EdgeInsets.only(top: 10),
child: Text(
context.l10n.thong_bao,
style: textTheme.displaySmall!.copyWith(
fontWeight: FinboxFontWeight.semiBold.value,
),
),
),
),
SizedBox(
height: 21,
),
Expanded(
child: DefaultTabController(
length: 2,
child: Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: TabBar(
physics: const BouncingScrollPhysics(),
isScrollable: true,
unselectedLabelColor: finboxColors.dark3,
unselectedLabelStyle:
finboxColors.fontBodyNormal!.copyWith(
fontWeight: FinboxFontWeight.medium.value,
),
labelStyle: finboxColors.fontBodyNormal!.copyWith(
fontWeight: FinboxFontWeight.medium.value,
),
tabs: <Widget>[
Tab(
// text:
child: Text(
context.l10n.he_thong,
style: finboxColors.fontBodyLarge!.copyWith(
fontWeight: FinboxFontWeight.medium.value,
),
),
),
Tab(
// text:
child: Text(
context.l10n.thong_bao,
style: finboxColors.fontBodyLarge!.copyWith(
fontWeight: FinboxFontWeight.medium.value,
),
),
),
],
indicatorPadding: const EdgeInsets.all(7),
indicator: CustomUnderlineIndicator(
horizontalPadding: 20,
color: finboxColors.mainColor!,
),
),
),
Expanded(
child: PageView(
pageSnapping: false,
children: [
TabBarView(
children: <Widget>[
SystemTab(user: user!),
NotiTab(),
],
),
],
),
),
],
),
),
),
],
));
}
}
Editor is loading...