import { Config, SECTION_ROOT_CLASS_NAME } from '../../core'; export type CustomizeConfig = (config: Partial) => void; export type UseSectionResultTuple = [ { className: typeof SECTION_ROOT_CLASS_NAME; id: S | ''; }, CustomizeConfig ]; /** * Создаёт секцию и набор инструментов для работы с ней. * Если изменить имя секции, передаваемое в хук, то будет создана новая секция с новым конфигом, а старая будет удалена. * * @param sectionId имя секции, если передано существующее — хук вернёт tuple с данными существующей секции * * @returns Объект с props для корневого элемента секции и функция для кастомизации параметров секции. * Колбек `customizeConfig` мемоизирован с помощью `useCallback` и зависит `sectionId`. * * @example * ```typescript * const Page1 = ({ condition }) => { * const [section1Props, customizeSection1] = useSection('section1'); * const [section2Props, customizeSection2] = useSection(condition ? 'section2' : ''); * * useEffect(() => { * customizeSection1({ * enterTo: 'default-element', * straightOnly: true * }) * }, [customizeSection1]); * * useEffect(() => { * customizeSection2({ * enterTo: 'default-element' * }) * }, [customizeSection2]); * * const onSelect = useCallback((event: KeyboardEvent) => { * // ваша обработка * }, []); * * return ( * <> *
// или
* * *
* {condition &&
// или
* * *
} * * ); * }; * ``` */ export declare function useSection(sectionId: S): UseSectionResultTuple; //# sourceMappingURL=useSection.d.ts.map