-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавлена возможность поделиться постом #410
base: develop
Are you sure you want to change the base?
Conversation
Плиз, не меняй больше заголовки вот так, название должно словами быть всё-таки) |
Хорошо) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Подозреваю, это из другого реквеста? (из #407 ?)
Вообще, так делать не стоит
Перед работой над новой задачей надо переключаться на develop и уже от неё делать новую ветку
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если хочешь, можешь попробовать посмотреть на git revert, чтобы откатить изменения в этом файле) Хэши коммитов у тебя в гитхабе написаны
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ладно, в той ветке вероятно еще будут изменения, так что настоятельно рекомендую этот один коммит откатить в этой ветке
List<AttachedFileViewModel> attachedFiles, | ||
) async { | ||
final String text = | ||
'$authorName\n${DateFormat('d MMMM yyyy, HH:mm', 'ru_RU').format(postTime)}\n\n$postText'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Андрею такое точно бы не понравилось :D
Вынеси вызов DateFormat(<...>).format(<...>)
в отдельную переменную
И еще для такого сорта строк можно использовать тройные кавычки (''' - три раза по одинарной) и тогда можно будет ставить человеческие энтеры вместо \n
Не уверен, что здесь это прям лучше будет, так что пункт про тройные кавычки - на твоё усмотрение
final String text = | ||
'$authorName\n${DateFormat('d MMMM yyyy, HH:mm', 'ru_RU').format(postTime)}\n\n$postText'; | ||
|
||
final List<XFile> xFiles = []; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
final List<XFile> xFiles = []; | ||
|
||
for (final fileViewModel in attachedFiles) { | ||
final File? file = await fileViewModel.getFile(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тут ведь файлы должны скачиваться, очень долго наверно делиться постами с большим числом файлов. И наверно будет классно, когда несколько раз поделиться нажмёшь, пока они качаются
Надо потестить будет
} | ||
} | ||
|
||
// ignore: use_build_context_synchronously |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мы обычно это обходим через if (context.mounted)
@@ -260,6 +297,42 @@ class _FeedPostState extends State<FeedPost> { | |||
} | |||
} | |||
|
|||
void sharePressed( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
я бы сам метод сделал Future<void> sharePressed
или даже Future<ShareResult> sharePressed
Перед Share.share
и Share.shareXFiles
добавил бы await (если сделаешь тип Future<ShareResult>
то вообще return await Share.<...>
)
И там, где его вызываешь сделал бы await sharePressed. Если будешь делать с ShareResult, то снаружи как-то обработай этот результат.
И наверно не мешало бы отловить исключения, хотя бы самого Share. Но старайся блоком try...catch охватывать как можно меньше кода. И при исключении используй LoggerService для сообщений об ошибке
Share.shareXFiles( | ||
xFiles, | ||
text: text, | ||
sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Namxobick у нас приложение под айпады работает?
https://pub.dev/documentation/share_plus/latest/share_plus/Share/shareXFiles.html
Надо копию ветки себе сделать, очень удобно смотреть реальный текст постов со всеми bb тегами можно) |
Хотя не, убирать надо только сами теги, их содержимое оставлять, кроме картинок и [DISK], там всё убирать надо, иначе куча рандомных ссылок в сообщении останется |
Ещё, если инфа о файле не загрузилась ещё (т.е. если там есть вот эта градиентная штука) - он не прикрепляется, Таким образом может прикрепиться 2 файла из 3, например. Советую для такой ситуации ждать, пока информация о файле скачается (вроде у вьюмодели методы есть для этого, но это не точно. Надеюсь, активное ожидание делать не придётся), но тут уже надо показывать какой-то индикатор ожидания, чтобы было понятно, что кнопка сработала, надо просто ждать |
resolves #404