2019-10-03 12:32:50 +02:00
|
|
|
import React, { useState } from 'react'
|
|
|
|
import FormFieldList from '../../.form/FormFieldList'
|
|
|
|
import OptionPreamble from '../OptionPreamble'
|
2019-04-22 18:00:26 +02:00
|
|
|
|
2020-04-25 19:09:02 +02:00
|
|
|
const PatternOptionList = (props) => {
|
2019-10-03 12:32:50 +02:00
|
|
|
const [value, setValue] = useState(props.dflt)
|
|
|
|
const [expanded, setExpanded] = useState(false)
|
2019-04-22 18:00:26 +02:00
|
|
|
|
|
|
|
const update = (name, newValue, evt) => {
|
2019-10-03 12:32:50 +02:00
|
|
|
props.updateValue(props.name, newValue)
|
|
|
|
setValue(newValue)
|
|
|
|
}
|
2019-04-22 18:00:26 +02:00
|
|
|
|
|
|
|
const reset = () => {
|
2019-10-03 12:32:50 +02:00
|
|
|
setValue(props.dflt)
|
|
|
|
props.updateValue(props.name, props.dflt)
|
|
|
|
}
|
2019-04-22 18:00:26 +02:00
|
|
|
|
2019-10-03 12:32:50 +02:00
|
|
|
const patternReset = () => {
|
2019-12-26 11:58:52 +01:00
|
|
|
setValue(props.designDflt)
|
|
|
|
props.updateValue(props.name, props.designDflt)
|
2019-10-03 12:32:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
const toggleExpanded = () => setExpanded(!expanded)
|
2019-04-26 08:25:15 +02:00
|
|
|
|
2019-04-23 18:34:18 +02:00
|
|
|
// Add translations
|
2019-10-03 12:32:50 +02:00
|
|
|
let stringKey = `options.${props.pattern}.${props.name}.options.`
|
|
|
|
let list = {}
|
2019-04-23 18:34:18 +02:00
|
|
|
for (let item of props.list)
|
|
|
|
list[item] = props.intl.formatMessage({
|
|
|
|
id: stringKey + item,
|
|
|
|
defaultMessage: item
|
2019-10-03 12:32:50 +02:00
|
|
|
})
|
2019-04-26 08:25:15 +02:00
|
|
|
let option = (
|
|
|
|
<FormFieldList
|
|
|
|
name={props.name}
|
|
|
|
value={value}
|
|
|
|
dflt={props.dflt}
|
2019-12-26 11:58:52 +01:00
|
|
|
designDflt={props.designDflt}
|
2019-04-26 08:25:15 +02:00
|
|
|
onChange={update}
|
2019-10-03 12:32:50 +02:00
|
|
|
label={'po-list-' + props.name}
|
2019-04-26 08:25:15 +02:00
|
|
|
updateValue={update}
|
|
|
|
list={list}
|
|
|
|
/>
|
2019-10-03 12:32:50 +02:00
|
|
|
)
|
2019-04-22 18:00:26 +02:00
|
|
|
return (
|
2019-04-26 08:25:15 +02:00
|
|
|
<li>
|
2019-04-22 18:00:26 +02:00
|
|
|
<OptionPreamble
|
|
|
|
dflt={props.dflt}
|
|
|
|
value={value}
|
|
|
|
desc={props.desc}
|
|
|
|
title={props.title}
|
2019-10-03 12:32:50 +02:00
|
|
|
id={'po-list-' + props.name}
|
2019-04-23 18:34:18 +02:00
|
|
|
displayValue={list[value]}
|
2019-04-22 18:00:26 +02:00
|
|
|
reset={reset}
|
2019-10-03 12:32:50 +02:00
|
|
|
patternReset={patternReset}
|
2019-04-26 08:25:15 +02:00
|
|
|
toggleExpanded={toggleExpanded}
|
|
|
|
expanded={expanded}
|
2019-04-22 18:00:26 +02:00
|
|
|
showHelp={() =>
|
2019-10-03 12:32:50 +02:00
|
|
|
props.raiseEvent('showHelp', {
|
|
|
|
type: 'patternOption',
|
2019-04-22 18:00:26 +02:00
|
|
|
value: props.name
|
|
|
|
})
|
|
|
|
}
|
2019-04-26 08:25:15 +02:00
|
|
|
option={option}
|
2019-05-10 10:53:34 +02:00
|
|
|
noDocs={props.noDocs}
|
2019-04-22 18:00:26 +02:00
|
|
|
/>
|
2019-04-26 08:25:15 +02:00
|
|
|
</li>
|
2019-10-03 12:32:50 +02:00
|
|
|
)
|
|
|
|
}
|
2019-04-22 18:00:26 +02:00
|
|
|
|
2019-10-03 12:32:50 +02:00
|
|
|
export default PatternOptionList
|