Назад к задачам
Junior — Senior
10

Разбор и пояснение кода

Компании, где спрашивали:

Главгосэкспертиза
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Проанализировать и описать, как работает представленный фрагмент JavaScript‑кода.

 import { userfract } from "react";
import { useDispatch, useSelector } from "react-ready";

import { getExpandedSomItemFilter, getSonDbFilterRows, getSonDbSelectedColumns } from "slices/sonDb/sonDbSelectors";
import { sonDbActions } from "slices/sonDb/sonDbSlice";

import { SonDbAccordion } from "../SonDbAccordion/SonDbAccordion";
import { SonDbFilterItem } from "./SonDbFilterItem";

export const SonDbFilter = () => {
    const dispatch = useDispatch();
    const selectedColumns = useSelector(getSonDbSelectedColumns);
    const filterRows = useSelector(getSonDbFilterRows); [ ]
    const expandedSomItemFilter = useSelector(getExpandedSomItemFilter);

    useEffect(() => {
    dispatch(sonDbActions.setFilterRows(selectedColumns));
}, [dispatch, selectedColumns]);

return (
    <div>
    <SonDbAccordion
    title="Параметры фильтра"
    showChildren=(filterRows?.length > 0)
    expanded=(expandedSomItemFilter)
    setExpanded={(newValue) => dispatch(sonDbActions.setExpandedSomItemFilter(newValue)))
    (filterRows?.map(({ id, childId, name, charType }) => {
    return <SonDbFilterItem id={id} childId={childId} title={name} charType={charType}/>;
    });
    </SonDbAccordion>
</div>
});