Skip to content

Commit 916762b

Browse files
authored
feat(cat-voices): comment error dialog (#2147)
* feat: update document property section buttons * feat: update title widget * feat: add property read widget * feat: document property viewer widget * feat: distinguish between answered and not answered * feat: handle overriden widgets in document builder viewer * fix: submit proposal for review * feat: cleanup colors, update save button * chore: cleanup * chore: cleanup * feat: update rich text widget * style: spelling * feat: submit comment error dialog * chore: fix dialog positioning * feat: add comment error dialog in proposal page
1 parent 58297a1 commit 916762b

File tree

6 files changed

+95
-23
lines changed

6 files changed

+95
-23
lines changed

catalyst_voices/apps/voices/lib/pages/proposal/proposal_page.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:catalyst_voices/pages/proposal/widget/proposal_header.dart';
1010
import 'package:catalyst_voices/pages/proposal/widget/proposal_navigation_panel.dart';
1111
import 'package:catalyst_voices/pages/proposal/widget/proposal_sidebars.dart';
1212
import 'package:catalyst_voices/routes/routes.dart';
13+
import 'package:catalyst_voices/widgets/modals/comment/submit_comment_error_dialog.dart';
1314
import 'package:catalyst_voices/widgets/snackbar/voices_snackbar.dart';
1415
import 'package:catalyst_voices/widgets/widgets.dart';
1516
import 'package:catalyst_voices_blocs/catalyst_voices_blocs.dart';
@@ -83,6 +84,16 @@ class _ProposalPageState extends State<ProposalPage>
8384
super.dispose();
8485
}
8586

87+
@override
88+
void handleError(Object error) {
89+
switch (error) {
90+
case LocalizedUnknownPublishCommentException():
91+
unawaited(_showCommentException(error));
92+
default:
93+
super.handleError(error);
94+
}
95+
}
96+
8697
@override
8798
void handleSignal(ProposalSignal signal) {
8899
switch (signal) {
@@ -124,6 +135,15 @@ class _ProposalPageState extends State<ProposalPage>
124135

125136
void _handleSegmentsControllerChange() {}
126137

138+
Future<void> _showCommentException(
139+
LocalizedUnknownPublishCommentException error,
140+
) {
141+
return SubmitCommentErrorDialog.show(
142+
context: context,
143+
exception: error,
144+
);
145+
}
146+
127147
void _updateSegments(List<Segment> data) {
128148
final state = _segmentsController.value;
129149

catalyst_voices/apps/voices/lib/pages/proposal_builder/proposal_builder_page.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'package:catalyst_voices/pages/proposal_builder/proposal_builder_setup_pa
1313
import 'package:catalyst_voices/pages/spaces/appbar/session_state_header.dart';
1414
import 'package:catalyst_voices/routes/routing/proposal_builder_route.dart';
1515
import 'package:catalyst_voices/routes/routing/spaces_route.dart';
16+
import 'package:catalyst_voices/widgets/modals/comment/submit_comment_error_dialog.dart';
1617
import 'package:catalyst_voices/widgets/modals/proposals/publish_proposal_error_dialog.dart';
1718
import 'package:catalyst_voices/widgets/modals/proposals/submit_proposal_error_dialog.dart';
1819
import 'package:catalyst_voices/widgets/snackbar/voices_snackbar.dart';
@@ -138,6 +139,8 @@ class _ProposalBuilderPageState extends State<ProposalBuilderPage>
138139
unawaited(_showPublishException(error));
139140
case ProposalBuilderSubmitException():
140141
unawaited(_showSubmitException(error));
142+
case LocalizedUnknownPublishCommentException():
143+
unawaited(_showCommentException(error));
141144
default:
142145
super.handleError(error);
143146
}
@@ -231,6 +234,15 @@ class _ProposalBuilderPageState extends State<ProposalBuilderPage>
231234
}
232235
}
233236

237+
Future<void> _showCommentException(
238+
LocalizedUnknownPublishCommentException error,
239+
) {
240+
return SubmitCommentErrorDialog.show(
241+
context: context,
242+
exception: error,
243+
);
244+
}
245+
234246
Future<void> _showPublishException(ProposalBuilderPublishException error) {
235247
return PublishProposalErrorDialog.show(
236248
context: context,
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import 'package:catalyst_voices/widgets/buttons/voices_filled_button.dart';
2+
import 'package:catalyst_voices/widgets/modals/voices_dialog.dart';
3+
import 'package:catalyst_voices/widgets/modals/voices_info_dialog.dart';
4+
import 'package:catalyst_voices_assets/catalyst_voices_assets.dart';
5+
import 'package:catalyst_voices_brands/catalyst_voices_brands.dart';
6+
import 'package:catalyst_voices_localization/catalyst_voices_localization.dart';
7+
import 'package:catalyst_voices_view_models/catalyst_voices_view_models.dart';
8+
import 'package:flutter/material.dart';
9+
10+
/// Error dialog when submitting comment fails.
11+
class SubmitCommentErrorDialog {
12+
static Future<void> show({
13+
required BuildContext context,
14+
required LocalizedException exception,
15+
}) {
16+
return VoicesDialog.show(
17+
context: context,
18+
routeSettings: const RouteSettings(
19+
name: '/comments/submit-error',
20+
),
21+
builder: (context) {
22+
return VoicesDesktopInfoDialog(
23+
icon: VoicesAssets.icons.exclamation.buildIcon(
24+
color: Theme.of(context).colors.iconsWarning,
25+
),
26+
title: Text(context.l10n.submitCommentErrorDialogTitle),
27+
message: Text(exception.message(context)),
28+
action: VoicesFilledButton(
29+
onTap: () => Navigator.of(context).pop(),
30+
child: Text(context.l10n.okay),
31+
),
32+
);
33+
},
34+
);
35+
}
36+
}

catalyst_voices/apps/voices/lib/widgets/modals/proposals/submit_proposal_error_dialog.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:catalyst_voices_localization/catalyst_voices_localization.dart';
77
import 'package:catalyst_voices_view_models/catalyst_voices_view_models.dart';
88
import 'package:flutter/material.dart';
99

10-
/// Error dialog when submitting proposal for review fails..
10+
/// Error dialog when submitting proposal for review fails.
1111
class SubmitProposalErrorDialog {
1212
static Future<void> show({
1313
required BuildContext context,

catalyst_voices/apps/voices/lib/widgets/modals/voices_desktop_dialog.dart

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class VoicesSinglePaneDialog extends StatelessWidget {
3939
child: Stack(
4040
alignment: closeAlignment,
4141
children: [
42-
child,
42+
Positioned.fill(child: child),
4343
Offstage(
4444
offstage: !showClose,
4545
child: const _CloseButton(),
@@ -105,6 +105,27 @@ class VoicesTwoPaneDialog extends StatelessWidget {
105105
}
106106
}
107107

108+
class _CloseButton extends StatelessWidget {
109+
const _CloseButton();
110+
111+
@override
112+
Widget build(BuildContext context) {
113+
const buttonStyle = ButtonStyle(
114+
fixedSize: WidgetStatePropertyAll(Size.square(48)),
115+
);
116+
117+
return IconButtonTheme(
118+
data: const IconButtonThemeData(style: buttonStyle),
119+
child: XButton(
120+
key: const Key('DialogCloseButton'),
121+
onTap: () {
122+
unawaited(Navigator.of(context).maybePop());
123+
},
124+
),
125+
);
126+
}
127+
}
128+
108129
class _VoicesDesktopDialog extends StatelessWidget {
109130
final BoxConstraints constraints;
110131
final Color? backgroundColor;
@@ -139,24 +160,3 @@ class _VoicesDesktopDialog extends StatelessWidget {
139160
);
140161
}
141162
}
142-
143-
class _CloseButton extends StatelessWidget {
144-
const _CloseButton();
145-
146-
@override
147-
Widget build(BuildContext context) {
148-
const buttonStyle = ButtonStyle(
149-
fixedSize: WidgetStatePropertyAll(Size.square(48)),
150-
);
151-
152-
return IconButtonTheme(
153-
data: const IconButtonThemeData(style: buttonStyle),
154-
child: XButton(
155-
key: const Key('DialogCloseButton'),
156-
onTap: () {
157-
unawaited(Navigator.of(context).maybePop());
158-
},
159-
),
160-
);
161-
}
162-
}

catalyst_voices/packages/internal/catalyst_voices_localization/lib/l10n/intl_en.arb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2284,5 +2284,9 @@
22842284
"insertNewImageFailedToLoad": "Image failed to load",
22852285
"@insertNewImageFailedToLoad": {
22862286
"description": "Text for the image failed to load"
2287+
},
2288+
"submitCommentErrorDialogTitle": "Unable to add Comment",
2289+
"@submitCommentErrorDialogTitle": {
2290+
"description": "Title for the error dialog when submitting a comment fails"
22872291
}
22882292
}

0 commit comments

Comments
 (0)