feat: 添加闪屏
This commit is contained in:
parent
a279a262b7
commit
31c23efa6c
16
splashscreen.html
Normal file
16
splashscreen.html
Normal file
@ -0,0 +1,16 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Loading</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>正在加载!</h1>
|
||||
<div class="row">
|
||||
<h5>正在加载所需资源!</h5>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -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<PeNodeTreeData>,
|
||||
}
|
||||
// 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]
|
||||
|
@ -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");
|
||||
|
@ -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": {
|
||||
|
@ -358,7 +358,7 @@ const App = () => {
|
||||
render: (text) => {
|
||||
return offsetHex ? `0x${text.toString(16).toUpperCase()}` : text;
|
||||
},
|
||||
onHeaderCell: (column) => ({
|
||||
onHeaderCell: () => ({
|
||||
onClick: () => {
|
||||
setOffsetHex(!offsetHex);
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ const App = () => {
|
||||
render: (text) => {
|
||||
return offsetHex ? `0x${text.toString(16).toUpperCase()}` : text;
|
||||
},
|
||||
onHeaderCell: (column) => ({
|
||||
onHeaderCell: () => ({
|
||||
onClick: () => {
|
||||
setOffsetHex(!offsetHex);
|
||||
},
|
||||
|
@ -115,7 +115,7 @@ const App = () => {
|
||||
render: (text) => {
|
||||
return offsetHex ? `0x${text.toString(16).toUpperCase()}` : text;
|
||||
},
|
||||
onHeaderCell: (column) => ({
|
||||
onHeaderCell: () => ({
|
||||
onClick: () => {
|
||||
setOffsetHex(!offsetHex);
|
||||
},
|
||||
|
@ -16,7 +16,7 @@ export default function SiderTree({
|
||||
// 受控 选择的节点
|
||||
const [selectedKey, setSelectedKey] = useState<string>(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);
|
||||
|
11
src/main.tsx
11
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(
|
||||
<React.StrictMode>
|
||||
|
Loading…
Reference in New Issue
Block a user