import 'dart:convert'; import 'dart:math'; import 'dart:typed_data'; import 'package:auto_route/annotations.dart'; import 'package:auto_route/auto_route.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:mnemo_cards/domain/router/app_router.dart'; import 'package:mnemo_cards/domain/router/app_router.gr.dart'; import 'package:mnemo_cards/features/packs/images_holder.dart'; import 'package:mnemo_cards/features/yandex_ads/yandex_ads.dart'; import 'package:mnemo_cards/utils/iterable_helper.dart'; import 'package:mnemo_cards/utils/string_helper.dart'; import 'package:mnemo_cards/widgets/game_card_widget.dart'; import 'package:mnemo_cards_common/mnemo_cards_common.dart'; import 'package:yandex_mobileads/mobile_ads.dart'; import '../../main.dart'; import '../items/builder.dart'; import '../../di/locator.dart'; import '../../theme/themes.dart'; import '../header.dart'; import '../mnemo_text.dart'; import 'available_pack.dart'; import 'buy_pack_page.dart'; import 'card_pack_header.dart'; @RoutePage() class CardPackPage extends StatefulWidget { final String cardPackId; const CardPackPage(this.cardPackId, {super.key}); @override State createState() => _CardPackPage(); } class _CardPackPage extends State { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: StreamBuilder( stream: locator.packManager.getCardPackStream(widget.cardPackId), initialData: null, builder: (context, snapshot) { if (!snapshot.hasData) return _Loading(); final response = snapshot.requireData; if (response is CardPackBuyDto) return BuyPack(response); else if (response is CardPackDto) return AvailablePack(response); return Column( children: [ CardPackHeader.fromDto(null), Expanded( child: Center( child: Text('Error'), ), ), ], ); }), ), ); } @override void initState() { super.initState(); } } class _Loading extends StatelessWidget { @override Widget build(BuildContext context) { return Column( children: [ CardPackHeader.fromDto(null), Expanded( child: Center( child: Text('Loading...'), ), ), ], ); } }