import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:aslan/app_localizations.dart'; import 'package:aslan/chatvibe_ui/components/at_debounce_widget.dart'; import 'package:aslan/chatvibe_core/utilities/at_date_utils.dart'; import 'package:aslan/chatvibe_data/sources/local/data_persistence.dart'; import 'package:aslan/main.dart'; import 'package:aslan/chatvibe_ui/components/at_compontent.dart'; import 'package:aslan/chatvibe_ui/components/text/at_text.dart'; import 'package:aslan/chatvibe_core/utilities/at_banner_utils.dart'; import 'package:aslan/chatvibe_core/utilities/at_room_utils.dart'; import 'package:aslan/chatvibe_domain/models/res/at_index_banner_res.dart'; class IndexBannerPage extends StatefulWidget { ATIndexBannerRes res; IndexBannerPage(this.res); @override _IndexBannerPageState createState() => _IndexBannerPageState(); } class _IndexBannerPageState extends State { bool isSelect = false; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return Container( alignment: Alignment.center, decoration: BoxDecoration(borderRadius: BorderRadius.circular(8.w)), constraints: BoxConstraints(maxHeight: ScreenUtil().screenHeight * 0.7), width: ScreenUtil().screenWidth * 0.9, child: Stack( alignment: AlignmentDirectional.center, children: [ ATDebounceWidget( child: netImage( url: widget.res.cover ?? "", borderRadius: BorderRadius.circular(8.w), ), onTap: () { print('ads:${widget.res.toJson()}'); SmartDialog.dismiss(tag: "showBannerDialog"); ATBannerUtils.openBanner(widget.res, navigatorKey.currentState!.context); }, ), PositionedDirectional( end: 12.w, top: 12.w, child: GestureDetector( behavior: HitTestBehavior.opaque, child: Icon(Icons.close, size: 18.w, color: Colors.white), onTap: () { ATRoomUtils.closeAllDialogs(); }, ), ), PositionedDirectional( child: GestureDetector( behavior: HitTestBehavior.opaque, child: Container( decoration: BoxDecoration( color: Colors.black38, borderRadius: BorderRadius.only( bottomLeft: Radius.circular(8.w), bottomRight: Radius.circular(8.w), ), ), width: ScreenUtil().screenWidth * 0.9, padding: EdgeInsets.symmetric(vertical: 5.w), child: Row( children: [ SizedBox(width: 8.w), Image.asset( !isSelect ? "atu_images/general/at_icon_unselect.png" : "atu_images/general/at_icon_select.png", width: 16.w, height: 16.w, ), SizedBox(width: 3.w), text( ATAppLocalizations.of(context)!.noPromptsToday, fontSize: 14.sp, textColor: Colors.white, fontWeight: FontWeight.w600, ), ], ), ), onTap: () { isSelect = !isSelect; setState(() {}); DataPersistence.setBool( "IndexBannerTodayShow${ATMDateUtils.formatDateTime(DateTime.now())}", isSelect, ); }, ), start: 0.w, bottom: 0.w, ), ], ), ); } }