import 'package:flutter/material.dart'; import 'package:shadcn_ui/shadcn_ui.dart'; import 'app_buttons.dart'; import 'states.dart'; Future showLoginSheet( BuildContext context, { String reason = '登录后保存当前动作', VoidCallback? onPhoneLogin, VoidCallback? onSecondaryLogin, }) { return showShadSheet( context: context, side: ShadSheetSide.bottom, builder: (context) => ShadSheet( title: const Text('登录研听'), description: Text(reason), child: Column( mainAxisSize: MainAxisSize.min, children: [ AppButton( label: '使用手机号继续', icon: Icons.phone_iphone, expand: true, onPressed: () { Navigator.pop(context); onPhoneLogin?.call(); showAppToast(context, '已使用本地登录态继续'); }, ), const SizedBox(height: 8), AppButton( label: '微信 / Apple 登录占位', icon: Icons.account_circle_outlined, kind: AppButtonKind.ghost, expand: true, onPressed: () { Navigator.pop(context); onSecondaryLogin?.call(); showAppToast(context, '已使用本地登录态继续'); }, ), ], ), ), ); } Future showOutboundSheet( BuildContext context, { required String title, VoidCallback? onConfirm, }) { return showShadSheet( context: context, side: ShadSheetSide.bottom, builder: (context) => ShadSheet( title: const Text('即将打开外部服务'), description: Text('$title\n外跳仅用于了解原文或相关服务,本内容不构成投资建议。'), child: AppButton( label: '确认并记录占位事件', icon: Icons.open_in_new, kind: AppButtonKind.accent, expand: true, onPressed: () { Navigator.pop(context); onConfirm?.call(); showAppToast(context, '外跳事件接口待接入'); }, ), ), ); }