1
0
Fork 0
freesewing/packages/react/components/Editor/lib/measurements.mjs

37 lines
1.2 KiB
JavaScript
Raw Normal View History

// Dependencies
import { defaultConfig } from '../config/index.mjs'
/*
* Returns a list of measurements for a design
*
* @param {object} Design - The Design object
* @param {object} measies - The current set of measurements
* @return {object} measurements - Object holding measurements that are relevant for this design
*/
export function designMeasurements(Design, measies = {}) {
const measurements = {}
for (const m of Design.patternConfig?.measurements || []) measurements[m] = measies[m]
for (const m of Design.patternConfig?.optionalMeasurements || []) measurements[m] = measies[m]
return measurements
}
/*
* Helper method to check whether measurements are missing
*
* Note that this does not actually check the settings against
* the chosen design, but rather relies on the missing measurements
* being set in state. That's because checking is more expensive,
* so we do it only once.
*
* @param {object} state - The Editor state
* @return {bool} missing - True if there are missing measurments, false if not
*/
export function missingMeasurements(state) {
return (
!defaultConfig.measurementsFreeViews.includes(state.view) &&
state._.missingMeasurements &&
state._.missingMeasurements.length > 0
)
}