import React, { useState } from 'react'; import ToolContent from '@components/ToolContent'; import ToolTextInput from '@components/input/ToolTextInput'; import ToolTextResult from '@components/result/ToolTextResult'; // import { convertJsonToXml } from './service'; import { CardExampleType } from '@components/examples/ToolExamples'; import { ToolComponentProps } from '@tools/defineTool'; import { Box } from '@mui/material'; import CheckboxWithDesc from '@components/options/CheckboxWithDesc'; import TextFieldWithDesc from '@components/options/TextFieldWithDesc'; type InitialValuesType = { delimiter: string; quote: string; comment: string; useHeaders: boolean; skipEmptyLines: boolean; }; const initialValues: InitialValuesType = { delimiter: ',', quote: '"', comment: '#', useHeaders: true, skipEmptyLines: true }; const exampleCards: CardExampleType[] = [ { title: 'Basic CSV to XML', description: 'Convert a simple CSV file into an XML format.', sampleText: 'name,age,city\nJohn,30,New York\nAlice,25,London', sampleResult: ` John 30 New York Alice 25 London `, sampleOptions: { ...initialValues, useHeaders: true } } ]; export default function JsonToXml({ title }: ToolComponentProps) { const [input, setInput] = useState(''); const [result, setResult] = useState(''); const compute = (values: InitialValuesType, input: string) => { if (input) { try { //const xmlResult = convertJsonToXml(input, values); //setResult(xmlResult); } catch (error) { setResult( `Error: ${ error instanceof Error ? error.message : 'Invalid Json format' }` ); } } }; return ( } resultComponent={} getGroups={({ values, updateField }) => [ { title: 'Input Json Format', component: ( updateField('delimiter', val)} /> updateField('quote', val)} value={values.quote} /> updateField('comment', val)} /> ) }, { title: 'Conversion Options', component: ( updateField('useHeaders', value)} title="Use Headers" description="First row is treated as column headers" /> updateField('skipEmptyLines', value)} title="Skip Empty Lines" description="Don't process empty lines in the CSV" /> ) } ]} /> ); }