/* eslint-disable prettier/prettier */ import { Box } from '@mui/material'; import React, { useState } from 'react'; import ToolContent from '@components/ToolContent'; import { ToolComponentProps } from '@tools/defineTool'; import { GetGroupsType } from '@components/options/ToolOptions'; import { main } from './service'; import { InitialValuesType } from './types'; import ToolVideoInput from '@components/input/ToolVideoInput'; import ToolFileResult from '@components/result/ToolFileResult'; import CheckboxWithDesc from '@components/options/CheckboxWithDesc'; import RadioWithTextField from '@components/options/RadioWithTextField'; import SimpleRadio from '@components/options/SimpleRadio'; const initialValues: InitialValuesType = { quality: 'mid', fps: '10', scale: 'scale=320:-1:flags=bicubic' }; export default function VideoToGif({ title, longDescription }: ToolComponentProps) { const [input, setInput] = useState(null); const [result, setResult] = useState(null); const [loading, setIsLoading] = useState(false); const compute = (values: InitialValuesType, input: File | null) => { setResult(main(input, values)); }; const getGroups: GetGroupsType | null = ({ values, updateField }) => [ { title: 'Set Quality', component: ( { updateField('quality', 'low'); updateField('fps', '5'); updateField('scale', 'scale=240:-1:flags=bilinear'); }} checked={values.quality === 'low'} /> { updateField('quality', 'mid'); updateField('fps', '10'); updateField('scale', 'scale=320:-1:flags=bicubic'); }} checked={values.quality === 'mid'} /> { updateField('quality', 'high'); updateField('fps', '15'); updateField('scale', 'scale=480:-1:flags=lanczos'); }} checked={values.quality === 'high'} /> ) } ]; return ( } resultComponent={ loading ? ( ) : ( ) } initialValues={initialValues} getGroups={getGroups} setInput={setInput} compute={compute} toolInfo={{ title: `What is a ${title}?`, description: longDescription }} /> ); }