Skip to content

Commit 8e53150

Browse files
committed
fix: add missing IconButton tooltip
1 parent 2a6c64d commit 8e53150

File tree

17 files changed

+151
-38
lines changed

17 files changed

+151
-38
lines changed

lib/features/chat/view/chat_page.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,12 @@ final class _ChatPageState extends State<ChatPage> {
160160
actions: [
161161
IconButton(
162162
icon: const Icon(Icons.contact_page_outlined),
163+
tooltip: tr.viewUserSpaceTip,
163164
onPressed: () async => context.dispatchAsUrl(state.spaceUrl),
164165
),
165166
IconButton(
166167
icon: const Icon(Icons.history_outlined),
168+
tooltip: tr.viewChatHistoryTip,
167169
onPressed: () async => context.dispatchAsUrl(state.chatHistoryUrl),
168170
),
169171
],

lib/features/editor/widgets/url_dialog.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class _UrlDialogState extends State<UrlDialog> {
127127
Row(
128128
children: [
129129
TextButton(
130-
child: Text(tr.autoPaste.tip),
130+
child: Text(tr.autoPaste.action),
131131
onPressed: () async {
132132
final bilibiliText = await getPlainTextFromClipboard();
133133
if (bilibiliText == null) {
@@ -150,6 +150,7 @@ class _UrlDialogState extends State<UrlDialog> {
150150
const Spacer(),
151151
IconButton(
152152
icon: const Icon(Icons.info_outline),
153+
tooltip: tr.autoPaste.tip,
153154
onPressed: () => setState(() => _bilibiliTipExpanded = !_bilibiliTipExpanded),
154155
),
155156
],

lib/features/editor/widgets/username_picker_dialog.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class _UsernamePickerDialogState extends State<_UsernamePickerDialog> with Logge
9292
suffixIcon: userNameNotEmpty
9393
? IconButton(
9494
icon: const Icon(Icons.open_in_new),
95+
tooltip: tr.viewUserSpaceTip,
9596
onPressed: () async => context.pushNamed(
9697
ScreenPaths.profile,
9798
queryParameters: {'username': controller.text.trim()},
@@ -144,6 +145,7 @@ class _UsernamePickerDialogState extends State<_UsernamePickerDialog> with Logge
144145
Text(tr.randomFriend, style: Theme.of(context).textTheme.labelLarge),
145146
IconButton(
146147
icon: const Icon(Icons.refresh),
148+
tooltip: tr.refreshRecommendTip,
147149
onPressed: state.recommendStatus == UserMentionStatus.loading
148150
? null
149151
: () async => context.read<UserMentionCubit>().recommendFriend(),

lib/features/homepage/view/homepage_page.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ class _HomepagePageState extends State<HomepagePage> {
188188
height: 32,
189189
child: HeroUserAvatar(username: username, avatarUrl: avatarUrl, heroTag: username),
190190
),
191+
tooltip: context.t.homepage.showMoreUserOperationsTip,
191192
onPressed: () async => showHeroDialog(
192193
context,
193194
(context, _, __) => UserOperationDialog(

lib/features/notification/view/broadcast_message_detail_page.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ final class BroadcastMessageDetailPage extends StatelessWidget {
6363
actions: [
6464
IconButton(
6565
icon: const Icon(Icons.open_in_new_outlined),
66+
tooltip: context.t.general.openInBrowser,
6667
onPressed: () async => context.dispatchAsUrl('$broadcastMessageDetailUrl$pmid', external: true),
6768
),
6869
],

lib/features/notification/view/notification_detail_page.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ class _NoticeDetailPage extends State<NoticeDetailPage> with LoggerMixin {
126126
actions: [
127127
IconButton(
128128
icon: const Icon(Icons.open_in_new_outlined),
129+
tooltip: context.t.general.openInBrowser,
129130
onPressed: () async {
130131
if (_tid == null || _page == null || _pid == null) {
131132
return;

lib/features/packet/view/packet_detail_page.dart

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,23 @@ class PacketDetailPage extends StatefulWidget {
3030

3131
enum _SortBy { time, coinsLeast, coinsMost }
3232

33+
extension _LoopExt on _SortBy {
34+
_SortBy loopNext() => this == _SortBy.values.last ? _SortBy.values.first : _SortBy.values[index + 1];
35+
36+
String loopNextTip(BuildContext context) => loopNext().tip(context);
37+
38+
String tip(BuildContext context) => switch (this) {
39+
_SortBy.time => context.t.packetDetailPage.sort.sortByTime,
40+
_SortBy.coinsLeast => context.t.packetDetailPage.sort.sortByLeastCoins,
41+
_SortBy.coinsMost => context.t.packetDetailPage.sort.sortByMostCoins,
42+
};
43+
}
44+
3345
class _PacketDetailPageState extends State<PacketDetailPage> {
3446
_SortBy _sortByCoins = _SortBy.time;
3547

48+
String _nextSortTip = '';
49+
3650
Widget _buildInfoRow(BuildContext context, List<PacketDetailModel> data) {
3751
final tr = context.t.packetDetailPage;
3852
final secondaryColor = Theme.of(context).colorScheme.secondary;
@@ -126,6 +140,12 @@ class _PacketDetailPageState extends State<PacketDetailPage> {
126140
);
127141
}
128142

143+
@override
144+
void didChangeDependencies() {
145+
super.didChangeDependencies();
146+
_nextSortTip = _sortByCoins.loopNextTip(context);
147+
}
148+
129149
@override
130150
Widget build(BuildContext context) {
131151
return MultiBlocProvider(
@@ -154,12 +174,12 @@ class _PacketDetailPageState extends State<PacketDetailPage> {
154174
actions: [
155175
IconButton(
156176
icon: const Icon(Icons.sort_outlined),
177+
tooltip: _nextSortTip,
157178
onPressed: state is PacketDetailSuccess
158-
? () => setState(
159-
() => _sortByCoins == _SortBy.values.last
160-
? _sortByCoins = _SortBy.values.first
161-
: _sortByCoins = _SortBy.values[_sortByCoins.index + 1],
162-
)
179+
? () => setState(() {
180+
_sortByCoins = _sortByCoins.loopNext();
181+
_nextSortTip = _sortByCoins.loopNextTip(context);
182+
})
163183
: null,
164184
),
165185
],

lib/features/points/widgets/points_query_form.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ final class _PointsQueryFormState extends State<PointsQueryForm> {
242242
icon: showQueryFilter
243243
? const Icon(Icons.expand_less_outlined)
244244
: const Icon(Icons.expand_more_outlined),
245+
tooltip: showQueryFilter
246+
? context.t.pointsPage.changelogTab.hideFilterTip
247+
: context.t.pointsPage.changelogTab.showFilterTip,
245248
onPressed: () {
246249
setState(() {
247250
showQueryFilter = !showQueryFilter;

lib/features/profile/view/profile_page.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@ class _ProfilePageState extends State<ProfilePage> {
584584
// Email verify state.
585585
IconButton(
586586
icon: const Icon(Icons.email_outlined),
587+
tooltip: userProfile.emailVerified ?? false ? tr.emailVerified : tr.emailNotVerified,
587588
onPressed: () async {
588589
final content = userProfile.emailVerified ?? false ? tr.emailVerified : tr.emailNotVerified;
589590
showSnackBar(context: context, message: content);
@@ -592,6 +593,7 @@ class _ProfilePageState extends State<ProfilePage> {
592593
),
593594
IconButton(
594595
icon: const Icon(Icons.photo_camera_outlined),
596+
tooltip: userProfile.videoVerified ?? false ? tr.videoVerified : tr.videoNotVerified,
595597
onPressed: () async {
596598
final content = userProfile.videoVerified ?? false ? tr.videoVerified : tr.videoNotVerified;
597599
showSnackBar(context: context, message: content);

lib/features/rate/view/rate_log_page.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ class _RateLogPageState extends State<RateLogPage> with SingleTickerProviderStat
220220
if (widget.total != null)
221221
IconButton(
222222
icon: const Icon(Icons.info_outline),
223+
tooltip: tr.showTotalRatePointsTip,
223224
onPressed: () async =>
224225
showMessageSingleButtonDialog(context: context, title: tr.total, message: widget.total!),
225226
),

0 commit comments

Comments
 (0)