pake-cli 3.6.1 → 3.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +327 -222
- package/dist/dev.js +1100 -215
- package/dist/dev.js.map +1 -1
- package/package.json +3 -4
- package/src-tauri/.cargo/config.toml +10 -0
- package/src-tauri/.pake/pake.json +42 -0
- package/src-tauri/.pake/tauri.conf.json +24 -0
- package/src-tauri/.pake/tauri.linux.conf.json +13 -0
- package/src-tauri/.pake/tauri.macos.conf.json +11 -0
- package/src-tauri/.pake/tauri.windows.conf.json +15 -0
- package/src-tauri/Cargo.lock +1 -1
- package/src-tauri/Cargo.toml +7 -2
- package/src-tauri/icons/icon.icns +0 -0
- package/src-tauri/icons/icon.png +0 -0
- package/src-tauri/src/app/invoke.rs +57 -27
- package/src-tauri/src/app/menu.rs +244 -0
- package/src-tauri/src/app/mod.rs +1 -0
- package/src-tauri/src/lib.rs +12 -236
- package/src-tauri/assets/com-tw93-weekly.desktop +0 -10
package/src-tauri/src/lib.rs
CHANGED
|
@@ -9,8 +9,7 @@ use tauri_plugin_window_state::StateFlags;
|
|
|
9
9
|
#[cfg(target_os = "macos")]
|
|
10
10
|
use std::time::Duration;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
use tauri_plugin_opener::OpenerExt; // Add this
|
|
12
|
+
const WINDOW_SHOW_DELAY: u64 = 50;
|
|
14
13
|
|
|
15
14
|
use app::{
|
|
16
15
|
invoke::{
|
|
@@ -72,239 +71,16 @@ pub fn run_app() {
|
|
|
72
71
|
])
|
|
73
72
|
.setup(move |app| {
|
|
74
73
|
// --- Menu Construction Start ---
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
)?)?;
|
|
86
|
-
app_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
87
|
-
app_menu.append(&PredefinedMenuItem::services(app, None)?)?;
|
|
88
|
-
app_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
89
|
-
app_menu.append(&PredefinedMenuItem::hide(app, None)?)?;
|
|
90
|
-
app_menu.append(&PredefinedMenuItem::hide_others(app, None)?)?;
|
|
91
|
-
app_menu.append(&PredefinedMenuItem::show_all(app, None)?)?;
|
|
92
|
-
app_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
93
|
-
app_menu.append(&PredefinedMenuItem::quit(app, None)?)?;
|
|
94
|
-
|
|
95
|
-
// File Menu
|
|
96
|
-
let file_menu = Submenu::new(app, "File", true)?;
|
|
97
|
-
file_menu.append(&PredefinedMenuItem::close_window(app, None)?)?;
|
|
98
|
-
file_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
99
|
-
file_menu.append(&MenuItem::with_id(
|
|
100
|
-
app,
|
|
101
|
-
"clear_cache_restart",
|
|
102
|
-
"Clear Cache & Restart",
|
|
103
|
-
true,
|
|
104
|
-
Some("CmdOrCtrl+Shift+Backspace"),
|
|
105
|
-
)?)?;
|
|
106
|
-
|
|
107
|
-
// Edit Menu
|
|
108
|
-
let edit_menu = Submenu::new(app, "Edit", true)?;
|
|
109
|
-
edit_menu.append(&PredefinedMenuItem::undo(app, None)?)?;
|
|
110
|
-
edit_menu.append(&PredefinedMenuItem::redo(app, None)?)?;
|
|
111
|
-
edit_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
112
|
-
edit_menu.append(&PredefinedMenuItem::cut(app, None)?)?;
|
|
113
|
-
edit_menu.append(&PredefinedMenuItem::copy(app, None)?)?;
|
|
114
|
-
edit_menu.append(&PredefinedMenuItem::paste(app, None)?)?;
|
|
115
|
-
edit_menu.append(&PredefinedMenuItem::select_all(app, None)?)?;
|
|
116
|
-
edit_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
117
|
-
edit_menu.append(&MenuItem::with_id(
|
|
118
|
-
app,
|
|
119
|
-
"copy_url",
|
|
120
|
-
"Copy URL",
|
|
121
|
-
true,
|
|
122
|
-
Some("CmdOrCtrl+L"),
|
|
123
|
-
)?)?;
|
|
124
|
-
|
|
125
|
-
// View Menu
|
|
126
|
-
let view_menu = Submenu::new(app, "View", true)?;
|
|
127
|
-
view_menu.append(&MenuItem::with_id(
|
|
128
|
-
app,
|
|
129
|
-
"reload",
|
|
130
|
-
"Reload",
|
|
131
|
-
true,
|
|
132
|
-
Some("CmdOrCtrl+R"),
|
|
133
|
-
)?)?;
|
|
134
|
-
view_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
135
|
-
view_menu.append(&MenuItem::with_id(
|
|
136
|
-
app,
|
|
137
|
-
"zoom_in",
|
|
138
|
-
"Zoom In",
|
|
139
|
-
true,
|
|
140
|
-
Some("CmdOrCtrl+="),
|
|
141
|
-
)?)?;
|
|
142
|
-
view_menu.append(&MenuItem::with_id(
|
|
143
|
-
app,
|
|
144
|
-
"zoom_out",
|
|
145
|
-
"Zoom Out",
|
|
146
|
-
true,
|
|
147
|
-
Some("CmdOrCtrl+-"),
|
|
148
|
-
)?)?;
|
|
149
|
-
view_menu.append(&MenuItem::with_id(
|
|
150
|
-
app,
|
|
151
|
-
"zoom_reset",
|
|
152
|
-
"Actual Size",
|
|
153
|
-
true,
|
|
154
|
-
Some("CmdOrCtrl+0"),
|
|
155
|
-
)?)?;
|
|
156
|
-
view_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
157
|
-
view_menu.append(&PredefinedMenuItem::fullscreen(app, None)?)?;
|
|
158
|
-
view_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
159
|
-
view_menu.append(&MenuItem::with_id(
|
|
160
|
-
app,
|
|
161
|
-
"toggle_devtools",
|
|
162
|
-
"Toggle Developer Tools",
|
|
163
|
-
cfg!(debug_assertions),
|
|
164
|
-
Some("CmdOrCtrl+Option+I"),
|
|
165
|
-
)?)?;
|
|
166
|
-
|
|
167
|
-
// Navigation Menu
|
|
168
|
-
let navigation_menu = Submenu::new(app, "Navigation", true)?;
|
|
169
|
-
navigation_menu.append(&MenuItem::with_id(
|
|
170
|
-
app,
|
|
171
|
-
"go_back",
|
|
172
|
-
"Back",
|
|
173
|
-
true,
|
|
174
|
-
Some("CmdOrCtrl+["),
|
|
175
|
-
)?)?;
|
|
176
|
-
navigation_menu.append(&MenuItem::with_id(
|
|
177
|
-
app,
|
|
178
|
-
"go_forward",
|
|
179
|
-
"Forward",
|
|
180
|
-
true,
|
|
181
|
-
Some("CmdOrCtrl+]"),
|
|
182
|
-
)?)?;
|
|
183
|
-
navigation_menu.append(&MenuItem::with_id(
|
|
184
|
-
app,
|
|
185
|
-
"go_home",
|
|
186
|
-
"Go Home",
|
|
187
|
-
true,
|
|
188
|
-
Some("CmdOrCtrl+Shift+H"),
|
|
189
|
-
)?)?;
|
|
190
|
-
|
|
191
|
-
// Window Menu
|
|
192
|
-
let window_menu = Submenu::new(app, "Window", true)?;
|
|
193
|
-
window_menu.append(&PredefinedMenuItem::minimize(app, None)?)?;
|
|
194
|
-
window_menu.append(&PredefinedMenuItem::maximize(app, None)?)?;
|
|
195
|
-
window_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
196
|
-
window_menu.append(&MenuItem::with_id(
|
|
197
|
-
app,
|
|
198
|
-
"always_on_top",
|
|
199
|
-
"Toggle Always on Top",
|
|
200
|
-
true,
|
|
201
|
-
None::<&str>,
|
|
202
|
-
)?)?;
|
|
203
|
-
window_menu.append(&PredefinedMenuItem::separator(app)?)?;
|
|
204
|
-
window_menu.append(&PredefinedMenuItem::close_window(app, None)?)?;
|
|
205
|
-
|
|
206
|
-
// Help Menu (Custom)
|
|
207
|
-
let help_menu = Submenu::new(app, "Help", true)?;
|
|
208
|
-
let github_item = MenuItem::with_id(
|
|
209
|
-
app,
|
|
210
|
-
"pake_github_link",
|
|
211
|
-
&pake_menu_item_title,
|
|
212
|
-
true,
|
|
213
|
-
None::<&str>,
|
|
214
|
-
)?;
|
|
215
|
-
help_menu.append(&github_item)?;
|
|
216
|
-
|
|
217
|
-
// Construct the Menu Bar
|
|
218
|
-
let menu = Menu::with_items(
|
|
219
|
-
app,
|
|
220
|
-
&[
|
|
221
|
-
&app_menu,
|
|
222
|
-
&file_menu,
|
|
223
|
-
&edit_menu,
|
|
224
|
-
&view_menu,
|
|
225
|
-
&navigation_menu,
|
|
226
|
-
&window_menu,
|
|
227
|
-
&help_menu,
|
|
228
|
-
],
|
|
229
|
-
)?;
|
|
230
|
-
|
|
231
|
-
app.set_menu(menu)?;
|
|
232
|
-
|
|
233
|
-
// Event Handling for Custom Menu Item
|
|
234
|
-
app.on_menu_event(move |app_handle, event| {
|
|
235
|
-
match event.id().as_ref() {
|
|
236
|
-
"pake_github_link" => {
|
|
237
|
-
let _ = app_handle
|
|
238
|
-
.opener()
|
|
239
|
-
.open_url("https://github.com/tw93/Pake", None::<&str>);
|
|
240
|
-
}
|
|
241
|
-
"reload" => {
|
|
242
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
243
|
-
let _ = window.eval("window.location.reload()");
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
"toggle_devtools" => {
|
|
247
|
-
#[cfg(debug_assertions)] // Only allow in debug builds
|
|
248
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
249
|
-
if window.is_devtools_open() {
|
|
250
|
-
window.close_devtools();
|
|
251
|
-
} else {
|
|
252
|
-
window.open_devtools();
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
"zoom_in" => {
|
|
257
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
258
|
-
let _ = window.eval("zoomIn()");
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
"zoom_out" => {
|
|
262
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
263
|
-
let _ = window.eval("zoomOut()");
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
"zoom_reset" => {
|
|
267
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
268
|
-
let _ = window.eval("setZoom('100%')");
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
"go_back" => {
|
|
272
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
273
|
-
let _ = window.eval("window.history.back()");
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
"go_forward" => {
|
|
277
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
278
|
-
let _ = window.eval("window.history.forward()");
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
"go_home" => {
|
|
282
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
283
|
-
let _ = window.eval("window.location.href = window.pakeConfig.url");
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
"copy_url" => {
|
|
287
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
288
|
-
let _ =
|
|
289
|
-
window.eval("navigator.clipboard.writeText(window.location.href)");
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
"clear_cache_restart" => {
|
|
293
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
294
|
-
if let Ok(_) = window.clear_all_browsing_data() {
|
|
295
|
-
app_handle.restart();
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
"always_on_top" => {
|
|
300
|
-
if let Some(window) = app_handle.get_webview_window("pake") {
|
|
301
|
-
let is_on_top = window.is_always_on_top().unwrap_or(false);
|
|
302
|
-
let _ = window.set_always_on_top(!is_on_top);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
_ => {}
|
|
306
|
-
}
|
|
307
|
-
});
|
|
74
|
+
#[cfg(target_os = "macos")]
|
|
75
|
+
{
|
|
76
|
+
let menu = app::menu::get_menu(app.app_handle())?;
|
|
77
|
+
app.set_menu(menu)?;
|
|
78
|
+
|
|
79
|
+
// Event Handling for Custom Menu Item
|
|
80
|
+
app.on_menu_event(move |app_handle, event| {
|
|
81
|
+
app::menu::handle_menu_click(app_handle, event.id().as_ref());
|
|
82
|
+
});
|
|
83
|
+
}
|
|
308
84
|
// --- Menu Construction End ---
|
|
309
85
|
|
|
310
86
|
let window = set_window(app, &pake_config, &tauri_config);
|
|
@@ -321,7 +97,7 @@ pub fn run_app() {
|
|
|
321
97
|
if !start_to_tray {
|
|
322
98
|
let window_clone = window.clone();
|
|
323
99
|
tauri::async_runtime::spawn(async move {
|
|
324
|
-
tokio::time::sleep(tokio::time::Duration::from_millis(
|
|
100
|
+
tokio::time::sleep(tokio::time::Duration::from_millis(WINDOW_SHOW_DELAY)).await;
|
|
325
101
|
window_clone.show().unwrap();
|
|
326
102
|
});
|
|
327
103
|
}
|