|
|
|
@ -1,7 +1,10 @@
|
|
|
|
|
|
|
|
import 'dart:developer';
|
|
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:test_sa/controllers/api_routes/api_manager.dart';
|
|
|
|
import 'package:test_sa/controllers/api_routes/api_manager.dart';
|
|
|
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/notifications_provider.dart';
|
|
|
|
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
|
|
|
|
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
|
|
|
|
import 'package:test_sa/dashboard_latest/dashboard_provider.dart';
|
|
|
|
import 'package:test_sa/dashboard_latest/dashboard_provider.dart';
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
@ -10,6 +13,7 @@ import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
import 'package:test_sa/helper/utils.dart';
|
|
|
|
import 'package:test_sa/helper/utils.dart';
|
|
|
|
import 'package:test_sa/new_views/app_style/app_color.dart';
|
|
|
|
import 'package:test_sa/new_views/app_style/app_color.dart';
|
|
|
|
|
|
|
|
import 'package:test_sa/new_views/common_widgets/custom_badge.dart';
|
|
|
|
import 'package:test_sa/views/pages/user/notifications/notifications_page.dart';
|
|
|
|
import 'package:test_sa/views/pages/user/notifications/notifications_page.dart';
|
|
|
|
import 'package:test_sa/views/pages/user/notifications/unread_chat_list.dart';
|
|
|
|
import 'package:test_sa/views/pages/user/notifications/unread_chat_list.dart';
|
|
|
|
|
|
|
|
|
|
|
|
@ -38,6 +42,8 @@ class _AppBarWidgetState extends State<AppBarWidget> with TickerProviderStateMix
|
|
|
|
super.initState();
|
|
|
|
super.initState();
|
|
|
|
|
|
|
|
|
|
|
|
// Profile section animation (left to right with fade)
|
|
|
|
// Profile section animation (left to right with fade)
|
|
|
|
|
|
|
|
getUnreadCount();
|
|
|
|
|
|
|
|
|
|
|
|
_leftController = AnimationController(
|
|
|
|
_leftController = AnimationController(
|
|
|
|
duration: const Duration(milliseconds: 600),
|
|
|
|
duration: const Duration(milliseconds: 600),
|
|
|
|
vsync: this,
|
|
|
|
vsync: this,
|
|
|
|
@ -95,6 +101,12 @@ class _AppBarWidgetState extends State<AppBarWidget> with TickerProviderStateMix
|
|
|
|
super.dispose();
|
|
|
|
super.dispose();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> getUnreadCount () async{
|
|
|
|
|
|
|
|
NotificationsProvider notificationsProvider = Provider.of<NotificationsProvider>(context,listen: false);
|
|
|
|
|
|
|
|
log('i am initstate');
|
|
|
|
|
|
|
|
await notificationsProvider.getUnreadCount();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return AppBar(
|
|
|
|
return AppBar(
|
|
|
|
@ -253,9 +265,21 @@ class _AppBarWidgetState extends State<AppBarWidget> with TickerProviderStateMix
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
16.width,
|
|
|
|
16.width,
|
|
|
|
],
|
|
|
|
],
|
|
|
|
("dashboard/notification").toSvgAsset(height: 24, width: 24, color: AppColor.icon2Color(context)).paddingOnly(top: 0, end: 0).onPress(() {
|
|
|
|
// Notification icon with unread count badge
|
|
|
|
Navigator.of(context).pushNamed(NotificationsPage.id);
|
|
|
|
Consumer<NotificationsProvider>(
|
|
|
|
}),
|
|
|
|
builder: (context, notificationsProvider, child) {
|
|
|
|
|
|
|
|
final unreadCount = notificationsProvider.totalNotificationUnread;
|
|
|
|
|
|
|
|
return CustomBadge(
|
|
|
|
|
|
|
|
width: 20,
|
|
|
|
|
|
|
|
height: 20,
|
|
|
|
|
|
|
|
positionT: -10,
|
|
|
|
|
|
|
|
value: unreadCount,
|
|
|
|
|
|
|
|
child: ("dashboard/notification").toSvgAsset(height: 24, width: 24, color: AppColor.icon2Color(context)).paddingOnly(top: 0, end: 0),
|
|
|
|
|
|
|
|
).onPress(() {
|
|
|
|
|
|
|
|
Navigator.of(context).pushNamed(NotificationsPage.id);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
|