mirror of
https://github.com/cheeaun/phanpy.git
synced 2025-01-04 16:47:19 +03:00
8d35d476e3
Also allow custom padding into safeBoundingBoxPadding function
31 lines
959 B
JavaScript
31 lines
959 B
JavaScript
import mem from 'mem';
|
|
|
|
const root = document.documentElement;
|
|
const style = getComputedStyle(root);
|
|
const defaultBoundingBoxPadding = 8;
|
|
function _safeBoundingBoxPadding(paddings = []) {
|
|
// paddings = [top, right, bottom, left]
|
|
// Get safe area inset variables from root
|
|
const safeAreaInsetTop = style.getPropertyValue('--sai-top');
|
|
const safeAreaInsetRight = style.getPropertyValue('--sai-right');
|
|
const safeAreaInsetBottom = style.getPropertyValue('--sai-bottom');
|
|
const safeAreaInsetLeft = style.getPropertyValue('--sai-left');
|
|
const str = [
|
|
safeAreaInsetTop,
|
|
safeAreaInsetRight,
|
|
safeAreaInsetBottom,
|
|
safeAreaInsetLeft,
|
|
]
|
|
.map(
|
|
(v, i) =>
|
|
(parseInt(v, 10) || defaultBoundingBoxPadding) + (paddings[i] || 0),
|
|
)
|
|
.join(' ');
|
|
// console.log(str);
|
|
return str;
|
|
}
|
|
const safeBoundingBoxPadding = mem(_safeBoundingBoxPadding, {
|
|
maxAge: 10000, // 10 seconds
|
|
});
|
|
|
|
export default safeBoundingBoxPadding;
|