useEffect(() => { customize1({ // `getDefaultElement` определён, но `enterTo` по умолчанию равен `calculated`, // поэтому колбек `getDefaultElement` будет игнорироваться getDefaultElement: (section1Root) =>section1Root.lastElementChild, });
customize2({ // `getDefaultElement` определён и `enterTo` равен `default-element`, // при навигации внутрь этой секции фокус будет устанавливаться на элемент, который возвращает колбек `getDefaultElement` enterTo:'default-element', getDefaultElement: (section2Root) =>section2Root.lastElementChild, }); }, [[customize1, customize2]]);
// установка секции по умолчанию и установка фокуса на элемент из этой секции, выбранный по правилам определённым в её конфиге useDefaultSectionFocus('section2');
return ( <> <div{...section1}> <divclassName="sn-section-item"tabIndex={-1}> принадлежит секции section1 </div> <divclassName="sn-section-item"tabIndex={-1}> принадлежит секции section1 </div> <div> <div> <divclassName="sn-section-item"tabIndex={-1}> принадлежит секции section1 </div> </div> </div> </div> <div{...section2}> <divclassName="sn-section-item"tabIndex={-1}> принадлежит секции section2. После выполнения всех хуков, фокус будет установлен на этот элемент </div> <divclassName="sn-section-item"tabIndex={-1}> принадлежит секции section2 </div> </div> </> ); };
Parameters
Optional sectionId: string
пропсы для компонента секции или имя секции. Если не передан, то не выполняет никаких действий
Устанавливает секцию по умолчанию и переводит фокус на её элемент, в случае если фокус не находится ни на одном другом элементе любой другой секции
Example