From e86723496e920a834066f59fda7bad53f64e0d5e Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Fri, 23 May 2025 15:40:50 +0200 Subject: [PATCH] ADD edit request to frontend --- src/main/frontend/components/ClipConfig.tsx | 26 ++++++++++++- src/main/frontend/views/video/{id}.tsx | 43 ++++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/main/frontend/components/ClipConfig.tsx b/src/main/frontend/components/ClipConfig.tsx index 3862fe1..e94b471 100644 --- a/src/main/frontend/components/ClipConfig.tsx +++ b/src/main/frontend/components/ClipConfig.tsx @@ -1,4 +1,25 @@ -export default function ClipConfig() { +type prop = { + setWidth: Function; + setHeight: Function; + setFps: Function; + setFileSize: Function; +} + +export default function ClipConfig({setWidth, setHeight, setFps, setFileSize}: prop) { + const updateRes = (e: React.ChangeEvent) => { + var vals = e.target.value.split(","); + setWidth(parseInt(vals[0])) + setHeight(parseInt(vals[1])) + } + + const updateFps = (e: React.ChangeEvent) => { + setFps(parseInt(e.target.value)) + } + + const updateFileSize = (e: React.ChangeEvent) => { + setFileSize(parseInt(e.target.value)) + } + return (

Clip Export Settings

@@ -9,6 +30,7 @@ export default function ClipConfig() { @@ -40,6 +63,7 @@ export default function ClipConfig() {
diff --git a/src/main/frontend/views/video/{id}.tsx b/src/main/frontend/views/video/{id}.tsx index a127507..4d7b1c1 100644 --- a/src/main/frontend/views/video/{id}.tsx +++ b/src/main/frontend/views/video/{id}.tsx @@ -6,6 +6,32 @@ import PlaybackSlider from "./../../components/PlaybackSlider"; import ClipRangeSlider from "./../../components/ClipRangeSlider"; import ClipConfig from "./../../components/ClipConfig"; +function exportFile(uuid: string, + startPoint: number, + endPoint: number, + width: number, + height: number, + fps: number, + fileSize: number) { + var body: string = `startPoint=${startPoint}&endPoint=${endPoint}&width=${width}&height=${height}&fps=${fps}&fileSize=${fileSize*1000}`; + + fetch(`api/v1/edit/${uuid}`, { + method: "POST", + headers: { + 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' + }, + body: body, + }) + .then(res => { + console.log("RESPONSE: " + res); + return res + }) + .then(data => console.log('Response:', data)) + .catch(err => console.error('Error:', err)); + + return null; +} + export default function VideoId() { const { id } = useParams(); const videoRef = useRef(null); @@ -14,6 +40,10 @@ export default function VideoId() { const [metadata, setMetadata] = useState(null); const [playbackValue, setPlaybackValue] = useState(0); const [clipRangeValue, setClipRangeValue] = useState([0, 1]); + const [width, setWidth] = useState(1280); + const [height, setHeight] = useState(720); + const [fps, setFps] = useState(30); + const [fileSize, setFileSize] = useState(10); useEffect(() => { fetch(`api/v1/metadata/original/${id}`) @@ -25,6 +55,11 @@ export default function VideoId() { .catch((err) => console.log(err.message)); }, [id]); + const sendData = () => { + if (!id) return + exportFile(id,clipRangeValue[0], clipRangeValue[1], width, height, fps, fileSize); + } + return (