Skip to content

Commit 30d9465

Browse files
committed
Added external link icon to support text inner links
1 parent c3da26e commit 30d9465

File tree

4 files changed

+63
-32
lines changed

4 files changed

+63
-32
lines changed

assets/font/icons.ttf

276 Bytes
Binary file not shown.

lib/app/constants/icons.dart

+9-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class _ArchiveIconData extends IconData {
1212
}
1313

1414
/// SVGs are from https://tabler-icons.io ,
15-
/// Font file generated with https://icomoon.io/
15+
/// Font file generated with https://icomoon.io
1616
1717
class ArchiveIcons {
1818
ArchiveIcons._();
@@ -21,11 +21,19 @@ class ArchiveIcons {
2121
static const IconData brandGithub = _ArchiveIconData(0xe901);
2222
static const IconData brandTelegram = _ArchiveIconData(0xe902);
2323
static const IconData chevronDown = _ArchiveIconData(0xe903);
24+
2425
static const IconData chevronRight = _ArchiveIconData(
2526
0xe904,
2627
matchTextDirection: true,
2728
);
29+
2830
static const IconData chevronUp = _ArchiveIconData(0xe905);
31+
32+
static const IconData externalLink = _ArchiveIconData(
33+
0xe90c,
34+
matchTextDirection: true,
35+
);
36+
2937
static const IconData helpSquare = _ArchiveIconData(0xe906);
3038
static const IconData menu = _ArchiveIconData(0xe90b);
3139
static const IconData moonStarsFilled = _ArchiveIconData(0xe907);

lib/app/themes.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class ArchiveThemes {
88
ArchiveThemes._();
99

1010
static double appbarHeight(BuildContext context) =>
11-
context.isMobileOrTablet ? 3 * kSizeDefault : 4 * kSizeDefault;
11+
context.isMobileOrTablet ? 3.2 * kSizeDefault : 4 * kSizeDefault;
1212

1313
static final dark = _basicThemeData(
1414
brightness: Brightness.dark,

lib/app/utils/show_support_dialog.dart

+53-30
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:cse_archive/app/constants/icons.dart';
12
import 'package:cse_archive/app/constants/links.dart';
23
import 'package:cse_archive/app/constants/sizes.dart';
34
import 'package:cse_archive/app/constants/strings.dart';
@@ -46,24 +47,35 @@ void showSupportDialog({required BuildContext context}) {
4647
children: [
4748
const TextSpan(text: ArchiveStrings.supportDonateDescriptionP1),
4849
WidgetSpan(
49-
child: Link(
50-
uri: Uri.parse(ArchiveLinks.support),
51-
target: LinkTarget.blank,
52-
builder: (_, followLink) => GestureDetector(
53-
onTap: followLink,
54-
child: MouseRegion(
55-
cursor: SystemMouseCursors.click,
56-
child: Text(
57-
ArchiveStrings.supportDonateDescriptionLink,
58-
style: TextStyle(
59-
fontWeight: FontWeight.w500,
60-
decoration: TextDecoration.underline,
61-
decorationColor:
62-
context.secondaryColor.withOpacity(0.5),
50+
child: Row(
51+
mainAxisSize: MainAxisSize.min,
52+
crossAxisAlignment: CrossAxisAlignment.center,
53+
children: [
54+
Link(
55+
uri: Uri.parse(ArchiveLinks.support),
56+
target: LinkTarget.blank,
57+
builder: (_, followLink) => GestureDetector(
58+
onTap: followLink,
59+
child: MouseRegion(
60+
cursor: SystemMouseCursors.click,
61+
child: Text(
62+
ArchiveStrings.supportDonateDescriptionLink,
63+
style: TextStyle(
64+
fontWeight: FontWeight.w500,
65+
decoration: TextDecoration.underline,
66+
decorationColor:
67+
context.secondaryColor.withOpacity(0.5),
68+
),
69+
),
6370
),
6471
),
6572
),
66-
),
73+
Icon(
74+
ArchiveIcons.externalLink,
75+
color: context.secondaryColor,
76+
size: textStyle.fontSize,
77+
),
78+
],
6779
),
6880
),
6981
const TextSpan(text: ArchiveStrings.supportDonateDescriptionP2),
@@ -88,24 +100,35 @@ void showSupportDialog({required BuildContext context}) {
88100
children: [
89101
const TextSpan(text: ArchiveStrings.supportOtherCase1P1),
90102
WidgetSpan(
91-
child: Link(
92-
uri: Uri.parse(ArchiveLinks.projectRepos),
93-
target: LinkTarget.blank,
94-
builder: (_, followLink) => GestureDetector(
95-
onTap: followLink,
96-
child: MouseRegion(
97-
cursor: SystemMouseCursors.click,
98-
child: Text(
99-
ArchiveStrings.supportOtherCase1Repos,
100-
style: TextStyle(
101-
fontWeight: FontWeight.w500,
102-
decoration: TextDecoration.underline,
103-
decorationColor:
104-
context.secondaryColor.withOpacity(0.5),
103+
child: Row(
104+
mainAxisSize: MainAxisSize.min,
105+
crossAxisAlignment: CrossAxisAlignment.center,
106+
children: [
107+
Link(
108+
uri: Uri.parse(ArchiveLinks.projectRepos),
109+
target: LinkTarget.blank,
110+
builder: (_, followLink) => GestureDetector(
111+
onTap: followLink,
112+
child: MouseRegion(
113+
cursor: SystemMouseCursors.click,
114+
child: Text(
115+
ArchiveStrings.supportOtherCase1Repos,
116+
style: TextStyle(
117+
fontWeight: FontWeight.w500,
118+
decoration: TextDecoration.underline,
119+
decorationColor:
120+
context.secondaryColor.withOpacity(0.5),
121+
),
122+
),
105123
),
106124
),
107125
),
108-
),
126+
Icon(
127+
ArchiveIcons.externalLink,
128+
color: context.secondaryColor,
129+
size: textStyle.fontSize,
130+
),
131+
],
109132
),
110133
),
111134
const TextSpan(text: ArchiveStrings.supportOtherCase1P2),

0 commit comments

Comments
 (0)