Skip to content

Commit 43eb0a3

Browse files
committed
lightbox [nfc]: Store src as Uri object, not string
The most interesting consequence of this is that _LightboxHeroTag now compares `src` using Uri's == operator override, instead of string equality on the result of Uri.toString(). Discussion: zulip#247 (review)
1 parent 8cc52fc commit 43eb0a3

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

lib/widgets/content.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ class MessageImage extends StatelessWidget {
224224
return GestureDetector(
225225
onTap: () {
226226
Navigator.of(context).push(getLightboxRoute(
227-
context: context, message: message, src: resolvedSrc.toString()));
227+
context: context, message: message, src: resolvedSrc));
228228
},
229229
child: Align(
230230
alignment: Alignment.centerLeft,
@@ -241,7 +241,7 @@ class MessageImage extends StatelessWidget {
241241
color: const Color.fromRGBO(0, 0, 0, 0.03),
242242
child: LightboxHero(
243243
message: message,
244-
src: resolvedSrc.toString(),
244+
src: resolvedSrc,
245245
child: RealmContentNetworkImage(
246246
resolvedSrc.toString(),
247247
filterQuality: FilterQuality.medium))))));

lib/widgets/lightbox.dart

+7-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class _LightboxHeroTag {
1717
_LightboxHeroTag({required this.messageId, required this.src});
1818

1919
final int messageId;
20-
final String src;
20+
final Uri src;
2121

2222
@override
2323
bool operator ==(Object other) {
@@ -40,7 +40,7 @@ class LightboxHero extends StatelessWidget {
4040
});
4141

4242
final Message message;
43-
final String src;
43+
final Uri src;
4444
final Widget child;
4545

4646
@override
@@ -66,7 +66,7 @@ class LightboxHero extends StatelessWidget {
6666
class _CopyLinkButton extends StatelessWidget {
6767
const _CopyLinkButton({required this.url});
6868

69-
final String url;
69+
final Uri url;
7070

7171
@override
7272
Widget build(BuildContext context) {
@@ -76,7 +76,7 @@ class _CopyLinkButton extends StatelessWidget {
7676
onPressed: () async {
7777
// TODO(i18n)
7878
copyWithPopup(context: context, successContent: const Text('Link copied'),
79-
data: ClipboardData(text: url));
79+
data: ClipboardData(text: url.toString()));
8080
});
8181
}
8282
}
@@ -90,7 +90,7 @@ class _LightboxPage extends StatefulWidget {
9090

9191
final Animation routeEntranceAnimation;
9292
final Message message;
93-
final String src;
93+
final Uri src;
9494

9595
@override
9696
State<_LightboxPage> createState() => _LightboxPageState();
@@ -197,15 +197,15 @@ class _LightboxPageState extends State<_LightboxPage> {
197197
child: LightboxHero(
198198
message: widget.message,
199199
src: widget.src,
200-
child: RealmContentNetworkImage(widget.src, filterQuality: FilterQuality.medium))))))),
200+
child: RealmContentNetworkImage(widget.src.toString(), filterQuality: FilterQuality.medium))))))),
201201
bottomNavigationBar: bottomAppBar));
202202
}
203203
}
204204

205205
Route getLightboxRoute({
206206
required BuildContext context,
207207
required Message message,
208-
required String src
208+
required Uri src,
209209
}) {
210210
return AccountPageRouteBuilder(
211211
context: context,

0 commit comments

Comments
 (0)