Vytvořte bloky červené, modré a šedé pouze pomocí CSS (bez změny struktury, bez přidání obalů). Bloky by měly být uspořádány podle příkladu na obrázku. Můžete nastavovat styly pro kontejner i samotné bloky.
Frontend
Implementujte funkci mapper, která přijímá data (source), pole (fields), filtr (filter) a řazení (order). Je nutné: ověřit parametry (fields musí být pole, source/filter/order jsou funkce, pole z fields musí být přítomna v datech), získat data voláním source(), filtrovat pomocí filter, řadit pomocí order a vrátit pouze požadovaná pole z fields.
Použitím pouze DOM API (bez Reactu, přes dokument), napište kód, při kterém kliknutí na kterýkoli obdélník zobrazí jeho barvu. Doporučuje se použít jeden obslužný program událostí pro všechny prvky. Jaký je rozdíl mezi event.target a event.currentTarget?
Proveďte kontrolu kódu React komponenty, která provádí přepínání dat, volá řetězcovou funkci a vypisuje seznam. Najděte a opravte všechny chyby a problémy (async v useEffect, absence pole závislostí, použití indexu jako klíče atd.).
Implementujte metodu run třídy Queue tak, aby implementace odpovídala příkladu použití. Metoda run by měla sekvenčně vykonávat předané asynchronní funkce. Následující funkce ve frontě může být volána až po volání next. Pokud dojde k chybě v některé z funkcí, následující funkce se nevolají. Metody by měly podporovat řetězení volání (chaining).
Napište React komponentu s tlačítkem Přidat. Po kliknutí na tlačítko Přidat se přidá nové tlačítko s pořadovým číslem. Po kliknutí na vytvořené tlačítko se toto tlačítko odstraní. Odstraňování by mělo fungovat správně (ne podle indexu, ale podle unikátního identifikátoru).
Implementujte funkci asyncFilter, která přijímá pole čísel a asynchronní predikátovou funkci a vrací filtrované pole. Například při vstupu [1, 2, 3] a funkci, která ponechává pouze lichá čísla, by výstup měl být [1, 3].