diff --git a/ios/Podfile b/ios/Podfile index d13ee92..8b8d54f 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -38,6 +38,16 @@ post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) + if target.name == 'BoringSSL-GRPC' + target.source_build_phase.files.each do |file| + if file.settings && file.settings['COMPILER_FLAGS'] + flags = file.settings['COMPILER_FLAGS'].split + flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } + file.settings['COMPILER_FLAGS'] = flags.join(' ') + end + end + end + # Fix for XCode 15 - probably breaks XCode < 15 target.build_configurations.each do |config| xcconfig_path = config.base_configuration_reference.real_path diff --git a/ios/Podfile.lock b/ios/Podfile.lock index afd22a7..1ca4b71 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -954,78 +954,77 @@ PODS: - BoringSSL-GRPC/Implementation (0.0.32): - BoringSSL-GRPC/Interface (= 0.0.32) - BoringSSL-GRPC/Interface (0.0.32) - - cloud_firestore (4.14.0): - - Firebase/Firestore (= 10.18.0) + - cloud_firestore (4.17.5): + - Firebase/Firestore (= 10.25.0) - firebase_core - Flutter - - nanopb (< 2.30910.0, >= 2.30908.0) - - Firebase/Analytics (10.18.0): + - Firebase/Analytics (10.25.0): - Firebase/Core - - Firebase/Core (10.18.0): + - Firebase/Core (10.25.0): - Firebase/CoreOnly - - FirebaseAnalytics (~> 10.18.0) - - Firebase/CoreOnly (10.18.0): - - FirebaseCore (= 10.18.0) - - Firebase/Crashlytics (10.18.0): + - FirebaseAnalytics (~> 10.25.0) + - Firebase/CoreOnly (10.25.0): + - FirebaseCore (= 10.25.0) + - Firebase/Crashlytics (10.25.0): - Firebase/CoreOnly - - FirebaseCrashlytics (~> 10.18.0) - - Firebase/DynamicLinks (10.18.0): + - FirebaseCrashlytics (~> 10.25.0) + - Firebase/DynamicLinks (10.25.0): - Firebase/CoreOnly - - FirebaseDynamicLinks (~> 10.18.0) - - Firebase/Firestore (10.18.0): + - FirebaseDynamicLinks (~> 10.25.0) + - Firebase/Firestore (10.25.0): - Firebase/CoreOnly - - FirebaseFirestore (~> 10.18.0) - - Firebase/Messaging (10.18.0): + - FirebaseFirestore (~> 10.25.0) + - Firebase/Messaging (10.25.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 10.18.0) - - Firebase/RemoteConfig (10.18.0): + - FirebaseMessaging (~> 10.25.0) + - Firebase/RemoteConfig (10.25.0): - Firebase/CoreOnly - - FirebaseRemoteConfig (~> 10.18.0) - - firebase_analytics (10.8.0): - - Firebase/Analytics (= 10.18.0) + - FirebaseRemoteConfig (~> 10.25.0) + - firebase_analytics (10.10.7): + - Firebase/Analytics (= 10.25.0) - firebase_core - Flutter - - firebase_core (2.24.2): - - Firebase/CoreOnly (= 10.18.0) + - firebase_core (2.32.0): + - Firebase/CoreOnly (= 10.25.0) - Flutter - - firebase_crashlytics (3.4.9): - - Firebase/Crashlytics (= 10.18.0) + - firebase_crashlytics (3.5.7): + - Firebase/Crashlytics (= 10.25.0) - firebase_core - Flutter - - firebase_dynamic_links (5.4.8): - - Firebase/DynamicLinks (= 10.18.0) + - firebase_dynamic_links (5.5.7): + - Firebase/DynamicLinks (= 10.25.0) - firebase_core - Flutter - firebase_messaging (14.7.10): - - Firebase/Messaging (= 10.18.0) + - Firebase/Messaging (= 10.25.0) - firebase_core - Flutter - - firebase_remote_config (4.3.8): - - Firebase/RemoteConfig (= 10.18.0) + - firebase_remote_config (4.4.7): + - Firebase/RemoteConfig (= 10.25.0) - firebase_core - Flutter - FirebaseABTesting (10.29.0): - FirebaseCore (~> 10.0) - - FirebaseAnalytics (10.18.0): - - FirebaseAnalytics/AdIdSupport (= 10.18.0) + - FirebaseAnalytics (10.25.0): + - FirebaseAnalytics/AdIdSupport (= 10.25.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseAnalytics/AdIdSupport (10.18.0): + - nanopb (< 2.30911.0, >= 2.30908.0) + - FirebaseAnalytics/AdIdSupport (10.25.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - - GoogleAppMeasurement (= 10.18.0) + - GoogleAppMeasurement (= 10.25.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) + - nanopb (< 2.30911.0, >= 2.30908.0) - FirebaseAppCheckInterop (10.29.0) - - FirebaseCore (10.18.0): + - FirebaseCore (10.25.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GoogleUtilities/Logger (~> 7.12) @@ -1033,22 +1032,23 @@ PODS: - FirebaseCore (~> 10.0) - FirebaseCoreInternal (10.29.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseCrashlytics (10.18.0): + - FirebaseCrashlytics (10.25.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) + - FirebaseRemoteConfigInterop (~> 10.23) - FirebaseSessions (~> 10.5) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.8) - - nanopb (< 2.30910.0, >= 2.30908.0) + - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (~> 2.1) - - FirebaseDynamicLinks (10.18.0): + - FirebaseDynamicLinks (10.25.0): - FirebaseCore (~> 10.0) - - FirebaseFirestore (10.18.0): + - FirebaseFirestore (10.25.0): - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - - FirebaseFirestoreInternal (~> 10.17) + - FirebaseFirestoreInternal (= 10.25.0) - FirebaseSharedSwift (~> 10.0) - - FirebaseFirestoreInternal (10.29.0): + - FirebaseFirestoreInternal (10.25.0): - abseil/algorithm (~> 1.20240116.1) - abseil/base (~> 1.20240116.1) - abseil/container/flat_hash_map (~> 1.20240116.1) @@ -1068,22 +1068,24 @@ PODS: - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - - FirebaseMessaging (10.18.0): + - FirebaseMessaging (10.25.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - - GoogleDataTransport (~> 9.2) + - GoogleDataTransport (~> 9.3) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Reachability (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseRemoteConfig (10.18.0): + - nanopb (< 2.30911.0, >= 2.30908.0) + - FirebaseRemoteConfig (10.25.0): - FirebaseABTesting (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) + - FirebaseRemoteConfigInterop (~> 10.23) - FirebaseSharedSwift (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - "GoogleUtilities/NSData+zlib (~> 7.8)" + - FirebaseRemoteConfigInterop (10.29.0) - FirebaseSessions (10.29.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) @@ -1095,28 +1097,30 @@ PODS: - PromisesSwift (~> 2.1) - FirebaseSharedSwift (10.29.0) - Flutter (1.0.0) + - flutter_keyboard_visibility_temp_fork (0.0.1): + - Flutter - flutter_secure_storage (6.0.0): - Flutter - - GoogleAppMeasurement (10.18.0): - - GoogleAppMeasurement/AdIdSupport (= 10.18.0) + - GoogleAppMeasurement (10.25.0): + - GoogleAppMeasurement/AdIdSupport (= 10.25.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (10.18.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 10.18.0) + - nanopb (< 2.30911.0, >= 2.30908.0) + - GoogleAppMeasurement/AdIdSupport (10.25.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 10.25.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (10.18.0): + - nanopb (< 2.30911.0, >= 2.30908.0) + - GoogleAppMeasurement/WithoutAdIdSupport (10.25.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - - nanopb (< 2.30910.0, >= 2.30908.0) + - nanopb (< 2.30911.0, >= 2.30908.0) - GoogleDataTransport (9.4.1): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30911.0, >= 2.30908.0) @@ -1274,11 +1278,11 @@ PODS: - mobile_scanner (3.5.6): - Flutter - GoogleMLKit/BarcodeScanning (~> 4.0.0) - - nanopb (2.30909.1): - - nanopb/decode (= 2.30909.1) - - nanopb/encode (= 2.30909.1) - - nanopb/decode (2.30909.1) - - nanopb/encode (2.30909.1) + - nanopb (2.30910.0): + - nanopb/decode (= 2.30910.0) + - nanopb/encode (= 2.30910.0) + - nanopb/decode (2.30910.0) + - nanopb/encode (2.30910.0) - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): @@ -1289,6 +1293,8 @@ PODS: - PromisesObjC (2.4.0) - PromisesSwift (2.4.0): - PromisesObjC (= 2.4.0) + - quill_native_bridge (0.0.1): + - Flutter - share_plus (0.0.1): - Flutter - shared_preferences_foundation (0.0.1): @@ -1311,6 +1317,7 @@ DEPENDENCIES: - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_remote_config (from `.symlinks/plugins/firebase_remote_config/ios`) - Flutter (from `Flutter`) + - flutter_keyboard_visibility_temp_fork (from `.symlinks/plugins/flutter_keyboard_visibility_temp_fork/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - image_cropper (from `.symlinks/plugins/image_cropper/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) @@ -1318,6 +1325,7 @@ DEPENDENCIES: - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - quill_native_bridge (from `.symlinks/plugins/quill_native_bridge/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `.symlinks/plugins/sqflite/darwin`) @@ -1341,6 +1349,7 @@ SPEC REPOS: - FirebaseInstallations - FirebaseMessaging - FirebaseRemoteConfig + - FirebaseRemoteConfigInterop - FirebaseSessions - FirebaseSharedSwift - GoogleAppMeasurement @@ -1381,6 +1390,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_remote_config/ios" Flutter: :path: Flutter + flutter_keyboard_visibility_temp_fork: + :path: ".symlinks/plugins/flutter_keyboard_visibility_temp_fork/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" image_cropper: @@ -1395,6 +1406,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler_apple: :path: ".symlinks/plugins/permission_handler_apple/ios" + quill_native_bridge: + :path: ".symlinks/plugins/quill_native_bridge/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: @@ -1408,32 +1421,34 @@ SPEC CHECKSUMS: abseil: d121da9ef7e2ff4cab7666e76c5a3e0915ae08c3 app_links: e70ca16b4b0f88253b3b3660200d4a10b4ea9795 BoringSSL-GRPC: 1e2348957acdbcad360b80a264a90799984b2ba6 - cloud_firestore: 73eece22ce25a0565238c283ee9990f1618d8063 - Firebase: 414ad272f8d02dfbf12662a9d43f4bba9bec2a06 - firebase_analytics: b3d6dd14c61549a29abb10e9843446a4d8bb53eb - firebase_core: 0af4a2b24f62071f9bf283691c0ee41556dcb3f5 - firebase_crashlytics: 4b91b8ad60ee7c168fe88979f84c9573a729de7a - firebase_dynamic_links: b626a11f5eb02033981ae377377c3f297eb4c1b0 - firebase_messaging: 90e8a6db84b6e1e876cebce4f30f01dc495e7014 - firebase_remote_config: 14ad7a3c99810d373ba1ad4a754a8cf26c91d476 + cloud_firestore: 003d53b6b8b392600b7769acf9421cc4f23e5911 + Firebase: 0312a2352584f782ea56f66d91606891d4607f06 + firebase_analytics: cc06e24d6a2343c44f845b3112143db72d10ef78 + firebase_core: a626d00494efa398e7c54f25f1454a64c8abf197 + firebase_crashlytics: 17e856fabec68d993662abaf2f6fe2413f0abece + firebase_dynamic_links: 525e9c1b702d2ed2d9b0dbd342eee1e15a75e62d + firebase_messaging: 1541105e2a2a6ef8bd869bcc44157d31e82f3a50 + firebase_remote_config: 7b05c80210ab558c80f7a756681022b4ee98eea0 FirebaseABTesting: d87f56707159bae64e269757a6e963d490f2eebe - FirebaseAnalytics: 4d310b35c48eaa4a058ddc04bdca6bdb5dc0fe80 + FirebaseAnalytics: ec00fe8b93b41dc6fe4a28784b8e51da0647a248 FirebaseAppCheckInterop: 6a1757cfd4067d8e00fccd14fcc1b8fd78cfac07 - FirebaseCore: 2322423314d92f946219c8791674d2f3345b598f + FirebaseCore: 7ec4d0484817f12c3373955bc87762d96842d483 FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 - FirebaseCrashlytics: 86d5bce01f42fa1db265f87ff1d591f04db610ec - FirebaseDynamicLinks: c37307441c53838d66a9650dabca9e0459502527 - FirebaseFirestore: 171bcbb57a1a348dd171a0d5e382c03ef85a77bb - FirebaseFirestoreInternal: f43d25cc04835ec3aa1885f4fc946a1a4f9e1c56 + FirebaseCrashlytics: 4b96efb0ce73b38b2a85e8b8bd1bd8f63f09d015 + FirebaseDynamicLinks: 12c9f5b643943e0565ed28080373f89cbcb914a3 + FirebaseFirestore: 977ccc27a3caa5d68279f209c3b0450f85b9dc5f + FirebaseFirestoreInternal: 04b8afa77b4e5b84e86ab5ad985193e9573239fa FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd - FirebaseMessaging: 9bc34a98d2e0237e1b121915120d4d48ddcf301e - FirebaseRemoteConfig: bbd42790a4e84fde6aab7eae810b608e7b5c0bf6 + FirebaseMessaging: 88950ba9485052891ebe26f6c43a52bb62248952 + FirebaseRemoteConfig: 9f3935cefecd85d5b312192117f444957de24a75 + FirebaseRemoteConfigInterop: 6efda51fb5e2f15b16585197e26eaa09574e8a4d FirebaseSessions: dbd14adac65ce996228652c1fc3a3f576bdf3ecc FirebaseSharedSwift: 20530f495084b8d840f78a100d8c5ee613375f6e Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_keyboard_visibility_temp_fork: 442dadca3b81868a225cd6a2f605bffff1215844 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - GoogleAppMeasurement: 70ce9aa438cff1cfb31ea3e660bcc67734cb716e + GoogleAppMeasurement: 9abf64b682732fed36da827aa2a68f0221fd2356 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleMLKit: 2bd0dc6253c4d4f227aad460f69215a504b2980e GoogleToolboxForMac: 8bef7c7c5cf7291c687cf5354f39f9db6399ad34 @@ -1450,18 +1465,19 @@ SPEC CHECKSUMS: MLKitCommon: c1b791c3e667091918d91bda4bba69a91011e390 MLKitVision: 8baa5f46ee3352614169b85250574fde38c36f49 mobile_scanner: 38dcd8a49d7d485f632b7de65e4900010187aef2 - nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5 + nanopb: 438bc412db1928dac798aa6fd75726007be04262 package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 + quill_native_bridge: e5afa7d49c08cf68c52a5e23bc272eba6925c622 share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: b347bf786bcbbd0a76929a5f65d30a5cde8fd52f +PODFILE CHECKSUM: 59074246695b2bc02ee153f7d2a28a6efedb0823 COCOAPODS: 1.15.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 679176d..7dbfba1 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -333,6 +333,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -413,6 +414,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -469,6 +471,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; diff --git a/lib/ui/proposals/creation/components/proposal_creation_view.dart b/lib/ui/proposals/creation/components/proposal_creation_view.dart new file mode 100644 index 0000000..21aa666 --- /dev/null +++ b/lib/ui/proposals/creation/components/proposal_creation_view.dart @@ -0,0 +1,177 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_quill/flutter_quill.dart'; +import 'package:get/get_utils/src/extensions/context_extensions.dart'; +import 'package:hypha_wallet/design/hypha_colors.dart'; +import 'package:hypha_wallet/design/themes/extensions/theme_extension_provider.dart'; + +class ProposalCreationView extends StatefulWidget { + const ProposalCreationView({super.key}); + + @override + State createState() => _ProposalCreationViewState(); +} + +class _ProposalCreationViewState extends State { + final TextEditingController _titleController = TextEditingController(); + final QuillController _quillController = QuillController.basic(); + final ScrollController _scrollController = ScrollController(); + final FocusNode _focusNode = FocusNode(); + final ValueNotifier _isEditingNotifier = ValueNotifier(false); + + @override + void initState() { + super.initState(); + + _focusNode.addListener(() { + _isEditingNotifier.value = _focusNode.hasFocus; + if (_focusNode.hasFocus) { + _scrollToBottom(); + } + }); + + _quillController.document.changes.listen((event) { + _scrollToBottom(); + }); + } + + void _scrollToBottom() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (_scrollController.hasClients) { + Future.delayed(const Duration(milliseconds: 300), () { + _scrollController.animateTo( + _scrollController.position.maxScrollExtent, + duration: const Duration(milliseconds: 300), + curve: Curves.easeInOut, + ); + }); + } + }); + } + + @override + void dispose() { + _focusNode.dispose(); + _scrollController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + FocusScope.of(context).unfocus(); + }, + child: Container( + height: MediaQuery.sizeOf(context).height, + color: context.isDarkMode ? HyphaColors.darkBlack : HyphaColors.offWhite, + padding: const EdgeInsets.symmetric(horizontal: 20), + child: SingleChildScrollView( + controller: _scrollController, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 20), + Text( + 'Proposal Content', + style: context.hyphaTextTheme.smallTitles.copyWith(color: HyphaColors.primaryBlu), + ), + Padding( + padding: const EdgeInsets.only(top: 20, bottom: 30), + child: Text( + 'Add a title for your proposal, and use the big text field to include as many details as you need.', + style: context.hyphaTextTheme.ralMediumBody.copyWith(color: HyphaColors.midGrey), + ), + ), + TextField( + controller: _titleController, + decoration: InputDecoration( + filled: true, + fillColor: context.isDarkMode ? HyphaColors.lightBlack : HyphaColors.white, + labelText: 'Title', + labelStyle: TextStyle( + color: _titleController.text.isEmpty + ? (context.isDarkMode ? HyphaColors.midGrey : HyphaColors.black) + : HyphaColors.primaryBlu, + ), + floatingLabelBehavior: FloatingLabelBehavior.always, + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide( + color: context.isDarkMode ? HyphaColors.lightBlack : HyphaColors.white, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide( + color: context.isDarkMode ? HyphaColors.lightBlack : HyphaColors.white, + ), + ), + ), + ), + const SizedBox(height: 20), + ValueListenableBuilder( + valueListenable: _isEditingNotifier, + builder: (BuildContext context, bool isEditing, Widget? child) { + return Visibility( + visible: isEditing, + child: QuillSimpleToolbar( + controller: _quillController, + configurations: const QuillSimpleToolbarConfigurations(), + ), + ); + } + ), + Stack( + clipBehavior: Clip.none, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: context.isDarkMode ? HyphaColors.lightBlack : HyphaColors.white, + borderRadius: BorderRadius.circular(8), + ), + child: ConstrainedBox( + constraints: const BoxConstraints( + minHeight: 150.0, + ), + child: IntrinsicHeight( + child: QuillEditor.basic( + controller: _quillController, + focusNode: _focusNode, + configurations: QuillEditorConfigurations( + keyboardAppearance: context.isDarkMode + ? Brightness.dark + : Brightness.light, + ), + ), + ), + ), + ), + Positioned( + left: 12, + top: -6, + child: Text( + 'Details', + style: context.hyphaTextTheme.ralMediumLabel.copyWith( + color: _quillController.document.isEmpty() + ? (context.isDarkMode + ? HyphaColors.midGrey + : HyphaColors.black) + : HyphaColors.primaryBlu, + ), + ), + ), + ], + ), + Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewPadding.bottom + 20, + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/ui/proposals/creation/proposal_creation_page.dart b/lib/ui/proposals/creation/proposal_creation_page.dart new file mode 100644 index 0000000..cf237e0 --- /dev/null +++ b/lib/ui/proposals/creation/proposal_creation_page.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; +import 'package:get/get_utils/src/extensions/context_extensions.dart'; +import 'package:hypha_wallet/design/hypha_colors.dart'; +import 'package:hypha_wallet/design/themes/extensions/theme_extension_provider.dart'; +import 'package:hypha_wallet/ui/proposals/creation/components/proposal_creation_view.dart'; +import 'package:smooth_page_indicator/smooth_page_indicator.dart'; + +class ProposalCreationPage extends StatelessWidget { + const ProposalCreationPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: context.isDarkMode ? HyphaColors.lightBlack : HyphaColors.white, + automaticallyImplyLeading: false, + toolbarHeight: 100, + scrolledUnderElevation: 0, + title: Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SmoothPageIndicator( + controller: PageController(), + count: 4, + effect: SlideEffect( + dotHeight: 10.0, + dotWidth: 10.0, + activeDotColor: HyphaColors.primaryBlu, + dotColor: HyphaColors.lightBlue.withOpacity(.2), + ), + ), + const SizedBox(height: 10), + Text( + 'Create Proposal', + style: context.hyphaTextTheme.mediumTitles, + ), + ], + ), + const Spacer(), + ...List.generate(2, (index) { + return Container( + margin: const EdgeInsets.only(left: 10), + height: 40, + width: 40, + decoration: BoxDecoration( + // TODO(Zied-Saif): add a gradient (not clickable) + gradient: index == 1 ? HyphaColors.gradientBlu : null, + color: index == 0 ? HyphaColors.midGrey.withOpacity(.3) : null, + borderRadius: BorderRadius.circular(8.0), + ), + child: Padding( + padding: EdgeInsets.only(left: index == 0 ? 6 : 0), + child: Icon( + index == 0 ? Icons.arrow_back_ios : Icons.arrow_forward_ios, + size: 18, + color: HyphaColors.offWhite, + ), + ), + ); + }) + ], + ), + ), + body: const ProposalCreationView(), + ); + } +} diff --git a/lib/ui/proposals/list/components/proposals_view.dart b/lib/ui/proposals/list/components/proposals_view.dart index 09c8fb0..dcb5258 100644 --- a/lib/ui/proposals/list/components/proposals_view.dart +++ b/lib/ui/proposals/list/components/proposals_view.dart @@ -11,6 +11,7 @@ import 'package:hypha_wallet/design/themes/extensions/theme_extension_provider.d import 'package:hypha_wallet/ui/blocs/authentication/authentication_bloc.dart'; import 'package:hypha_wallet/ui/profile/profile_page.dart'; import 'package:hypha_wallet/ui/proposals/components/proposals_list.dart'; +import 'package:hypha_wallet/ui/proposals/creation/proposal_creation_page.dart'; import 'package:hypha_wallet/ui/proposals/filter/filter_proposals_page.dart'; import 'package:hypha_wallet/ui/proposals/filter/interactor/filter_proposals_bloc.dart'; import 'package:hypha_wallet/ui/proposals/filter/interactor/filter_status.dart'; @@ -172,7 +173,9 @@ class ProposalsView extends StatelessWidget { ), )), floatingActionButton: IconButton( - onPressed: () {}, + onPressed: () { + GetX.Get.to(() => const ProposalCreationPage(), transition: GetX.Transition.leftToRight); + }, icon: const CircleAvatar( radius: 30, backgroundImage: AssetImage( diff --git a/pubspec.lock b/pubspec.lock index b046ab2..e2c2182 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: f5628cd9c92ed11083f425fd1f8f1bc60ecdda458c81d73b143aeda036c35fe7 + sha256: "37a42d06068e2fe3deddb2da079a8c4d105f241225ba27b7122b37e9865fd8f7" url: "https://pub.dev" source: hosted - version: "1.3.16" + version: "1.3.35" _macros: dependency: transitive description: dart @@ -154,10 +154,10 @@ packages: dependency: "direct main" description: name: build_runner - sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" url: "https://pub.dev" source: hosted - version: "2.4.12" + version: "2.4.13" build_runner_core: dependency: transitive description: @@ -214,6 +214,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + charcode: + dependency: transitive + description: + name: charcode + sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 + url: "https://pub.dev" + source: hosted + version: "1.3.1" checked_yaml: dependency: transitive description: @@ -234,26 +242,26 @@ packages: dependency: "direct main" description: name: cloud_firestore - sha256: "8bfbb5a2edbc6052452326d60de0113fea2bcbf081d34a3f8e45c8b38307b31c" + sha256: a0f161b92610e078b4962d7e6ebeb66dc9cce0ada3514aeee442f68165d78185 url: "https://pub.dev" source: hosted - version: "4.14.0" + version: "4.17.5" cloud_firestore_platform_interface: dependency: transitive description: name: cloud_firestore_platform_interface - sha256: "73ff438fe46028f0e19f55da18b6ddc6906ab750562cd7d9ffab77ff8c0c4307" + sha256: "6a55b319f8d33c307396b9104512e8130a61904528ab7bd8b5402678fca54b81" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.2.5" cloud_firestore_web: dependency: transitive description: name: cloud_firestore_web - sha256: "232e45e95970d3a6baab8f50f9c3a6e2838d145d9d91ec9a7392837c44296397" + sha256: "89dfa1304d3da48b3039abbb2865e3d30896ef858e569a16804a99f4362283a9" url: "https://pub.dev" source: hosted - version: "3.9.0" + version: "3.12.5" code_builder: dependency: transitive description: @@ -294,6 +302,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.5" + csslib: + dependency: transitive + description: + name: csslib + sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + url: "https://pub.dev" + source: hosted + version: "1.0.0" cupertino_icons: dependency: "direct main" description: @@ -310,22 +326,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + dart_quill_delta: + dependency: transitive + description: + name: dart_quill_delta + sha256: a3552d7dfe4904ab344ccc7bf6453fd2d966b7ef64a945e364ae18dd486b9569 + url: "https://pub.dev" + source: hosted + version: "10.8.1" dart_style: dependency: transitive description: name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + url: "https://pub.dev" + source: hosted + version: "2.3.7" + diff_match_patch: + dependency: transitive + description: + name: diff_match_patch + sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "0.4.1" dio: dependency: "direct main" description: name: dio - sha256: "0dfb6b6a1979dac1c1245e17cef824d7b452ea29bd33d3467269f9bef3715fb0" + sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260" url: "https://pub.dev" source: hosted - version: "5.6.0" + version: "5.7.0" dio_smart_retry: dependency: "direct main" description: @@ -362,10 +394,10 @@ packages: dependency: transitive description: name: elliptic - sha256: "98e2fa89a714c649174553c823db2612dc9581814477fe1264a499d448237b6b" + sha256: "0c303d810603953a65dc39c4c542fb7538defd9e212403c54c266140819523b6" url: "https://pub.dev" source: hosted - version: "0.3.10" + version: "0.3.11" equatable: dependency: "direct main" description: @@ -410,10 +442,10 @@ packages: dependency: transitive description: name: file_selector_macos - sha256: f42eacb83b318e183b1ae24eead1373ab1334084404c8c16e0354f9a3e55d385 + sha256: cb284e267f8e2a45a904b5c094d2ba51d0aabfc20b1538ab786d9ef7dc2bf75c url: "https://pub.dev" source: hosted - version: "0.9.4" + version: "0.9.4+1" file_selector_platform_interface: dependency: transitive description: @@ -426,10 +458,10 @@ packages: dependency: transitive description: name: file_selector_windows - sha256: "2ad726953f6e8affbc4df8dc78b77c3b4a060967a291e528ef72ae846c60fb69" + sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4" url: "https://pub.dev" source: hosted - version: "0.9.3+2" + version: "0.9.3+3" fimber: dependency: "direct main" description: @@ -442,82 +474,82 @@ packages: dependency: "direct main" description: name: firebase_analytics - sha256: "0240076090d77045d757aecb090616066d23b343840d4c21074094d6fe40a184" + sha256: dbf1e7ab22cfb1f4a4adb103b46a26276b4edc593d4a78ef6fb942bafc92e035 url: "https://pub.dev" source: hosted - version: "10.8.0" + version: "10.10.7" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: "6d9baa077d16b47ef5f19d982c4fc475597991aa53b0c601216faa3e1cdab45f" + sha256: "3729b74f8cf1d974a27ba70332ecb55ff5ff560edc8164a6469f4a055b429c37" url: "https://pub.dev" source: hosted - version: "3.9.0" + version: "3.10.8" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "89a740249bce9d52a99db4e501be6087ca6749c73c47cff2b174802be10abd81" + sha256: "019cd7eee74254d33fbd2e29229367ce33063516bf6b3258a341d89e3b0f1655" url: "https://pub.dev" source: hosted - version: "0.5.5+12" + version: "0.5.7+7" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "96607c0e829a581c2a483c658f04e8b159964c3bae2730f73297070bc85d40bb" + sha256: "26de145bb9688a90962faec6f838247377b0b0d32cc0abecd9a4e43525fc856c" url: "https://pub.dev" source: hosted - version: "2.24.2" + version: "2.32.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: "3c3a1e92d6f4916c32deea79c4a7587aa0e9dbbe5889c7a16afcf005a485ee02" + sha256: e30da58198a6d4b49d5bce4e852f985c32cb10db329ebef9473db2b9f09ce810 url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.3.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: d585bdf3c656c3f7821ba1bd44da5f13365d22fcecaf5eb75c4295246aaa83c0 + sha256: f967a7138f5d2ffb1ce15950e2a382924239eaa521150a8f144af34e68b3b3e5 url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.18.1" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: "5125b7f3fcef2bfdd7e071afe7edcefd9597968003e44e073456c773d91694ee" + sha256: "9897c01efaa950d2f6da8317d12452749a74dc45f33b46390a14cfe28067f271" url: "https://pub.dev" source: hosted - version: "3.4.9" + version: "3.5.7" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: "359197344def001589c84f8d1d57c05f6e2e773f559205610ce58c25e2045a57" + sha256: "16a71e08fbf6e00382816e1b13397898c29a54fa0ad969c2c2a3b82a704877f0" url: "https://pub.dev" source: hosted - version: "3.6.16" + version: "3.6.35" firebase_dynamic_links: dependency: "direct main" description: name: firebase_dynamic_links - sha256: b0522806658428803aeb5e7be0b22a29acb8f8697a8909c36965feaeb1f655bd + sha256: "47b8c8a8546d8a7f9000edb90848549f20b137d814ee7e0407b3d43b8445e282" url: "https://pub.dev" source: hosted - version: "5.4.8" + version: "5.5.7" firebase_dynamic_links_platform_interface: dependency: transitive description: name: firebase_dynamic_links_platform_interface - sha256: "8b90384d8f85c7211f2b5e2d9d5ae98bd08091f116ef2bd1a74b33574efacc61" + sha256: "72e7810635f908ce060c5803c7acb29116c5b6befc73e90446c52722bc9506a2" url: "https://pub.dev" source: hosted - version: "0.2.6+16" + version: "0.2.6+35" firebase_messaging: dependency: "direct main" description: @@ -530,10 +562,10 @@ packages: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "54e283a0e41d81d854636ad0dad73066adc53407a60a7c3189c9656e2f1b6107" + sha256: "87c4a922cb6f811cfb7a889bdbb3622702443c52a0271636cbc90d813ceac147" url: "https://pub.dev" source: hosted - version: "4.5.18" + version: "4.5.37" firebase_messaging_web: dependency: transitive description: @@ -546,26 +578,26 @@ packages: dependency: "direct main" description: name: firebase_remote_config - sha256: "60fc92273d1db338a6fad1839c42dedc4ad64f812043acad0cbb200702f5c9ce" + sha256: "653bd94b68e2c4e89eca10db90576101f1024151f39f2d4e7c64ae6a90a5f9c5" url: "https://pub.dev" source: hosted - version: "4.3.8" + version: "4.4.7" firebase_remote_config_platform_interface: dependency: transitive description: name: firebase_remote_config_platform_interface - sha256: "41813ef8dfbc40ef7a59a73f9e5acef2608dbcb2933241b6c03d52e90677040f" + sha256: "24a2c445b15de3af7e4582ebceb2aa9a1e3731d0202cb3e7a1e03012440fa07d" url: "https://pub.dev" source: hosted - version: "1.4.16" + version: "1.4.35" firebase_remote_config_web: dependency: transitive description: name: firebase_remote_config_web - sha256: "089e92f333c2fb2c05c640c80fecea9d1e06dada0ba85efe34a580987ef94a0a" + sha256: "525aa3000fd27cd023841c802010a06515e564aab2f147aa964b35f54abbf449" url: "https://pub.dev" source: hosted - version: "1.4.16" + version: "1.6.7" fixnum: dependency: transitive description: @@ -595,6 +627,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.3.1" + flutter_colorpicker: + dependency: transitive + description: + name: flutter_colorpicker + sha256: "969de5f6f9e2a570ac660fb7b501551451ea2a1ab9e2097e89475f60e07816ea" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flutter_dotenv: dependency: "direct main" description: @@ -603,6 +643,46 @@ packages: url: "https://pub.dev" source: hosted version: "5.1.0" + flutter_keyboard_visibility_linux: + dependency: transitive + description: + name: flutter_keyboard_visibility_linux + sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_keyboard_visibility_macos: + dependency: transitive + description: + name: flutter_keyboard_visibility_macos + sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_keyboard_visibility_platform_interface: + dependency: transitive + description: + name: flutter_keyboard_visibility_platform_interface + sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_keyboard_visibility_temp_fork: + dependency: transitive + description: + name: flutter_keyboard_visibility_temp_fork + sha256: e342172aaa6173a661e822c85a005f8c5d0a04a1d263e00cb9f9155adab9cb7c + url: "https://pub.dev" + source: hosted + version: "0.1.1" + flutter_keyboard_visibility_windows: + dependency: transitive + description: + name: flutter_keyboard_visibility_windows + sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 + url: "https://pub.dev" + source: hosted + version: "1.0.0" flutter_lints: dependency: "direct dev" description: @@ -611,6 +691,11 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" + flutter_localizations: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -619,6 +704,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.22" + flutter_quill: + dependency: "direct main" + description: + name: flutter_quill + sha256: f33f9b42705ef0ab9c633fadb7d47622235f0f96d26c8516b4c7a785b49d85e2 + url: "https://pub.dev" + source: hosted + version: "10.8.2" + flutter_quill_delta_from_html: + dependency: transitive + description: + name: flutter_quill_delta_from_html + sha256: fd6e18af21d35277524302d95e24cd3ebedc59b976ddb4605aaf775d38892d40 + url: "https://pub.dev" + source: hosted + version: "1.4.1" flutter_secure_storage: dependency: "direct main" description: @@ -773,6 +874,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.0" + html: + dependency: transitive + description: + name: html + sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + url: "https://pub.dev" + source: hosted + version: "0.15.4" http: dependency: transitive description: @@ -905,10 +1014,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -1005,6 +1114,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.2-main.4" + markdown: + dependency: transitive + description: + name: markdown + sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 + url: "https://pub.dev" + source: hosted + version: "7.2.2" matcher: dependency: transitive description: @@ -1033,10 +1150,10 @@ packages: dependency: transitive description: name: mime - sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.6" mobile_scanner: dependency: "direct main" description: @@ -1277,6 +1394,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + quill_native_bridge: + dependency: transitive + description: + name: quill_native_bridge + sha256: "7e2050567c5dae3516b6c399fdd2036971aa16114e19c51832523f2ec1b8faca" + url: "https://pub.dev" + source: hosted + version: "10.6.2" + quiver: + dependency: transitive + description: + name: quiver + sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 + url: "https://pub.dev" + source: hosted + version: "3.2.2" rx_shared_preferences: dependency: "direct main" description: @@ -1402,6 +1535,14 @@ packages: description: flutter source: sdk version: "0.0.99" + smooth_page_indicator: + dependency: "direct main" + description: + name: smooth_page_indicator + sha256: "3b28b0c545fa67ed9e5997d9f9720d486f54c0c607e056a1094544e36934dff3" + url: "https://pub.dev" + source: hosted + version: "1.2.0+3" source_gen: dependency: transitive description: @@ -1426,30 +1567,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" sqflite: dependency: transitive description: name: sqflite - sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d + sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788 url: "https://pub.dev" source: hosted - version: "2.3.3+1" + version: "2.3.3+2" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "7b41b6c3507854a159e24ae90a8e3e9cc01eb26a477c118d6dca065b5f55453e" + sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4" url: "https://pub.dev" source: hosted - version: "2.5.4+2" + version: "2.5.4+4" stack_trace: dependency: transitive description: @@ -1486,10 +1619,10 @@ packages: dependency: transitive description: name: synchronized - sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 + sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -1574,10 +1707,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_platform_interface: dependency: transitive description: @@ -1606,10 +1739,10 @@ packages: dependency: transitive description: name: uuid - sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" + sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" url: "https://pub.dev" source: hosted - version: "4.4.2" + version: "3.0.7" vector_graphics: dependency: transitive description: @@ -1646,10 +1779,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.4" + version: "14.2.5" watcher: dependency: transitive description: @@ -1662,10 +1795,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" web_socket: dependency: transitive description: @@ -1715,5 +1848,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.5.0 <4.0.0" + dart: ">=3.5.1 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 6920b12..6aa19a0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -112,7 +112,7 @@ dependencies: google_fonts: ^4.0.4 # formatting - intl: ^0.18.0 + intl: ^0.19.0 flutter_svg: ^2.0.5 @@ -158,6 +158,11 @@ dependencies: # Indicate percentage percent_indicator: ^4.2.3 + # Editor + flutter_quill: ^10.7.5 + + # Page indicator + smooth_page_indicator: ^1.2.0+3 dependency_overrides: dio: ^5.3.0