import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:simplecloudnotifier/components/badge_display/badge_display.dart'; import 'package:simplecloudnotifier/state/app_auth.dart'; import 'package:simplecloudnotifier/utils/toaster.dart'; import 'package:simplecloudnotifier/utils/ui.dart'; class ShowTokenModal extends StatelessWidget { final AppAuth account; final bool isAfterRegister; const ShowTokenModal({Key? key, required this.account, required this.isAfterRegister}) : super(key: key); @override Widget build(BuildContext context) { var alertText = "Use your UserID and Send-Token to send messages to your account.\n\nThe Admin-Token should not be shared."; if (this.isAfterRegister) { alertText = "These are your UserID and tokens.\n\nBackup your Admin-Token safely.\n\nUse UserId & Send-Token to send yourself messages."; } return AlertDialog( title: const Text('UserID & Token'), content: Container( width: 9000, height: 450, child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ BadgeDisplay( text: alertText, icon: null, mode: BadgeMode.info, ), const SizedBox(height: 16), if (this.account.userID != null) UI.metaCard( context: context, icon: FontAwesomeIcons.solidUser, title: 'UserID', values: [this.account.userID!], iconActions: [(FontAwesomeIcons.copy, null, () => _copy('UserID', this.account.userID!))], ), const SizedBox(height: 4), if (this.account.tokenSend != null) UI.metaCard( context: context, icon: FontAwesomeIcons.solidKey, title: 'Send-Token', values: [this.account.tokenSend!], iconActions: [(FontAwesomeIcons.copy, null, () => _copy('Send-Token', this.account.tokenSend!))], ), const SizedBox(height: 4), if (this.account.tokenSend != null) UI.metaCard( context: context, icon: FontAwesomeIcons.solidKey, title: 'Admin-Token', values: [this.account.tokenAdmin!], iconActions: [(FontAwesomeIcons.copy, null, () => _copy('Admin-Token', this.account.tokenAdmin!))], ), ], ), ), ), actions: [ TextButton( child: const Text('Close'), onPressed: () { Navigator.of(context).pop(); }, ), ], ); } void _copy(String txt, String v) { Clipboard.setData(new ClipboardData(text: v)); Toaster.info("Clipboard", 'Copied ${txt} to Clipboard'); print('================= [CLIPBOARD] =================\n${v}\n================= [/CLIPBOARD] ================='); } }