import React from 'react'; import { useSetRecoilState } from 'recoil'; import { FileUp } from 'lucide-react'; import store from '~/store'; import axios from 'axios'; async function fetchPresets(callback) { try { const response = await axios.get('/api/presets', { timeout: 1000, withCredentials: true }); callback(response.data); } catch (error) { console.error(error); console.log('[FileUpload] Error fetching presets'); } } const FileUpload = ({ onFileSelected }) => { const setPresets = useSetRecoilState(store.presets); const handleFileChange = event => { const file = event.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = e => { const jsonData = JSON.parse(e.target.result); onFileSelected(jsonData, () => fetchPresets(setPresets)); }; reader.readAsText(file); }; return ( ); }; export default FileUpload;