import { IApp } from 'interfaces' import { RunnerPartialObject } from './variableHeight/types' import { getResponsiveObject } from './responsive' const BOTTOM_FIXED_THRESHOLD = 132 export const isFixedBottom = ( item: RunnerPartialObject, component: RunnerPartialObject ): boolean => item.attributes?.y + item.attributes?.height >= component.height - BOTTOM_FIXED_THRESHOLD const reachesTop = (item: RunnerPartialObject): boolean => { return item.attributes.y <= 20 } export const getMarginBottom = ( currentValue: number, item: RunnerPartialObject, component: RunnerPartialObject, app?: IApp ): number => { const responsiveItem = getResponsiveObject(item, component.width, app) if (isFixedBottom(responsiveItem, component) && !reachesTop(responsiveItem)) { const margin = component.height - responsiveItem.attributes?.y return Math.max(currentValue, margin) } return currentValue }