UNPKG

svelte-motion

Version:

Svelte animation library based on the React library framer-motion.

48 lines (36 loc) 1.12 kB
import { getContext } from "svelte"; import { get } from "svelte/store"; import { ScaleCorrectionContext, ScaleCorrectionParentContext, } from "../../context/ScaleCorrectionProvider.svelte"; export const scaleCorrection = () => { const scaleCorrectionContext = getContext(ScaleCorrectionContext); const scaleCorrectionParentContext = getContext( ScaleCorrectionParentContext ); const afterU = (nc = false) => { /* Second part of the updater calling in child layouts first.*/ const scc = get(scaleCorrectionContext); scc.forEach((v, i) => { v.afterU?.(true); }); }; const updater = () => { // in React the updater function is called on children first, in Svelte the child does not call it. get(scaleCorrectionContext).forEach((v) => { v.updater?.(true); }) } scaleCorrectionParentContext.update((v) => v.concat([ { updater, afterU, }, ]) ); return { update: updater } }