This commit is contained in:
OfficialDakari 2025-07-19 23:27:16 +05:00
parent d5fb1cfa13
commit 58a9b17988
1 changed files with 27 additions and 22 deletions

View File

@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:fluffychat/generated/l10n/l10n.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/generated/l10n/l10n.dart';
import 'package:fluffychat/utils/url_launcher.dart';
import 'package:fluffychat/widgets/mxc_image.dart';
import '../../widgets/avatar.dart';
@ -73,26 +73,29 @@ class StickerPickerDialogState extends State<StickerPickerDialog> {
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (BuildContext context, int imageIndex) {
final image = pack.images[imageKeys[imageIndex]]!;
return InkWell(
radius: AppConfig.borderRadius,
key: ValueKey(image.url.toString()),
onTap: () {
// copy the image
final imageCopy =
ImagePackImageContent.fromJson(image.toJson().copy());
// set the body, if it doesn't exist, to the key
imageCopy.body ??= imageKeys[imageIndex];
widget.onSelected(imageCopy);
},
child: AbsorbPointer(
absorbing: true,
child: MxcImage(
uri: image.url,
fit: BoxFit.contain,
width: 128,
height: 128,
animated: true,
isThumbnail: false,
return Tooltip(
message: image.body ?? imageKeys[imageIndex],
child: InkWell(
radius: AppConfig.borderRadius,
key: ValueKey(image.url.toString()),
onTap: () {
// copy the image
final imageCopy =
ImagePackImageContent.fromJson(image.toJson().copy());
// set the body, if it doesn't exist, to the key
imageCopy.body ??= imageKeys[imageIndex];
widget.onSelected(imageCopy);
},
child: AbsorbPointer(
absorbing: true,
child: MxcImage(
uri: image.url,
fit: BoxFit.contain,
width: 128,
height: 128,
animated: true,
isThumbnail: false,
),
),
),
);
@ -111,6 +114,7 @@ class StickerPickerDialogState extends State<StickerPickerDialog> {
SliverAppBar(
floating: true,
pinned: true,
scrolledUnderElevation: 0,
automaticallyImplyLeading: false,
backgroundColor: Colors.transparent,
title: SizedBox(
@ -118,6 +122,7 @@ class StickerPickerDialogState extends State<StickerPickerDialog> {
child: TextField(
autofocus: false,
decoration: InputDecoration(
filled: true,
hintText: L10n.of(context).search,
prefixIcon: const Icon(Icons.search_outlined),
contentPadding: EdgeInsets.zero,
@ -158,4 +163,4 @@ class StickerPickerDialogState extends State<StickerPickerDialog> {
),
);
}
}
}