diff --git a/splashscreen.html b/splashscreen.html new file mode 100644 index 0000000..3d83e9a --- /dev/null +++ b/splashscreen.html @@ -0,0 +1,16 @@ + + + + + + Loading + + +
+

正在加载!

+
+
正在加载所需资源!
+
+
+ + \ No newline at end of file diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index a610c83..5bcced9 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -1,9 +1,17 @@ use crate::{ app_error::AppError, pe_parse::{header::ImageDosHeader, pe::PE}, - services::{self, file::{get_nt_headers_data, ResponseDOSHeaderData, ResponseFileHeaderData, ResponseNTHeaderData}, GLOBAL_FILE_DATA}, + services::{ + self, + file::{ + get_nt_headers_data, ResponseDOSHeaderData, ResponseFileHeaderData, + ResponseNTHeaderData, + }, + GLOBAL_FILE_DATA, + }, }; use serde::Serialize; +use tauri::{async_runtime::Mutex, AppHandle, Manager, State}; #[derive(Serialize)] pub struct PeNodeTreeData { @@ -11,6 +19,15 @@ pub struct PeNodeTreeData { key: String, children: Vec, } +// set_complete +#[tauri::command] +pub fn set_complete(app: AppHandle) -> Result<(), AppError> { + let splash_window = app.get_webview_window("splashscreen").unwrap(); + let main_window = app.get_webview_window("main").unwrap(); + splash_window.close().unwrap(); + main_window.show().unwrap(); + Ok(()) +} // TODO: 获取PE节点树的JSON数据 #[tauri::command] @@ -103,4 +120,4 @@ pub fn command_get_pe_data_nt_header() -> Result pub fn command_get_pe_data_file_header() -> Result { let result = services::file::get_file_header_data()?; Ok(result) -} \ No newline at end of file +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index c3b6501..a96589d 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -15,6 +15,7 @@ pub fn run() { commands::command_get_pe_data_dos_header, commands::command_get_pe_data_nt_header, commands::command_get_pe_data_file_header, + commands::set_complete ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 7299f80..9652d86 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -12,9 +12,15 @@ "app": { "windows": [ { - "title": "test-tauri", - "width": 800, - "height": 600 + "label": "main", + "title": "My CFF", + "width": 1000, + "height": 800, + "visible": false + }, + { + "label": "splashscreen", + "url": "/splashscreen" } ], "security": { diff --git a/src/components/DosHeader/DosHeader.tsx b/src/components/DosHeader/DosHeader.tsx index 6d2d431..07fd8e6 100644 --- a/src/components/DosHeader/DosHeader.tsx +++ b/src/components/DosHeader/DosHeader.tsx @@ -358,7 +358,7 @@ const App = () => { render: (text) => { return offsetHex ? `0x${text.toString(16).toUpperCase()}` : text; }, - onHeaderCell: (column) => ({ + onHeaderCell: () => ({ onClick: () => { setOffsetHex(!offsetHex); } diff --git a/src/components/FileHeader/FileHeader.tsx b/src/components/FileHeader/FileHeader.tsx index 0cad445..6a8c055 100644 --- a/src/components/FileHeader/FileHeader.tsx +++ b/src/components/FileHeader/FileHeader.tsx @@ -157,7 +157,7 @@ const App = () => { render: (text) => { return offsetHex ? `0x${text.toString(16).toUpperCase()}` : text; }, - onHeaderCell: (column) => ({ + onHeaderCell: () => ({ onClick: () => { setOffsetHex(!offsetHex); }, diff --git a/src/components/NTHeader/NTHeader.tsx b/src/components/NTHeader/NTHeader.tsx index 2d5ce7e..545a7e2 100644 --- a/src/components/NTHeader/NTHeader.tsx +++ b/src/components/NTHeader/NTHeader.tsx @@ -115,7 +115,7 @@ const App = () => { render: (text) => { return offsetHex ? `0x${text.toString(16).toUpperCase()}` : text; }, - onHeaderCell: (column) => ({ + onHeaderCell: () => ({ onClick: () => { setOffsetHex(!offsetHex); }, diff --git a/src/components/side_tree/SideTree.tsx b/src/components/side_tree/SideTree.tsx index 53baf0f..5bf9b10 100644 --- a/src/components/side_tree/SideTree.tsx +++ b/src/components/side_tree/SideTree.tsx @@ -16,7 +16,7 @@ export default function SiderTree({ // 受控 选择的节点 const [selectedKey, setSelectedKey] = useState(defaultSelectedKey); - const onSelect: TreeProps["onSelect"] = (selectedKeys, info) => { + const onSelect: TreeProps["onSelect"] = (_, info) => { let key = info.node.key as string; console.log("onSelect", key); setSelectedKey(key); diff --git a/src/main.tsx b/src/main.tsx index 2be325e..f595d3a 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,6 +1,17 @@ import React from "react"; import ReactDOM from "react-dom/client"; import App from "./App"; +import { invoke } from "@tauri-apps/api/core"; +import { delay} from "lodash-es" + +async function setup() { + invoke('set_complete') +} + +window.addEventListener("DOMContentLoaded", () => { + setup(); +}) + ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(