2023-09-16 12:34:35 +02:00
|
|
|
type CompressionInputProps = {
|
2023-09-13 16:07:45 +02:00
|
|
|
compression: number;
|
2023-09-16 12:34:35 +02:00
|
|
|
handleCompressionChange: (arg: any) => void;
|
2023-07-23 11:07:18 +02:00
|
|
|
};
|
|
|
|
|
2023-09-16 12:34:35 +02:00
|
|
|
export function CompressionInput({
|
2023-09-13 16:07:45 +02:00
|
|
|
compression,
|
2023-09-16 12:34:35 +02:00
|
|
|
handleCompressionChange,
|
|
|
|
}: CompressionInputProps) {
|
2023-07-23 11:07:18 +02:00
|
|
|
return (
|
|
|
|
<div className="flex flex-col gap-2">
|
2023-08-30 06:54:16 +02:00
|
|
|
<div className="flex gap-1 text-sm font-medium uppercase">
|
2023-09-13 16:07:45 +02:00
|
|
|
<p className="shrink-0">Image Compression ({compression}%)</p>
|
2023-08-30 06:54:16 +02:00
|
|
|
</div>
|
2023-11-23 06:39:46 +01:00
|
|
|
{compression > 0 && (
|
|
|
|
<p className="text-xs text-base-content/80">
|
2024-04-21 19:27:16 +02:00
|
|
|
PNG compression is lossless, so it might not reduce the file size
|
2024-04-22 09:55:44 +02:00
|
|
|
significantly and higher compression values might affect the
|
|
|
|
performance. JPG and WebP compression is lossy.
|
2023-11-23 06:39:46 +01:00
|
|
|
</p>
|
|
|
|
)}
|
2023-07-23 11:07:18 +02:00
|
|
|
<input
|
|
|
|
type="range"
|
|
|
|
placeholder="Type here"
|
|
|
|
className="range range-primary w-full max-w-xs"
|
|
|
|
min={0}
|
|
|
|
max={100}
|
2023-09-13 16:07:45 +02:00
|
|
|
value={compression}
|
2023-09-16 12:34:35 +02:00
|
|
|
onChange={handleCompressionChange}
|
2023-07-23 11:07:18 +02:00
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|