import type { MergeDirection, ProcessResult } from 'jpegr'; import type { ChangeEvent } from 'react'; import { JPGER } from 'jpegr'; import { useRef, useState } from 'react'; export const ImageMescler = () => { const { current: jpegr } = useRef(new JPGER()); const inputRef = useRef(null); const [result, setResult] = useState(null); const [direction, setDirection] = useState('vertical'); const onChange = async (event: ChangeEvent) => { const files = event.currentTarget.files; if (!files || files.length === 0) { jpegr.clear(); return; } const merged = await jpegr.merge(Array.from(files), direction); setResult(merged); }; const onDirectionChange = (newDirection: MergeDirection) => { if (inputRef.current) inputRef.current.value = ''; jpegr.clear(); setDirection(newDirection); setResult(null); }; return ( <>
{result?.image && ( Merged image preview )}
{JSON.stringify(result, null, 2)}
); };