💄 Optimized drafts

This commit is contained in:
2025-06-25 00:01:52 +08:00
parent 568d70fffb
commit b89cffeb18
11 changed files with 148 additions and 169 deletions

View File

@ -102,7 +102,7 @@ class ComposeLogic {
titleController: TextEditingController(text: draft.title),
descriptionController: TextEditingController(text: draft.description),
contentController: TextEditingController(text: draft.content),
visibility: ValueNotifier<int>(_parseVisibility(draft.visibility)),
visibility: ValueNotifier<int>(draft.visibility),
submitting: ValueNotifier<bool>(false),
attachmentProgress: ValueNotifier<Map<int, double>>({}),
currentPublisher: ValueNotifier<SnPublisher?>(null),
@ -110,39 +110,7 @@ class ComposeLogic {
);
}
static int _parseVisibility(String visibility) {
switch (visibility.toLowerCase()) {
case 'public':
return 0;
case 'unlisted':
return 1;
case 'friends':
return 2;
case 'selected':
return 3;
case 'private':
return 4;
default:
return 0;
}
}
static String _visibilityToString(int visibility) {
switch (visibility) {
case 0:
return 'public';
case 1:
return 'unlisted';
case 2:
return 'friends';
case 3:
return 'selected';
case 4:
return 'private';
default:
return 'public';
}
}
static Future<void> saveDraft(WidgetRef ref, ComposeState state) async {
try {
@ -156,12 +124,8 @@ class ComposeLogic {
title: state.titleController.text,
description: state.descriptionController.text,
content: state.contentController.text,
attachmentIds:
state.attachments.value
.where((e) => e.isOnCloud)
.map((e) => e.data.id.toString())
.toList(),
visibility: _visibilityToString(state.visibility.value),
attachments: state.attachments.value,
visibility: state.visibility.value,
lastModified: DateTime.now(),
);

View File

@ -203,7 +203,7 @@ class _DraftItem extends StatelessWidget {
? postDraft.description
: 'noContent'.tr());
lastModified = postDraft.lastModified;
visibility = postDraft.visibility;
visibility = _parseArticleVisibility(postDraft.visibility);
}
final preview =
@ -316,17 +316,17 @@ class _DraftItem extends StatelessWidget {
}
}
String _parseArticleVisibility(String visibility) {
switch (visibility.toLowerCase()) {
case 'public':
String _parseArticleVisibility(int visibility) {
switch (visibility) {
case 0:
return 'public'.tr();
case 'unlisted':
case 1:
return 'unlisted'.tr();
case 'friends':
case 2:
return 'friends'.tr();
case 'selected':
case 3:
return 'selected'.tr();
case 'private':
case 4:
return 'private'.tr();
default:
return 'unknown'.tr();