UNPKG

@sorens/artist-svelte

Version:

an opinionated and clean UI framework for SvelteKit with theme support built-in

31 lines (30 loc) 1.04 kB
import { getContext } from 'svelte'; import isVisibleHook from '../../utilities/hook/isVisible'; export const scrollIntoView = (HtmlElement) => { const scrollElementIntoView = () => { /* istanbul ignore next */ if (HtmlElement.ariaExpanded === 'true' && !isVisibleHook(HtmlElement)) { HtmlElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' }); } }; scrollElementIntoView(); return { update: () => scrollElementIntoView() }; }; export const accordionContextInit = () => getContext('Accordion'); export const accordionItemLifeCycle = (id, expanded, storeSubscribe) => (_, accordionContext) => { accordionContext.add({ id, expanded }); const unsubscribe = accordionContext.accordionStates.subscribe(storeSubscribe); return { destroy: () => { if (accordionContext) accordionContext.remove({ id }); unsubscribe(); } }; };