// Preact import { h } from 'preact'; import { useState, useEffect } from 'preact/hooks'; // Functions import { fetchMods } from '../services/api'; // Components import FiltersPanel from '../components/Filters/panel' // Images import logo from '../assets/logo.png' // Styles import GridCard from '../components/Cards/grid'; import RowCard from '../components/Cards/row'; function ModsPage() { // UseState const [mods, setMods] = useState([]); const [loading, setLoading] = useState(true) const [error, setError] = useState(null) // UseEffect useEffect(() => { async function loadItems() { setLoading(true); setError(false); try { const fetched_mods = await fetchMods(); setMods(fetched_mods); } catch (err) { setError(err.message); } finally { setLoading(false); } } loadItems(); }, []); // <-- Tells useEffect to run once after render if (loading) { // TODO replace by loading screen return
Loading mods
} if (error) { // TODO replace by popup return
Couldn't load mods: {error}
} return ( <>
{/* Test card */} {/* */} {mods.map((mod) => { console.debug(mod.name); // return
Test
return })}
); } export default ModsPage;