Compare commits

..

2 Commits

Author SHA1 Message Date
21a1d4a2ad 🐛 Fix unable select answer 2025-03-23 00:01:48 +08:00
603875b1af 🐛 Fix styling issue 2025-03-22 23:07:13 +08:00
3 changed files with 16 additions and 11 deletions

View File

@ -113,21 +113,20 @@ class _AppNavigationDrawerState extends State<AppNavigationDrawer> {
? Theme.of(context) ? Theme.of(context)
.colorScheme .colorScheme
.primaryContainer .primaryContainer
: Theme.of(context) : Colors.transparent,
.colorScheme
.surfaceContainerLow,
), ),
), ),
onPressed: () { onPressed: () {
GoRouter.of(context).goNamed(ele.screen); GoRouter.of(context).goNamed(ele.screen);
Scaffold.of(context).closeDrawer(); Scaffold.of(context).closeDrawer();
nav.setIndex(idx);
}, },
), ),
), ),
); );
}, },
).toList(), ).toList(),
).padding(horizontal: 16), ).padding(horizontal: 16, bottom: 8),
Align( Align(
alignment: Alignment.bottomCenter, alignment: Alignment.bottomCenter,
child: ListTile( child: ListTile(
@ -173,7 +172,7 @@ class _AppNavigationDrawerState extends State<AppNavigationDrawer> {
}, },
), ),
), ),
Gap(MediaQuery.of(context).padding.bottom), Gap(MediaQuery.of(context).padding.bottom + 8),
], ],
), ),
); );
@ -282,7 +281,7 @@ class _DrawerContentList extends StatelessWidget {
), ),
title: Text(nav.focusedRealm!.name), title: Text(nav.focusedRealm!.name),
onTap: () { onTap: () {
GoRouter.of(context).pushNamed( GoRouter.of(context).goNamed(
'realmDetail', 'realmDetail',
pathParameters: { pathParameters: {
'alias': nav.focusedRealm!.alias, 'alias': nav.focusedRealm!.alias,
@ -300,7 +299,7 @@ class _DrawerContentList extends StatelessWidget {
leading: const Icon(Symbols.globe), leading: const Icon(Symbols.globe),
title: Text('community').tr(), title: Text('community').tr(),
onTap: () { onTap: () {
GoRouter.of(context).pushNamed( GoRouter.of(context).goNamed(
'realmCommunity', 'realmCommunity',
pathParameters: { pathParameters: {
'alias': nav.focusedRealm!.alias, 'alias': nav.focusedRealm!.alias,
@ -325,7 +324,7 @@ class _DrawerContentList extends StatelessWidget {
leading: const Icon(Symbols.tag), leading: const Icon(Symbols.tag),
title: Text(ele.name), title: Text(ele.name),
onTap: () { onTap: () {
GoRouter.of(context).pushNamed( GoRouter.of(context).goNamed(
'chatRoom', 'chatRoom',
pathParameters: { pathParameters: {
'scope': ele.realm?.alias ?? 'global', 'scope': ele.realm?.alias ?? 'global',

View File

@ -103,7 +103,7 @@ class PostCommentSliverListState extends State<PostCommentSliverList> {
final sn = context.read<SnNetworkProvider>(); final sn = context.read<SnNetworkProvider>();
await sn.client await sn.client
.put('/cgi/co/questions/${widget.parentPost.id}/answer', data: { .put('/cgi/co/questions/${widget.parentPost.id}/answer', data: {
'publisher': answer.publisherId, 'publisher': widget.parentPost.publisherId,
'answer_id': answer.id, 'answer_id': answer.id,
}); });
if (!mounted) return; if (!mounted) return;

View File

@ -279,6 +279,8 @@ class _PostItemState extends State<PostItem> {
final ua = context.read<UserProvider>(); final ua = context.read<UserProvider>();
final isAuthor = final isAuthor =
ua.isAuthorized && widget.data.publisher.accountId == ua.user?.id; ua.isAuthorized && widget.data.publisher.accountId == ua.user?.id;
final isParentAuthor = ua.isAuthorized &&
widget.data.replyTo?.publisher.accountId == ua.user?.id;
final displayableAttachments = widget.data.preload?.attachments final displayableAttachments = widget.data.preload?.attachments
?.where((ele) => ?.where((ele) =>
@ -333,6 +335,7 @@ class _PostItemState extends State<PostItem> {
_PostActionPopup( _PostActionPopup(
data: widget.data, data: widget.data,
isAuthor: isAuthor, isAuthor: isAuthor,
isParentAuthor: isParentAuthor,
onShare: () => _doShare(context), onShare: () => _doShare(context),
onShareImage: () => _doShareViaPicture(context), onShareImage: () => _doShareViaPicture(context),
onSelectAnswer: widget.onSelectAnswer, onSelectAnswer: widget.onSelectAnswer,
@ -577,6 +580,7 @@ class _PostItemState extends State<PostItem> {
_PostActionPopup( _PostActionPopup(
data: widget.data, data: widget.data,
isAuthor: isAuthor, isAuthor: isAuthor,
isParentAuthor: isParentAuthor,
onShare: () => _doShare(context), onShare: () => _doShare(context),
onShareImage: () => _doShareViaPicture(context), onShareImage: () => _doShareViaPicture(context),
onSelectAnswer: widget.onSelectAnswer, onSelectAnswer: widget.onSelectAnswer,
@ -1317,6 +1321,7 @@ class _PostAvatar extends StatelessWidget {
class _PostActionPopup extends StatelessWidget { class _PostActionPopup extends StatelessWidget {
final SnPost data; final SnPost data;
final bool isAuthor; final bool isAuthor;
final bool isParentAuthor;
final Function onDeleted; final Function onDeleted;
final Function() onShare, onShareImage; final Function() onShare, onShareImage;
final Function()? onSelectAnswer; final Function()? onSelectAnswer;
@ -1324,6 +1329,7 @@ class _PostActionPopup extends StatelessWidget {
const _PostActionPopup({ const _PostActionPopup({
required this.data, required this.data,
required this.isAuthor, required this.isAuthor,
required this.isParentAuthor,
required this.onDeleted, required this.onDeleted,
required this.onShare, required this.onShare,
required this.onShareImage, required this.onShareImage,
@ -1397,7 +1403,7 @@ class _PostActionPopup extends StatelessWidget {
}, },
), ),
if (onTranslate != null) PopupMenuDivider(), if (onTranslate != null) PopupMenuDivider(),
if (isAuthor && onSelectAnswer != null) if (isParentAuthor && onSelectAnswer != null)
PopupMenuItem( PopupMenuItem(
child: Row( child: Row(
children: [ children: [
@ -1410,7 +1416,7 @@ class _PostActionPopup extends StatelessWidget {
onSelectAnswer?.call(); onSelectAnswer?.call();
}, },
), ),
if (isAuthor && onSelectAnswer != null) PopupMenuDivider(), if (isParentAuthor && onSelectAnswer != null) PopupMenuDivider(),
if (isAuthor) if (isAuthor)
PopupMenuItem( PopupMenuItem(
child: Row( child: Row(