1
0
Fork 0
freesewing/packages/components/src/Workbench/Measurements/index.js

108 lines
2.9 KiB
JavaScript
Raw Normal View History

import React from 'react'
import Button from '@material-ui/core/Button'
2021-05-23 11:32:10 +02:00
import { FormattedMessage } from 'react-intl'
import FormFieldMeasurement from '../../.form/FormFieldMeasurement'
import { withBreasts, withoutBreasts } from '@freesewing/models'
import Icon from '../../Icon'
2019-05-05 17:06:22 +02:00
const Measurements = (props) => {
2019-05-05 17:06:22 +02:00
const styles = {
container: {
display: 'flex',
flexDirection: 'row',
width: '100%',
minHeight: '70vh'
2019-05-05 17:06:22 +02:00
},
chooser: {
width: '100%',
maxWidth: '500px',
alignSelf: 'top'
},
ul: {
listStyleType: 'none',
margin: '0',
padding: '0'
},
li: {
display: 'inline',
padding: '0 5px 5px 0'
2019-05-05 17:06:22 +02:00
}
}
2019-05-05 17:06:22 +02:00
const getValue = (m) => {
if (props.measurements === null) return ''
if (typeof props.measurements[m] === 'undefined') return ''
return props.measurements[m]
}
2019-05-05 17:06:22 +02:00
if (props.required.length < 1)
return (
<div style={styles.container}>
<div style={styles.chooser}>
<h3>
<FormattedMessage id="cfp.noRequiredMeasurements" />
</h3>
<p>
2021-05-23 11:32:10 +02:00
<FormattedMessage id="cfp.howtoAddMeasurements" />
</p>
<p>
<FormattedMessage id="cfp.seeDocsAt" />
&nbsp;
<a href={'https://freesewing.dev/core/config'}>
2019-06-16 16:47:20 +02:00
{props.language}
.freesewing.dev/core/config
</a>
</p>
</div>
</div>
)
2019-05-05 17:06:22 +02:00
return (
<div style={styles.container}>
<div style={styles.chooser}>
<h4 id="preload">
2019-05-05 17:06:22 +02:00
<FormattedMessage id="cfp.preloadMeasurements" />
</h4>
<ul style={styles.ul}>
{Object.keys(withoutBreasts).map((m) => (
<li key={`${m}-without`} style={styles.li}>
<Button onClick={() => props.preloadMeasurements(withoutBreasts[m])}>
<Icon icon="withoutBreasts" />
2019-05-05 17:06:22 +02:00
<FormattedMessage id="cfp.size" />
&nbsp;
{m.slice(-2)}
</Button>
</li>
))}
{Object.keys(withBreasts).map((m) => (
<li key={`${m}-with`} style={styles.li}>
<Button onClick={() => props.preloadMeasurements(withBreasts[m])}>
<Icon icon="withBreasts" />
<FormattedMessage id="cfp.size" />
&nbsp;
{m.slice(-2)}
</Button>
</li>
))}
</ul>
2019-05-05 17:06:22 +02:00
</div>
<div style={styles.chooser}>
<h4 id="manual">
<FormattedMessage id="cfp.enterMeasurements" />
</h4>
{props.required.map((m) => (
<FormFieldMeasurement
key={m}
name={m}
units={props.units}
value={getValue(m)}
label={'measurements.' + m}
updateValue={props.updateMeasurement}
/>
))}
</div>
2019-05-05 17:06:22 +02:00
</div>
)
}
2019-05-05 17:06:22 +02:00
export default Measurements