From c7d0a114e00136e56a96f3fe91c3bb5cef799ece Mon Sep 17 00:00:00 2001 From: alexvasl Date: Fri, 2 Jun 2023 16:11:05 +0300 Subject: [PATCH] Added QRCode screen, in the development of the profile screen --- assets/images/avatar.png | Bin 0 -> 13357 bytes assets/images/banner.png | Bin 0 -> 64824 bytes assets/images/logo/drifter_logo_white.png | Bin 0 -> 8975 bytes assets/images/qr.png | Bin 0 -> 462 bytes lib/main.dart | 2 + lib/pages/home_screen/home_screen_widget.dart | 163 +++++-- lib/pages/profile_screen/profile_screen.dart | 460 ++++++++++++++---- lib/pages/qr_code_screen/qr_code_screen.dart | 166 +++++++ lib/theme/app_colors.dart | 19 + pubspec.lock | 18 +- pubspec.yaml | 6 +- 11 files changed, 710 insertions(+), 124 deletions(-) create mode 100644 assets/images/avatar.png create mode 100644 assets/images/banner.png create mode 100644 assets/images/logo/drifter_logo_white.png create mode 100644 assets/images/qr.png create mode 100644 lib/pages/qr_code_screen/qr_code_screen.dart diff --git a/assets/images/avatar.png b/assets/images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..70bcf4a43ce5702e5f625325875e47348c5f921a GIT binary patch literal 13357 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 D7dhUA literal 0 HcmV?d00001 diff --git a/assets/images/banner.png b/assets/images/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..b83bfad81d8d07bd57a57b7a5966df835dbc87f3 GIT binary patch literal 64824 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 const CreateAccountScreen(), '/MainScreen': (context) => const MainScreenWidget(), '/Settings': (context) => const SettingsScreen(), + '/QrCodeScreen': (context) => const QrCodeScreen(), }, ); } diff --git a/lib/pages/home_screen/home_screen_widget.dart b/lib/pages/home_screen/home_screen_widget.dart index 48391a0..c1228f0 100644 --- a/lib/pages/home_screen/home_screen_widget.dart +++ b/lib/pages/home_screen/home_screen_widget.dart @@ -10,6 +10,7 @@ import 'package:drifter/pages/home_screen/widgets/message_text_button_widget.dar import 'package:drifter/pages/home_screen/widgets/message_text_form_field_widget.dart'; import 'package:drifter/pages/profile_screen/widgets/message_snack_bar.dart'; import 'package:nostr_tools/nostr_tools.dart'; +import 'package:toggle_switch/toggle_switch.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @@ -20,6 +21,7 @@ class HomeScreen extends StatefulWidget { class _HomeScreenState extends State { bool _isConnected = false; + List isSelected = [true, false]; final List _events = []; final Map _metaDatas = {}; @@ -95,43 +97,123 @@ class _HomeScreenState extends State { onRefresh: () async { await _resubscribeStream(); }, - child: StreamBuilder( - stream: _controller.stream, - builder: (context, snapshot) { - // Inside the builder callback, the snapshot object contains the most recent event from the thread. - // If snapshot.hasData is true, there is data to display. In this case, ListView.builder is returned, which displays a list of NoostCard widgets. - if (snapshot.hasData) { - return ListView.builder( - // The itemCount property of ListView.builder is set to _events.length, , which is the number of events in the _events list. - itemCount: _events.length, - itemBuilder: (context, index) { - final event = _events[index]; - final metadata = _metaDatas[event.pubkey]; - // For each event, a Noost object is created that encapsulates the details of the event, including id, avatarUrl, name,username, time, content и pubkey. - // _metaDatas, you can map the event public key to the author's metadata. - final domain = Domain( - noteId: event.id, - avatarUrl: metadata?.picture ?? - 'https://robohash.org/${event.pubkey}', - name: metadata?.name ?? 'Anon', - username: metadata?.displayName ?? - (metadata?.display_name ?? 'Anon'), - time: TimeAgo.format(event.created_at), - content: event.content, - pubkey: event.pubkey, - ); - return DomainCard(domain: domain); + child: Column( + children: [ + // ToggleButtons( + // isSelected: isSelected, + // renderBorder: false, + // fillColor: Color(0xFFFFFFFF), + // selectedColor: Color(0xFF4F46F1), + // disabledColor: Color(0xFF837CA3), + // children: [ + // Container( + // margin: const EdgeInsets.all(4), + // child: const Text('Following')), + // Container( + // margin: const EdgeInsets.all(4), + // child: const Text('Global')), + // ], + // onPressed: (int newIndex) { + // setState(() { + // for (int index = 0; index < isSelected.length; index++) { + // if (index == newIndex) { + // isSelected[index] = true; + // } else { + // isSelected[index] = false; + // } + // } + // }); + // }), + ToggleSwitch( + minWidth: double.infinity, + minHeight: 40, + totalSwitches: 2, + labels: ['Following', 'Global'], + activeBgColor: [AppColors.toggleSwitchActiveBg], + activeFgColor: AppColors.toggleSwitchTextActive, + inactiveBgColor: AppColors.toggleSwitchBg, + inactiveFgColor: AppColors.toggleSwitchTextInactive, + activeBorders: [ + Border.all( + color: AppColors.toggleSwitchBg, + width: 4, + ), + ], + radiusStyle: true, + cornerRadius: 100, + customTextStyles: [ + TextStyle(fontSize: 14, fontWeight: FontWeight.w600) + ], + onToggle: (indexToggle) { + print(indexToggle); + }, + ), + SizedBox( + height: 12, + ), + Flexible( + child: StreamBuilder( + stream: _controller.stream, + builder: (context, snapshot) { + // Inside the builder callback, the snapshot object contains the most recent event from the thread. + // If snapshot.hasData is true, there is data to display. In this case, ListView.builder is returned, which displays a list of NoostCard widgets. + if (snapshot.hasData) { + return ListView.builder( + // The itemCount property of ListView.builder is set to _events.length, , which is the number of events in the _events list. + itemCount: _events.length, + itemBuilder: (context, index) { + final event = _events[index]; + final metadata = _metaDatas[event.pubkey]; + // For each event, a Noost object is created that encapsulates the details of the event, including id, avatarUrl, name,username, time, content и pubkey. + // _metaDatas, you can map the event public key to the author's metadata. + final domain = Domain( + noteId: event.id, + avatarUrl: metadata?.picture ?? + 'https://robohash.org/${event.pubkey}', + name: metadata?.name ?? 'Anon', + username: metadata?.displayName ?? + (metadata?.display_name ?? 'Anon'), + time: TimeAgo.format(event.created_at), + content: event.content, + pubkey: event.pubkey, + ); + return DomainCard(domain: domain); + }, + ); + } else if (snapshot.connectionState == + ConnectionState.waiting) { + return const Center(child: Text('Loading....')); + } else if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + return const CenteredCircularProgressIndicator(); }, - ); - } else if (snapshot.connectionState == ConnectionState.waiting) { - return const Center(child: Text('Loading....')); - } else if (snapshot.hasError) { - return Center(child: Text('Error: ${snapshot.error}')); - } - return const CenteredCircularProgressIndicator(); - }, + ), + ), + ], ), ), + + // ToggleButtons( + // isSelected: isSelected, + // children: [ + // SizedBox(width: 300, child: Text('Following')), + // SizedBox(child: Text('Global')), + // ], + // onPressed: (int newIndex) { + // setState(() { + // for (int index = 0; + // index < isSelected.length; + // index++) { + // if (index == newIndex) { + // isSelected[index] = true; + // } else { + // isSelected[index] = false; + // } + // } + // }); + // }), + floatingActionButton: Keys.keysExist ? CreatePost( // The publishNote function is called when the user launches the "Noost!" button in the dialog box. @@ -318,12 +400,15 @@ class DomainCard extends StatelessWidget { color: Colors.transparent, ), Center( - child: FadeInImage( - placeholder: const NetworkImage( - 'https://media.tenor.com/On7kvXhzml4AAAAj/loading-gif.gif', + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: FadeInImage( + placeholder: const NetworkImage( + 'https://media.tenor.com/On7kvXhzml4AAAAj/loading-gif.gif', + ), + image: NetworkImage(imageLinks.first), + fit: BoxFit.cover, ), - image: NetworkImage(imageLinks.first), - fit: BoxFit.cover, ), ), ], diff --git a/lib/pages/profile_screen/profile_screen.dart b/lib/pages/profile_screen/profile_screen.dart index 4d656f7..330e025 100644 --- a/lib/pages/profile_screen/profile_screen.dart +++ b/lib/pages/profile_screen/profile_screen.dart @@ -132,94 +132,390 @@ class ProfileScreenState extends State { @override Widget build(BuildContext context) { - privateKeyInput.text = _toHex ? Keys.nsecKey : Keys.privateKey; - publicKeyInput.text = _toHex ? Keys.npubKey : Keys.publicKey; + publicKeyInput.text = Keys.npubKey; - return ListView( - children: [ - const SizedBox( - height: 60, - ), - const UserInfo(), - const SizedBox( - height: 40, - ), - FormKeys(), - const SizedBox(height: 20), - Padding( - padding: const EdgeInsets.all(16.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, + return Container( + color: AppColors.profileWrapperBg, + child: Column( + children: [ + Stack( children: [ - Keys.keysExist - ? IconButton( - onPressed: () { - setState(() { - _toHex = !_toHex; - }); - }, - icon: const Icon(Icons.refresh)) - // ElevatedButton( - // style: ButtonStyle( - // backgroundColor: - // MaterialStateProperty.all(AppColors.background)), - // onPressed: () { - // keysExistDialog( - // Nostr.instance.keysService - // .encodePublicKeyToNpub(Keys.publicKey), - // Nostr.instance.keysService - // .encodePrivateKeyToNsec(Keys.privateKey), - // ); - // }, - // child: const Text( - // 'Keys', - // ), - // ) - : Row( - children: [ - ElevatedButton( - style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( - AppColors.background)), - onPressed: () { - modalBottomSheet(); - }, - child: const Text( - 'Generate Keys', - ), - ), - SizedBox(width: 100), - ElevatedButton( - style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( - AppColors.background)), - onPressed: () { - Navigator.pushNamed(context, '/login').then((_) { - initState(); - }); - }, - child: const Text( - 'Login', - ), - ), - ], + Container( + width: double.infinity, + height: 70, + child: FittedBox( + child: Image.asset('assets/images/banner.png'), + fit: BoxFit.fill, + ), + ), + Row( + children: [ + Padding( + padding: + const EdgeInsets.only(top: 30, left: 16, right: 58), + child: ClipRRect( + borderRadius: BorderRadius.circular(200), + child: Container( + width: 80, + height: 80, + decoration: BoxDecoration( + border: Border.all( + width: 2, color: Color(0xFFF2EFFF))), + child: Image.asset('assets/images/avatar.png')), ), - Keys.keysExist - ? Row( - children: [ - IconButton( - onPressed: () { - deleteKeysDialog(); - }, - icon: const Icon(Icons.delete)), - ], - ) - : Container(), + ), + Expanded( + child: Container( + margin: EdgeInsets.only(top: 74, right: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + SizedBox( + width: 32, + height: 32, + child: FloatingActionButton( + backgroundColor: + AppColors.buttonSecondaryDefaultBg, + onPressed: () {}, + elevation: 0, + child: Icon( + Icons.edit, + size: 18, + color: AppColors.buttonSecondaryIcon, + ), + ), + ), + SizedBox( + width: 8, + ), + SizedBox( + width: 32, + height: 32, + child: FloatingActionButton( + backgroundColor: + AppColors.buttonSecondaryDefaultBg, + onPressed: () { + Navigator.pushNamed(context, '/QrCodeScreen'); + }, + elevation: 0, + child: Icon( + Icons.qr_code, + size: 18, + color: AppColors.buttonSecondaryIcon, + ), + ), + ), + SizedBox( + width: 8, + ), + SizedBox( + width: 32, + height: 32, + child: FloatingActionButton( + backgroundColor: + AppColors.buttonSecondaryDefaultBg, + onPressed: () {}, + elevation: 0, + child: Icon( + Icons.mail_outlined, + size: 18, + color: AppColors.buttonSecondaryIcon, + ), + ), + ), + SizedBox( + width: 8, + ), + SizedBox( + width: 100, + height: 32, + child: ElevatedButton( + onPressed: () {}, + child: Text( + 'Follow', + style: TextStyle( + color: + AppColors.buttonPrimaryDefaultText), + ), + style: ElevatedButton.styleFrom( + backgroundColor: + AppColors.buttonPrimaryDefaultBg, + shape: RoundedRectangleBorder( + borderRadius: + BorderRadius.circular(100)))), + ) + ], + ), + ), + ) + ], + ) ], ), - ) - ], + Container( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Cameron Williamson', + style: TextStyle( + color: AppColors.profileFullName, + fontWeight: FontWeight.w600), + ), + SizedBox( + height: 5, + ), + Text('@cameron', + style: TextStyle( + color: AppColors.profileUserName, + )), + SizedBox( + height: 5, + ), + Text( + 'This is the description of my profile. I am a nostrich and I love cats. Follow me for fun pictures and bad jokes. I also want to be a politician.', + style: TextStyle( + color: AppColors.profileSummary, + )), + SizedBox( + height: 12, + ), + Container( + child: TextField( + style: TextStyle(color: AppColors.profileKeyText), + readOnly: true, + decoration: InputDecoration( + suffixIcon: Row( + mainAxisSize: MainAxisSize.min, + children: [ + IconButton( + icon: Icon(Icons.copy), + color: AppColors.buttonSecondaryIcon, + onPressed: () {}, + ), + IconButton( + icon: Icon(Icons.qr_code), + color: AppColors.buttonSecondaryIcon, + onPressed: () {}, + ), + ], + ), + filled: true, + fillColor: AppColors.profileKeyField, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: + BorderSide(width: 0, style: BorderStyle.none), + )), + minLines: 2, + maxLines: 2, + controller: publicKeyInput, + ), + ), + Container( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextButton.icon( + // <-- TextButton + onPressed: () {}, + icon: Icon( + Icons.check_circle, + size: 15.0, + color: AppColors.profileSocialIcons, + ), + label: Text( + 'nip-05-name', + style: TextStyle( + color: AppColors.profileSocialLinks, + fontWeight: FontWeight.w500), + ), + ), + SizedBox( + height: 6, + ), + TextButton.icon( + // <-- TextButton + onPressed: () {}, + icon: Icon( + Icons.check_circle, + size: 15.0, + color: AppColors.profileSocialIcons, + ), + label: Text( + 'www.cameronforpresident.com', + style: TextStyle( + color: AppColors.profileSocialLinks, + fontWeight: FontWeight.w500), + ), + ), + SizedBox( + height: 6, + ), + TextButton.icon( + // <-- TextButton + onPressed: () {}, + icon: Icon( + Icons.score, + size: 15.0, + color: AppColors.profileSocialIcons, + ), + label: Text( + '@cameron_official', + style: TextStyle( + color: AppColors.profileSocialLinks, + fontWeight: FontWeight.w500), + ), + ), + SizedBox( + height: 6, + ), + TextButton.icon( + // <-- TextButton + onPressed: () {}, + icon: Icon( + Icons.check_circle, + size: 15.0, + color: AppColors.profileSocialIcons, + ), + label: Text( + 'cameron.williamson.com/@cameron_official', + style: TextStyle( + color: AppColors.profileSocialLinks, + fontWeight: FontWeight.w500), + ), + ), + SizedBox( + height: 6, + ), + TextButton.icon( + // <-- TextButton + onPressed: () {}, + icon: Icon( + Icons.flash_on, + size: 15.0, + color: AppColors.profileSocialIcons, + ), + label: Text( + 'whoknowswhatgoeshere', + style: TextStyle( + color: AppColors.profileSocialLinks, + fontWeight: FontWeight.w500), + ), + ), + SizedBox( + height: 6, + ), + TextButton.icon( + // <-- TextButton + onPressed: () {}, + icon: Icon( + Icons.flash_on, + size: 15.0, + color: AppColors.profileSocialIcons, + ), + label: Text( + 'cameron@satoshiwallet.com', + style: TextStyle( + color: AppColors.profileSocialLinks, + fontWeight: FontWeight.w500), + ), + ), + ]), + ) + ]), + ), + ), + ], + ), ); + // return ListView( + // children: [ + // const SizedBox( + // height: 60, + // ), + // const UserInfo(), + // const SizedBox( + // height: 40, + // ), + // FormKeys(), + // const SizedBox(height: 20), + // Padding( + // padding: const EdgeInsets.all(16.0), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceAround, + // children: [ + // Keys.keysExist + // ? IconButton( + // onPressed: () { + // setState(() { + // _toHex = !_toHex; + // }); + // }, + // icon: const Icon(Icons.refresh)) + // // ElevatedButton( + // // style: ButtonStyle( + // // backgroundColor: + // // MaterialStateProperty.all(AppColors.background)), + // // onPressed: () { + // // keysExistDialog( + // // Nostr.instance.keysService + // // .encodePublicKeyToNpub(Keys.publicKey), + // // Nostr.instance.keysService + // // .encodePrivateKeyToNsec(Keys.privateKey), + // // ); + // // }, + // // child: const Text( + // // 'Keys', + // // ), + // // ) + // : Row( + // children: [ + // ElevatedButton( + // style: ButtonStyle( + // backgroundColor: MaterialStateProperty.all( + // AppColors.background)), + // onPressed: () { + // modalBottomSheet(); + // }, + // child: const Text( + // 'Generate Keys', + // ), + // ), + // SizedBox(width: 100), + // ElevatedButton( + // style: ButtonStyle( + // backgroundColor: MaterialStateProperty.all( + // AppColors.background)), + // onPressed: () { + // Navigator.pushNamed(context, '/login').then((_) { + // initState(); + // }); + // }, + // child: const Text( + // 'Login', + // ), + // ), + // ], + // ), + // Keys.keysExist + // ? Row( + // children: [ + // IconButton( + // onPressed: () { + // deleteKeysDialog(); + // }, + // icon: const Icon(Icons.delete)), + // ], + // ) + // : Container(), + // ], + // ), + // ) + // ], + // ); } Form FormKeys() { diff --git a/lib/pages/qr_code_screen/qr_code_screen.dart b/lib/pages/qr_code_screen/qr_code_screen.dart new file mode 100644 index 0000000..06525c2 --- /dev/null +++ b/lib/pages/qr_code_screen/qr_code_screen.dart @@ -0,0 +1,166 @@ +import 'package:drifter/models/models.dart'; +import 'package:drifter/pages/terms_of_service/btn_continue_terms_of_service.dart'; +import 'package:drifter/pages/terms_of_service/terms_of_service_text.dart'; +import 'package:drifter/theme/app_colors.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:flutter/src/widgets/placeholder.dart'; +import 'package:qr_flutter/qr_flutter.dart'; + +class QrCodeScreen extends StatefulWidget { + const QrCodeScreen({super.key}); + + @override + State createState() => _QrCodeScreenState(); +} + +class _QrCodeScreenState extends State { + String _publicKey = Keys.npubKey; + bool isCopied = false; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: Icon( + Icons.arrow_back, + color: AppColors.topNavIconBack, + ), + onPressed: () => Navigator.of(context).pop(), + ), + elevation: 0, + backgroundColor: AppColors.mainBackground, + ), + backgroundColor: AppColors.mainBackground, + body: Padding( + padding: + const EdgeInsets.only(top: 10, right: 16, left: 16, bottom: 16), + child: Center( + child: Column(children: [ + Text( + 'Follow me on Nostr', + style: TextStyle( + color: Color(0xFF302F38), + fontSize: 20, + fontWeight: FontWeight.w600), + ), + Padding( + padding: const EdgeInsets.only( + top: 24, bottom: 83, right: 48, left: 48), + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(32), + color: Colors.white, + ), + height: 406, + width: double.infinity, + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 32.0, bottom: 10), + child: ClipRRect( + borderRadius: BorderRadius.circular(200), + child: Container( + width: 80, + height: 80, + decoration: BoxDecoration( + border: Border.all( + width: 2, color: Color(0xFFF2EFFF))), + child: Image.asset('assets/images/avatar.png')), + ), + ), + Text( + 'Cameron Williams on', + style: TextStyle( + color: Color(0xFF302F38), + fontWeight: FontWeight.w600, + ), + ), + SizedBox(height: 4), + Text( + '@cameron', + style: TextStyle( + fontSize: 12, color: AppColors.profileUserName), + ), + SizedBox(height: 20), + Container( + width: 230, + child: Text(_publicKey, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: AppColors.profileSocialLinks))), + SizedBox(height: 20), + Container( + width: 143, + height: 143, + child: QrImageView( + eyeStyle: QrEyeStyle( + color: AppColors.qrCodeBody, + eyeShape: QrEyeShape.square), + dataModuleStyle: + QrDataModuleStyle(color: AppColors.qrCodeBody), + embeddedImage: AssetImage( + 'assets/images/logo/drifter_logo_white.png'), + data: _publicKey, + version: QrVersions.auto, + ), + ), + ], + )), + ), + Expanded(child: SizedBox()), + SizedBox( + width: double.infinity, + height: 56, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(100)), + backgroundColor: AppColors.buttonSecondaryDefaultBg), + onPressed: () { + Clipboard.setData(ClipboardData(text: _publicKey)) + .then((value) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar( + content: Text('Copied to clipboard'), + )); + isCopied = true; + setState(() {}); + }); + }, + child: isCopied + ? Text( + 'Copied', + style: TextStyle(color: AppColors.buttonSecondaryText), + ) + : Text( + 'Copy user ID', + style: TextStyle(color: AppColors.buttonSecondaryText), + ), + ), + ), + SizedBox(height: 12), + SizedBox( + width: double.infinity, + height: 56, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(100)), + backgroundColor: AppColors.buttonPrimaryDefaultBg), + onPressed: () {}, + child: Text( + 'Share QR code', + style: TextStyle(color: AppColors.buttonPrimaryDefaultText), + ), + ), + ), + ]), + ), + ), + ); + } +} diff --git a/lib/theme/app_colors.dart b/lib/theme/app_colors.dart index a727e69..aa09de9 100644 --- a/lib/theme/app_colors.dart +++ b/lib/theme/app_colors.dart @@ -4,6 +4,8 @@ abstract class AppColors { static const background = Color(0xFF4f46f1); static const mainAccent = Color(0xFFFFCC11); static const mainBackground = Color(0xFFF2EFFF); + + // Button static const buttonPrimaryDefaultBg = Color(0xFF4F46F1); static const buttonPrimaryDefaultText = Color(0xFFFFFFFF); static const buttonPrimaryDisabledBg = Color(0x1A18171B); @@ -11,6 +13,9 @@ abstract class AppColors { static const buttonOutlinedDefaultBorder = Color(0xFF4F46F1); static const buttonOutlinedDefaultText = Color(0xFF4F46F1); static const buttonOutlinedPressedBg = Color(0xFFE3E0F9); + static const buttonSecondaryDefaultBg = Color(0xFFDCDAFC); + static const buttonSecondaryIcon = Color(0xFF2D25BC); + static const buttonSecondaryText = Color(0xFF2D25BC); // TopNav @@ -72,4 +77,18 @@ abstract class AppColors { static const postActionIconDefault = Color(0xFFC8C5D0); static const postActionIconPressed = Color(0xFFFE82B1); static const postBookmark = Color(0xFF8482FF); + +// Profile + + static const profileWrapperBg = Color(0xFFF9F8FF); + static const profileFullName = Color(0xFF302F38); + static const profileUserName = Color(0xFF787680); + static const profileSummary = Color(0xFF302F38); + static const profileKeyField = Color(0xFFF2EFFF); + static const profileKeyText = Color(0xFF6E61A0); + static const profileSocialLinks = Color(0xFF4F46F1); + static const profileSocialIcons = Color(0xFF837CA3); + +// QR code + static const qrCodeBody = Color(0xFF25207A); } diff --git a/pubspec.lock b/pubspec.lock index 189d259..7592d65 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -352,6 +352,22 @@ packages: url: "https://pub.dev" source: hosted version: "3.7.3" + qr: + dependency: transitive + description: + name: qr + sha256: "64957a3930367bf97cc211a5af99551d630f2f4625e38af10edd6b19131b64b3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + qr_flutter: + dependency: "direct main" + description: + name: qr_flutter + sha256: "5095f0fc6e3f71d08adef8feccc8cea4f12eec18a2e31c2e8d82cb6019f4b097" + url: "https://pub.dev" + source: hosted + version: "4.1.0" sky_engine: dependency: transitive description: flutter @@ -479,4 +495,4 @@ packages: version: "6.2.2" sdks: dart: ">=2.19.6 <3.0.0" - flutter: ">=3.7.0-0" + flutter: ">=3.7.0" diff --git a/pubspec.yaml b/pubspec.yaml index d37d8e9..8fc49f1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -40,6 +40,7 @@ dependencies: # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 another_flushbar: ^1.12.29 + qr_flutter: ^4.1.0 dev_dependencies: flutter_test: @@ -64,8 +65,9 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - - assets/images//icons/ - - assets/images//logo/ + - assets/images/ + - assets/images/icons/ + - assets/images/logo/ # - images/a_dot_ham.jpeg