UNPKG

@shopify/polaris

Version:

Shopify’s admin product component library

36 lines (29 loc) 865 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function scrollOptionIntoView(option, scrollable) { const listTop = scrollable.scrollTop; const listBottom = listTop + scrollable.clientHeight; const { offsetHeight: optionHeight } = option; const { offsetTop: optionTop } = option; const optionBottom = optionTop + optionHeight; const isVisible = optionTop > listTop && optionBottom < listBottom; if (!isVisible) { let top = 0; if (optionBottom > listBottom) { top = optionBottom + optionHeight * 0.85 - listBottom; } else if (optionTop < listTop) { top = optionTop - optionHeight * 0.15 - listTop; } requestAnimationFrame(() => { scrollable.scrollBy({ top, behavior: 'auto' }); }); } } exports.scrollOptionIntoView = scrollOptionIntoView;