kopia lustrzana https://gitlab.com/mysocialportal/relatica
Fix locking out editor buttons while submitting
rodzic
266a98d2a9
commit
bdbad45770
|
@ -26,6 +26,8 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
final spoilerController = TextEditingController();
|
||||
TimelineEntry? parentEntry;
|
||||
|
||||
var isSubmitting = false;
|
||||
|
||||
bool get isComment => widget.parentId.isNotEmpty;
|
||||
|
||||
String get statusType => widget.parentId.isEmpty ? 'Post' : 'Comment';
|
||||
|
@ -51,11 +53,17 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
buildSnackbar(context, "Can't submit an empty post/comment");
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
isSubmitting = false;
|
||||
});
|
||||
final result = await manager.createNewStatus(
|
||||
contentController.text,
|
||||
spoilerText: spoilerController.text,
|
||||
inReplyToId: widget.parentId,
|
||||
);
|
||||
setState(() {
|
||||
isSubmitting = false;
|
||||
});
|
||||
|
||||
if (result.isFailure) {
|
||||
buildSnackbar(context, 'Error posting: ${result.error}');
|
||||
|
@ -85,6 +93,8 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
if (isComment && parentEntry != null)
|
||||
buildCommentPreview(context, parentEntry!),
|
||||
TextFormField(
|
||||
readOnly: isSubmitting,
|
||||
enabled: !isSubmitting,
|
||||
controller: spoilerController,
|
||||
decoration: InputDecoration(
|
||||
labelText: '$statusType Spoiler Text (optional)',
|
||||
|
@ -98,6 +108,8 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
),
|
||||
const VerticalPadding(),
|
||||
TextFormField(
|
||||
readOnly: isSubmitting,
|
||||
enabled: !isSubmitting,
|
||||
maxLines: 10,
|
||||
controller: contentController,
|
||||
decoration: InputDecoration(
|
||||
|
@ -116,14 +128,18 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
ElevatedButton(
|
||||
onPressed: () async => createStatus(context, manager),
|
||||
onPressed: isSubmitting
|
||||
? null
|
||||
: () async => createStatus(context, manager),
|
||||
child: const Text('Submit'),
|
||||
),
|
||||
const HorizontalPadding(),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
context.pop();
|
||||
},
|
||||
onPressed: isSubmitting
|
||||
? null
|
||||
: () {
|
||||
context.pop();
|
||||
},
|
||||
child: const Text('Cancel'),
|
||||
),
|
||||
],
|
||||
|
|
Ładowanie…
Reference in New Issue