|
| 1 | +import 'dart:async'; |
| 2 | +import 'dart:io'; |
| 3 | + |
| 4 | +import 'package:desktop_webview_window/desktop_webview_window.dart'; |
1 | 5 | import 'package:flutter/material.dart'; |
2 | 6 | import 'package:flutter_hooks/flutter_hooks.dart'; |
3 | 7 | import 'package:forui/forui.dart'; |
4 | 8 | import 'package:hooks_riverpod/hooks_riverpod.dart'; |
| 9 | +import 'package:miru_app_new/pages/webview/desktop_webview.dart'; |
5 | 10 | import 'package:miru_app_new/provider/extension_page_notifier_provider.dart'; |
6 | 11 | import 'package:miru_app_new/utils/core/log.dart'; |
7 | 12 | import 'package:miru_app_new/utils/store/storage_index.dart'; |
@@ -86,24 +91,35 @@ class DesktopSearchPage extends HookConsumerWidget { |
86 | 91 | final ext = metaData[index]; |
87 | 92 | return DesktopSearchListTile( |
88 | 93 | ext: ext, |
89 | | - trailing: FButton.icon( |
90 | | - selected: true, |
91 | | - onPress: () { |
92 | | - final newSet = {...pinnedExtensions.value}; |
93 | | - if (newSet.contains(ext.packageName)) { |
94 | | - newSet.remove(ext.packageName); |
95 | | - } else { |
96 | | - newSet.add(ext.packageName); |
97 | | - } |
98 | | - pinnedExtensions.value = newSet; |
99 | | - MiruSettings.setSettingSync( |
100 | | - SettingKey.pinnedExtension, |
101 | | - newSet.toString(), |
102 | | - ); |
103 | | - }, |
104 | | - child: pinnedExtensions.value.contains(ext.packageName) |
105 | | - ? Icon(FIcons.pinOff) |
106 | | - : Icon(FIcons.pin), |
| 94 | + trailing: Row( |
| 95 | + children: [ |
| 96 | + FButton.icon( |
| 97 | + style: FButtonStyle.ghost(), |
| 98 | + onPress: () => openWebview(ext), |
| 99 | + child: Icon(FIcons.globe), |
| 100 | + ), |
| 101 | + SizedBox(width: 8), |
| 102 | + FButton.icon( |
| 103 | + selected: true, |
| 104 | + onPress: () { |
| 105 | + final newSet = {...pinnedExtensions.value}; |
| 106 | + if (newSet.contains(ext.packageName)) { |
| 107 | + newSet.remove(ext.packageName); |
| 108 | + } else { |
| 109 | + newSet.add(ext.packageName); |
| 110 | + } |
| 111 | + pinnedExtensions.value = newSet; |
| 112 | + MiruSettings.setSettingSync( |
| 113 | + SettingKey.pinnedExtension, |
| 114 | + newSet.toString(), |
| 115 | + ); |
| 116 | + }, |
| 117 | + child: |
| 118 | + pinnedExtensions.value.contains(ext.packageName) |
| 119 | + ? Icon(FIcons.pinOff) |
| 120 | + : Icon(FIcons.pin), |
| 121 | + ), |
| 122 | + ], |
107 | 123 | ), |
108 | 124 | ); |
109 | 125 | }, |
|
0 commit comments