From 976f9081736e9d45f5ee5e2339b0952451a87704 Mon Sep 17 00:00:00 2001 From: Zied Dahmani Date: Wed, 20 Nov 2024 16:09:33 +0100 Subject: [PATCH] refactor: adjust proposal creation --- .../components/proposal_content_view.dart | 8 + .../interactor/proposal_creation_bloc.dart | 19 +-- .../proposal_creation_bloc.freezed.dart | 153 ------------------ .../interactor/proposal_creation_event.dart | 1 - .../creation/proposal_creation_page.dart | 10 +- .../components/proposal_details_view.dart | 10 +- .../history/proposals_history_page.dart | 0 7 files changed, 22 insertions(+), 179 deletions(-) delete mode 100644 lib/ui/proposals/history/proposals_history_page.dart diff --git a/lib/ui/proposals/creation/components/proposal_content_view.dart b/lib/ui/proposals/creation/components/proposal_content_view.dart index 08f9aaa8..4cf70130 100644 --- a/lib/ui/proposals/creation/components/proposal_content_view.dart +++ b/lib/ui/proposals/creation/components/proposal_content_view.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_quill/flutter_quill.dart'; +import 'package:flutter_quill/quill_delta.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'; @@ -27,6 +28,13 @@ class _ProposalContentViewState extends State { void initState() { super.initState(); + _titleController.text = context.read().state.proposal!.title ?? ''; + final String? details = context.read().state.proposal!.details; + if (details!= null) { + final List jsonData = jsonDecode(details); + _quillController.document = Document.fromDelta(Delta.fromJson(jsonData)); + } + _titleController.addListener(() { context.read().add(ProposalCreationEvent.updateProposal({'title': _titleController.text.isEmpty ? null : _titleController.text})); }); diff --git a/lib/ui/proposals/creation/interactor/proposal_creation_bloc.dart b/lib/ui/proposals/creation/interactor/proposal_creation_bloc.dart index 22facbbb..3d0f9dd5 100644 --- a/lib/ui/proposals/creation/interactor/proposal_creation_bloc.dart +++ b/lib/ui/proposals/creation/interactor/proposal_creation_bloc.dart @@ -21,26 +21,21 @@ class ProposalCreationBloc extends Bloc(_initialize); on<_UpdateCurrentView>(_updateCurrentView); on<_UpdateProposal>(_updateProposal); on<_PublishProposal>(_publishProposal); on<_ClearPageCommand>((_, emit) => emit(state.copyWith(command: null))); _pageController = PageController(initialPage: daos.length > 1 ? 0 : 1); + if (daos.length == 1) { + add(ProposalCreationEvent.updateProposal({'dao': daos.first})); + } } late final PageController _pageController; PageController get pageController => _pageController; - void _initialize(_Initialize event, Emitter emit) { - - if (daos.length == 1) { - emit(state.copyWith(proposal: state.proposal!.copyWith({'dao': daos.first}))); - } - } - void _updateCurrentView(_UpdateCurrentView event, Emitter emit) { if (event.nextViewIndex == -1) { emit(state.copyWith(command: const PageCommand.navigateBackToProposals())); @@ -77,13 +72,9 @@ class ProposalCreationBloc extends Bloc emit) { - _updateProposalFields(event.updates, emit); + final ProposalCreationModel proposal = state.proposal!.copyWith(event.updates); + emit(state.copyWith(proposal: proposal)); } Future _publishProposal(_PublishProposal event, Emitter emit) async { diff --git a/lib/ui/proposals/creation/interactor/proposal_creation_bloc.freezed.dart b/lib/ui/proposals/creation/interactor/proposal_creation_bloc.freezed.dart index 7b11a1f0..a0cd4f57 100644 --- a/lib/ui/proposals/creation/interactor/proposal_creation_bloc.freezed.dart +++ b/lib/ui/proposals/creation/interactor/proposal_creation_bloc.freezed.dart @@ -476,7 +476,6 @@ abstract class _NavigateToFailurePage implements PageCommand { mixin _$ProposalCreationEvent { @optionalTypeArgs TResult when({ - required TResult Function() initialize, required TResult Function(int nextViewIndex) updateCurrentView, required TResult Function(Map updates) updateProposal, required TResult Function() publishProposal, @@ -485,7 +484,6 @@ mixin _$ProposalCreationEvent { throw _privateConstructorUsedError; @optionalTypeArgs TResult? whenOrNull({ - TResult? Function()? initialize, TResult? Function(int nextViewIndex)? updateCurrentView, TResult? Function(Map updates)? updateProposal, TResult? Function()? publishProposal, @@ -494,7 +492,6 @@ mixin _$ProposalCreationEvent { throw _privateConstructorUsedError; @optionalTypeArgs TResult maybeWhen({ - TResult Function()? initialize, TResult Function(int nextViewIndex)? updateCurrentView, TResult Function(Map updates)? updateProposal, TResult Function()? publishProposal, @@ -504,7 +501,6 @@ mixin _$ProposalCreationEvent { throw _privateConstructorUsedError; @optionalTypeArgs TResult map({ - required TResult Function(_Initialize value) initialize, required TResult Function(_UpdateCurrentView value) updateCurrentView, required TResult Function(_UpdateProposal value) updateProposal, required TResult Function(_PublishProposal value) publishProposal, @@ -513,7 +509,6 @@ mixin _$ProposalCreationEvent { throw _privateConstructorUsedError; @optionalTypeArgs TResult? mapOrNull({ - TResult? Function(_Initialize value)? initialize, TResult? Function(_UpdateCurrentView value)? updateCurrentView, TResult? Function(_UpdateProposal value)? updateProposal, TResult? Function(_PublishProposal value)? publishProposal, @@ -522,7 +517,6 @@ mixin _$ProposalCreationEvent { throw _privateConstructorUsedError; @optionalTypeArgs TResult maybeMap({ - TResult Function(_Initialize value)? initialize, TResult Function(_UpdateCurrentView value)? updateCurrentView, TResult Function(_UpdateProposal value)? updateProposal, TResult Function(_PublishProposal value)? publishProposal, @@ -554,129 +548,6 @@ class _$ProposalCreationEventCopyWithImpl<$Res, /// with the given fields replaced by the non-null parameter values. } -/// @nodoc -abstract class _$$InitializeImplCopyWith<$Res> { - factory _$$InitializeImplCopyWith( - _$InitializeImpl value, $Res Function(_$InitializeImpl) then) = - __$$InitializeImplCopyWithImpl<$Res>; -} - -/// @nodoc -class __$$InitializeImplCopyWithImpl<$Res> - extends _$ProposalCreationEventCopyWithImpl<$Res, _$InitializeImpl> - implements _$$InitializeImplCopyWith<$Res> { - __$$InitializeImplCopyWithImpl( - _$InitializeImpl _value, $Res Function(_$InitializeImpl) _then) - : super(_value, _then); - - /// Create a copy of ProposalCreationEvent - /// with the given fields replaced by the non-null parameter values. -} - -/// @nodoc - -class _$InitializeImpl implements _Initialize { - const _$InitializeImpl(); - - @override - String toString() { - return 'ProposalCreationEvent.initialize()'; - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && other is _$InitializeImpl); - } - - @override - int get hashCode => runtimeType.hashCode; - - @override - @optionalTypeArgs - TResult when({ - required TResult Function() initialize, - required TResult Function(int nextViewIndex) updateCurrentView, - required TResult Function(Map updates) updateProposal, - required TResult Function() publishProposal, - required TResult Function() clearPageCommand, - }) { - return initialize(); - } - - @override - @optionalTypeArgs - TResult? whenOrNull({ - TResult? Function()? initialize, - TResult? Function(int nextViewIndex)? updateCurrentView, - TResult? Function(Map updates)? updateProposal, - TResult? Function()? publishProposal, - TResult? Function()? clearPageCommand, - }) { - return initialize?.call(); - } - - @override - @optionalTypeArgs - TResult maybeWhen({ - TResult Function()? initialize, - TResult Function(int nextViewIndex)? updateCurrentView, - TResult Function(Map updates)? updateProposal, - TResult Function()? publishProposal, - TResult Function()? clearPageCommand, - required TResult orElse(), - }) { - if (initialize != null) { - return initialize(); - } - return orElse(); - } - - @override - @optionalTypeArgs - TResult map({ - required TResult Function(_Initialize value) initialize, - required TResult Function(_UpdateCurrentView value) updateCurrentView, - required TResult Function(_UpdateProposal value) updateProposal, - required TResult Function(_PublishProposal value) publishProposal, - required TResult Function(_ClearPageCommand value) clearPageCommand, - }) { - return initialize(this); - } - - @override - @optionalTypeArgs - TResult? mapOrNull({ - TResult? Function(_Initialize value)? initialize, - TResult? Function(_UpdateCurrentView value)? updateCurrentView, - TResult? Function(_UpdateProposal value)? updateProposal, - TResult? Function(_PublishProposal value)? publishProposal, - TResult? Function(_ClearPageCommand value)? clearPageCommand, - }) { - return initialize?.call(this); - } - - @override - @optionalTypeArgs - TResult maybeMap({ - TResult Function(_Initialize value)? initialize, - TResult Function(_UpdateCurrentView value)? updateCurrentView, - TResult Function(_UpdateProposal value)? updateProposal, - TResult Function(_PublishProposal value)? publishProposal, - TResult Function(_ClearPageCommand value)? clearPageCommand, - required TResult orElse(), - }) { - if (initialize != null) { - return initialize(this); - } - return orElse(); - } -} - -abstract class _Initialize implements ProposalCreationEvent { - const factory _Initialize() = _$InitializeImpl; -} - /// @nodoc abstract class _$$UpdateCurrentViewImplCopyWith<$Res> { factory _$$UpdateCurrentViewImplCopyWith(_$UpdateCurrentViewImpl value, @@ -747,7 +618,6 @@ class _$UpdateCurrentViewImpl implements _UpdateCurrentView { @override @optionalTypeArgs TResult when({ - required TResult Function() initialize, required TResult Function(int nextViewIndex) updateCurrentView, required TResult Function(Map updates) updateProposal, required TResult Function() publishProposal, @@ -759,7 +629,6 @@ class _$UpdateCurrentViewImpl implements _UpdateCurrentView { @override @optionalTypeArgs TResult? whenOrNull({ - TResult? Function()? initialize, TResult? Function(int nextViewIndex)? updateCurrentView, TResult? Function(Map updates)? updateProposal, TResult? Function()? publishProposal, @@ -771,7 +640,6 @@ class _$UpdateCurrentViewImpl implements _UpdateCurrentView { @override @optionalTypeArgs TResult maybeWhen({ - TResult Function()? initialize, TResult Function(int nextViewIndex)? updateCurrentView, TResult Function(Map updates)? updateProposal, TResult Function()? publishProposal, @@ -787,7 +655,6 @@ class _$UpdateCurrentViewImpl implements _UpdateCurrentView { @override @optionalTypeArgs TResult map({ - required TResult Function(_Initialize value) initialize, required TResult Function(_UpdateCurrentView value) updateCurrentView, required TResult Function(_UpdateProposal value) updateProposal, required TResult Function(_PublishProposal value) publishProposal, @@ -799,7 +666,6 @@ class _$UpdateCurrentViewImpl implements _UpdateCurrentView { @override @optionalTypeArgs TResult? mapOrNull({ - TResult? Function(_Initialize value)? initialize, TResult? Function(_UpdateCurrentView value)? updateCurrentView, TResult? Function(_UpdateProposal value)? updateProposal, TResult? Function(_PublishProposal value)? publishProposal, @@ -811,7 +677,6 @@ class _$UpdateCurrentViewImpl implements _UpdateCurrentView { @override @optionalTypeArgs TResult maybeMap({ - TResult Function(_Initialize value)? initialize, TResult Function(_UpdateCurrentView value)? updateCurrentView, TResult Function(_UpdateProposal value)? updateProposal, TResult Function(_PublishProposal value)? publishProposal, @@ -914,7 +779,6 @@ class _$UpdateProposalImpl implements _UpdateProposal { @override @optionalTypeArgs TResult when({ - required TResult Function() initialize, required TResult Function(int nextViewIndex) updateCurrentView, required TResult Function(Map updates) updateProposal, required TResult Function() publishProposal, @@ -926,7 +790,6 @@ class _$UpdateProposalImpl implements _UpdateProposal { @override @optionalTypeArgs TResult? whenOrNull({ - TResult? Function()? initialize, TResult? Function(int nextViewIndex)? updateCurrentView, TResult? Function(Map updates)? updateProposal, TResult? Function()? publishProposal, @@ -938,7 +801,6 @@ class _$UpdateProposalImpl implements _UpdateProposal { @override @optionalTypeArgs TResult maybeWhen({ - TResult Function()? initialize, TResult Function(int nextViewIndex)? updateCurrentView, TResult Function(Map updates)? updateProposal, TResult Function()? publishProposal, @@ -954,7 +816,6 @@ class _$UpdateProposalImpl implements _UpdateProposal { @override @optionalTypeArgs TResult map({ - required TResult Function(_Initialize value) initialize, required TResult Function(_UpdateCurrentView value) updateCurrentView, required TResult Function(_UpdateProposal value) updateProposal, required TResult Function(_PublishProposal value) publishProposal, @@ -966,7 +827,6 @@ class _$UpdateProposalImpl implements _UpdateProposal { @override @optionalTypeArgs TResult? mapOrNull({ - TResult? Function(_Initialize value)? initialize, TResult? Function(_UpdateCurrentView value)? updateCurrentView, TResult? Function(_UpdateProposal value)? updateProposal, TResult? Function(_PublishProposal value)? publishProposal, @@ -978,7 +838,6 @@ class _$UpdateProposalImpl implements _UpdateProposal { @override @optionalTypeArgs TResult maybeMap({ - TResult Function(_Initialize value)? initialize, TResult Function(_UpdateCurrentView value)? updateCurrentView, TResult Function(_UpdateProposal value)? updateProposal, TResult Function(_PublishProposal value)? publishProposal, @@ -1046,7 +905,6 @@ class _$PublishProposalImpl implements _PublishProposal { @override @optionalTypeArgs TResult when({ - required TResult Function() initialize, required TResult Function(int nextViewIndex) updateCurrentView, required TResult Function(Map updates) updateProposal, required TResult Function() publishProposal, @@ -1058,7 +916,6 @@ class _$PublishProposalImpl implements _PublishProposal { @override @optionalTypeArgs TResult? whenOrNull({ - TResult? Function()? initialize, TResult? Function(int nextViewIndex)? updateCurrentView, TResult? Function(Map updates)? updateProposal, TResult? Function()? publishProposal, @@ -1070,7 +927,6 @@ class _$PublishProposalImpl implements _PublishProposal { @override @optionalTypeArgs TResult maybeWhen({ - TResult Function()? initialize, TResult Function(int nextViewIndex)? updateCurrentView, TResult Function(Map updates)? updateProposal, TResult Function()? publishProposal, @@ -1086,7 +942,6 @@ class _$PublishProposalImpl implements _PublishProposal { @override @optionalTypeArgs TResult map({ - required TResult Function(_Initialize value) initialize, required TResult Function(_UpdateCurrentView value) updateCurrentView, required TResult Function(_UpdateProposal value) updateProposal, required TResult Function(_PublishProposal value) publishProposal, @@ -1098,7 +953,6 @@ class _$PublishProposalImpl implements _PublishProposal { @override @optionalTypeArgs TResult? mapOrNull({ - TResult? Function(_Initialize value)? initialize, TResult? Function(_UpdateCurrentView value)? updateCurrentView, TResult? Function(_UpdateProposal value)? updateProposal, TResult? Function(_PublishProposal value)? publishProposal, @@ -1110,7 +964,6 @@ class _$PublishProposalImpl implements _PublishProposal { @override @optionalTypeArgs TResult maybeMap({ - TResult Function(_Initialize value)? initialize, TResult Function(_UpdateCurrentView value)? updateCurrentView, TResult Function(_UpdateProposal value)? updateProposal, TResult Function(_PublishProposal value)? publishProposal, @@ -1169,7 +1022,6 @@ class _$ClearPageCommandImpl implements _ClearPageCommand { @override @optionalTypeArgs TResult when({ - required TResult Function() initialize, required TResult Function(int nextViewIndex) updateCurrentView, required TResult Function(Map updates) updateProposal, required TResult Function() publishProposal, @@ -1181,7 +1033,6 @@ class _$ClearPageCommandImpl implements _ClearPageCommand { @override @optionalTypeArgs TResult? whenOrNull({ - TResult? Function()? initialize, TResult? Function(int nextViewIndex)? updateCurrentView, TResult? Function(Map updates)? updateProposal, TResult? Function()? publishProposal, @@ -1193,7 +1044,6 @@ class _$ClearPageCommandImpl implements _ClearPageCommand { @override @optionalTypeArgs TResult maybeWhen({ - TResult Function()? initialize, TResult Function(int nextViewIndex)? updateCurrentView, TResult Function(Map updates)? updateProposal, TResult Function()? publishProposal, @@ -1209,7 +1059,6 @@ class _$ClearPageCommandImpl implements _ClearPageCommand { @override @optionalTypeArgs TResult map({ - required TResult Function(_Initialize value) initialize, required TResult Function(_UpdateCurrentView value) updateCurrentView, required TResult Function(_UpdateProposal value) updateProposal, required TResult Function(_PublishProposal value) publishProposal, @@ -1221,7 +1070,6 @@ class _$ClearPageCommandImpl implements _ClearPageCommand { @override @optionalTypeArgs TResult? mapOrNull({ - TResult? Function(_Initialize value)? initialize, TResult? Function(_UpdateCurrentView value)? updateCurrentView, TResult? Function(_UpdateProposal value)? updateProposal, TResult? Function(_PublishProposal value)? publishProposal, @@ -1233,7 +1081,6 @@ class _$ClearPageCommandImpl implements _ClearPageCommand { @override @optionalTypeArgs TResult maybeMap({ - TResult Function(_Initialize value)? initialize, TResult Function(_UpdateCurrentView value)? updateCurrentView, TResult Function(_UpdateProposal value)? updateProposal, TResult Function(_PublishProposal value)? publishProposal, diff --git a/lib/ui/proposals/creation/interactor/proposal_creation_event.dart b/lib/ui/proposals/creation/interactor/proposal_creation_event.dart index 7ef1a257..134efd3f 100644 --- a/lib/ui/proposals/creation/interactor/proposal_creation_event.dart +++ b/lib/ui/proposals/creation/interactor/proposal_creation_event.dart @@ -2,7 +2,6 @@ part of 'proposal_creation_bloc.dart'; @freezed class ProposalCreationEvent with _$ProposalCreationEvent { - const factory ProposalCreationEvent.initialize() = _Initialize; const factory ProposalCreationEvent.updateCurrentView(int nextViewIndex) = _UpdateCurrentView; const factory ProposalCreationEvent.updateProposal(Map updates) = _UpdateProposal; const factory ProposalCreationEvent.publishProposal() = _PublishProposal; diff --git a/lib/ui/proposals/creation/proposal_creation_page.dart b/lib/ui/proposals/creation/proposal_creation_page.dart index 6fbff9d8..a94851b1 100644 --- a/lib/ui/proposals/creation/proposal_creation_page.dart +++ b/lib/ui/proposals/creation/proposal_creation_page.dart @@ -1,12 +1,9 @@ -// ignore_for_file: unused_import - import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:get/get.dart'; import 'package:get_it/get_it.dart'; import 'package:hypha_wallet/core/error_handler/model/hypha_error.dart'; import 'package:hypha_wallet/core/network/models/dao_data_model.dart'; -import 'package:hypha_wallet/core/network/models/outcome_model.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/dao_selection_view.dart'; @@ -18,9 +15,8 @@ import 'package:hypha_wallet/ui/sign_transaction/success/sign_transaction_succes import 'package:smooth_page_indicator/smooth_page_indicator.dart'; class ProposalCreationPage extends StatelessWidget { - const ProposalCreationPage(this.daos, {super.key}); - final List daos; + const ProposalCreationPage(this.daos, {super.key}); @override Widget build(BuildContext context) { @@ -88,6 +84,10 @@ class ProposalCreationPage extends StatelessWidget { onTap: () { final nextIndex = state.currentViewIndex + (index == 0 ? -1 : 1); if (nextIndex >= -1) { + if(state.currentViewIndex == 1) { + FocusManager.instance.primaryFocus?.unfocus(); + } + context.read().add(ProposalCreationEvent.updateCurrentView(nextIndex)); } }, diff --git a/lib/ui/proposals/details/components/proposal_details_view.dart b/lib/ui/proposals/details/components/proposal_details_view.dart index 6500f4ab..013b0963 100644 --- a/lib/ui/proposals/details/components/proposal_details_view.dart +++ b/lib/ui/proposals/details/components/proposal_details_view.dart @@ -106,12 +106,12 @@ class _ProposalDetailsViewState extends State { ), const SizedBox(height: 30), + // TODO(Zied): check this /// Details Section if (_proposalDetailsModel.description != null) ...[ Text( 'Proposal Details', - style: context.hyphaTextTheme.ralMediumSmallNote - .copyWith(color: HyphaColors.midGrey), + style: context.hyphaTextTheme.ralMediumSmallNote.copyWith(color: HyphaColors.midGrey), ), ValueListenableBuilder( valueListenable: _isExpandedNotifier, @@ -123,8 +123,7 @@ class _ProposalDetailsViewState extends State { padding: const EdgeInsets.only(top: 10), child: Text( _proposalDetailsModel.description ?? '', - style: - context.hyphaTextTheme.ralMediumBody, + style: context.hyphaTextTheme.ralMediumBody, maxLines: isExpanded ? null : 3, overflow: isExpanded ? TextOverflow.visible @@ -132,8 +131,7 @@ class _ProposalDetailsViewState extends State { ), ), Padding( - padding: const EdgeInsets.symmetric( - vertical: 20), + padding: const EdgeInsets.symmetric(vertical: 20), child: Row( children: [ const Expanded(child: HyphaDivider()), diff --git a/lib/ui/proposals/history/proposals_history_page.dart b/lib/ui/proposals/history/proposals_history_page.dart deleted file mode 100644 index e69de29b..00000000