import { omit } from "lodash"; import { useEffect, useState } from "react"; export default function WLED(Component) { return function WithWLED(props) { const { connection } = props; const [wled, setWled] = useState(null); const [presets, setPresets] = useState(null); const [current, setCurrent] = useState(null); const init = async () => { try { await wled.init(); setCurrent(wled?.state || {}); setPresets(omit(wled?.presets, [0]) || []); } catch (err) { console.log("Init error", err.message || err); } }; useEffect(() => { if (wled) { wled.reinit = async (force = false) => { try { if (force) await wled.init(); //await wled.refreshConfig(); await wled.refreshState(); await wled.refreshPresets(); setCurrent(wled?.state || {}); setPresets(omit(wled?.presets, [0]) || []); } catch (err) { // do nothing console.log("reinit error", err.message || err); } }; init(); } }, [wled]); useEffect(() => { if (connection) setWled(connection); }, [connection]); return ( ); }; }