Skip to content
This repository was archived by the owner on Jul 19, 2025. It is now read-only.

Commit f20b2c9

Browse files
committed
feat: make link opening on title/image tap optional
1 parent 530d112 commit f20b2c9

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

lib/src/widgets/link_preview.dart

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ class LinkPreview extends StatefulWidget {
2626
this.metadataTitleStyle,
2727
this.onLinkPressed,
2828
required this.onPreviewDataFetched,
29+
this.openOnPreviewImageClick = false,
30+
this.openOnPreviewTitleClick = false,
2931
this.padding,
3032
required this.previewData,
3133
required this.text,
@@ -72,6 +74,12 @@ class LinkPreview extends StatefulWidget {
7274
/// preview data again.
7375
final void Function(PreviewData) onPreviewDataFetched;
7476

77+
/// Open the link when the link preview image is clicked. Defaults to false.
78+
final bool openOnPreviewImageClick;
79+
80+
/// Open the link when the link preview title is clicked. Defaults to false.
81+
final bool openOnPreviewTitleClick;
82+
7583
/// Padding around initial text widget
7684
final EdgeInsets? padding;
7785

@@ -205,7 +213,8 @@ class _LinkPreviewState extends State<LinkPreview>
205213
crossAxisAlignment: CrossAxisAlignment.start,
206214
children: <Widget>[
207215
GestureDetector(
208-
onTap: () => _onOpen(data.link!),
216+
onTap:
217+
widget.openOnPreviewTitleClick ? () => _onOpen(data.link!) : null,
209218
child: Container(
210219
padding: EdgeInsets.only(
211220
bottom: _padding.bottom,
@@ -296,7 +305,7 @@ class _LinkPreviewState extends State<LinkPreview>
296305

297306
Widget _imageWidget(String imageUrl, String linkUrl, double width) {
298307
return GestureDetector(
299-
onTap: () => _onOpen(linkUrl),
308+
onTap: widget.openOnPreviewImageClick ? () => _onOpen(linkUrl) : null,
300309
child: Container(
301310
constraints: BoxConstraints(
302311
maxHeight: width,
@@ -341,7 +350,9 @@ class _LinkPreviewState extends State<LinkPreview>
341350
children: <Widget>[
342351
Expanded(
343352
child: GestureDetector(
344-
onTap: () => _onOpen(data.link!),
353+
onTap: widget.openOnPreviewTitleClick
354+
? () => _onOpen(data.link!)
355+
: null,
345356
child: Container(
346357
margin: const EdgeInsets.only(right: 4),
347358
child: Column(
@@ -370,7 +381,7 @@ class _LinkPreviewState extends State<LinkPreview>
370381
Radius.circular(12),
371382
),
372383
child: GestureDetector(
373-
onTap: () => _onOpen(linkUrl),
384+
onTap: widget.openOnPreviewImageClick ? () => _onOpen(linkUrl) : null,
374385
child: SizedBox(
375386
height: 48,
376387
width: 48,

0 commit comments

Comments
 (0)