Skip to content

Commit

Permalink
fix: 提交数据问题 (#2314)
Browse files Browse the repository at this point in the history
* fix: 提交数据问题

* pref: 优化写法

* del: log
  • Loading branch information
song-xiao-lin authored Jan 22, 2025
1 parent 1b6d14d commit 7dbeedd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {YakitRadioButtons} from "@/components/yakitUI/YakitRadioButtons/YakitRadioButtons"
import {info, yakitFailed} from "@/utils/notification"
import {useCreation, useDebounceEffect, useMemoizedFn} from "ahooks"
import React, {useEffect, useMemo, useState} from "react"
import {useCreation, useMemoizedFn} from "ahooks"
import React, {useEffect, useMemo, useRef, useState} from "react"
import {MITMResponse, TraceInfo} from "../MITMPage"
import styles from "./MITMServerHijacking.module.scss"
import {MITMManualHeardExtra, MITMManualEditor, dropResponse, dropRequest, ManualUrlInfo} from "./MITMManual"
Expand Down Expand Up @@ -87,15 +87,10 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
})
const {currentPacket, currentPacketId, isHttp, requestPacket, traceInfo} = currentPacketInfo

const [modifiedPacket, setModifiedPacket] = useState<string>("")

useDebounceEffect(
() => {
setModifiedPacket(currentPacket)
},
[currentPacket],
{wait: 500}
)
const modifiedPacketRef = useRef<string>("")
useEffect(() => {
modifiedPacketRef.current = currentPacket
}, [currentPacket])

const [width, setWidth] = useState<number>(0)
const [height, setHeight] = useState<number>(0)
Expand Down Expand Up @@ -288,7 +283,6 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
}
} else {
setForResponse(true)
setStatus("hijacked")
setCurrentPacketInfo({
currentPacket: !!msg?.isWebsocket
? Uint8ArrayToString(msg.Payload)
Expand All @@ -304,10 +298,10 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
TotalDurationMs: 0
}
})
setStatus("hijacked")
}
} else if (msg.request) {
const updateRequest = () => {
setStatus("hijacked")
setForResponse(false)
setCurrentPacketInfo({
currentPacket: !!msg?.isWebsocket
Expand All @@ -325,6 +319,7 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
}
})
setUrlInfo(msg.url)
setStatus("hijacked")
}

if (!isManual) {
Expand Down Expand Up @@ -388,16 +383,16 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
// 美化
const [beautifyTriggerRefresh, setBeautifyTriggerRefresh] = useState<boolean>(false) // 美化触发编辑器刷新
const onSetBeautifyTrigger = useMemoizedFn((flag: boolean) => {
if (modifiedPacket === "") {
if (modifiedPacketRef.current === "") {
return
}
const encoder = new TextEncoder()
const bytes = encoder.encode(modifiedPacket)
const bytes = encoder.encode(modifiedPacketRef.current)
const mb = bytes.length / 1024 / 1024
if (mb > 0.5) {
return
} else {
prettifyPacketCode(modifiedPacket).then((res) => {
prettifyPacketCode(modifiedPacketRef.current).then((res) => {
if (!!res) {
setCurrentPacketInfo((prev) => ({...prev, currentPacket: Uint8ArrayToString(res as Uint8Array)}))
setBeautifyTriggerRefresh(flag)
Expand Down Expand Up @@ -450,13 +445,13 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
if (!currentPacketId) {
return
}
setIsRefreshHistory(true)
setStatus("hijacking")
setIsRefreshHistory(true)
if (hijackResponseType !== "all") {
setHijackResponseType("never")
}
setForResponse(false)
const modifiedPacketBytes = StringToUint8Array(modifiedPacket)
const modifiedPacketBytes = StringToUint8Array(modifiedPacketRef.current)
if (forResponse) {
ipcRenderer.invoke("mitm-forward-modified-response", modifiedPacketBytes, currentPacketId).finally(() => {
clearCurrentPacket()
Expand Down Expand Up @@ -538,7 +533,7 @@ const MITMHijackedContent: React.FC<MITMHijackedContentProps> = React.memo((prop
currentIsWebsocket={currentIsWebsocket}
currentPacket={currentPacket}
beautifyTriggerRefresh={beautifyTriggerRefresh}
setModifiedPacket={setModifiedPacket}
setModifiedPacket={(val) => (modifiedPacketRef.current = val)}
forResponse={forResponse}
currentPacketId={currentPacketId}
handleAutoForward={handleAutoForward}
Expand Down
2 changes: 1 addition & 1 deletion app/renderer/src/main/src/utils/editors.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -781,7 +781,7 @@ export const NewHTTPPacketEditor: React.FC<NewHTTPPacketEditorProp> = React.memo
}
setStrValue(originValue)
if (mode === "hex") setHexValue(StringToUint8Array(originValue))
}, [props.refreshTrigger, mode])
}, [props.refreshTrigger, mode, props.readOnly])

useEffect(() => {
props.onChange && props.onChange(strValue)
Expand Down

0 comments on commit 7dbeedd

Please sign in to comment.