reflexy
Version:
Flexbox layout react components
18 lines (17 loc) • 650 B
JavaScript
/* eslint-disable react-hooks/refs */
import { useRef } from 'react';
import { spaceToCssValue } from '../utils';
import { useFlexDefaults } from './useFlexDefaults';
export function useFlexUtils() {
const defaults = useFlexDefaults();
const defaultsRef = useRef(defaults);
defaultsRef.current = defaults;
const resultRef = useRef(undefined);
if (!resultRef.current) {
resultRef.current = {
spaceToCss: (space) => spaceToCssValue(space, defaultsRef.current),
spaceToNumber: (space) => Number.parseFloat(spaceToCssValue(space, defaultsRef.current)),
};
}
return resultRef.current;
}