Ensure only one pre-selected radio button or custom select item
[MAILPOET-2592]
This commit is contained in:
committed by
Rostislav Wolný
parent
a18bf316a0
commit
5adda60fbf
@@ -120,20 +120,20 @@ const Preview = ({
|
|||||||
remove,
|
remove,
|
||||||
onReorder,
|
onReorder,
|
||||||
}) => {
|
}) => {
|
||||||
const [valuesWhileMoved, setSegments] = useState(values);
|
const [valuesWhileMoved, setValues] = useState(values);
|
||||||
const moveItem = useCallback(
|
const moveItem = useCallback(
|
||||||
(dragIndex, hoverIndex) => {
|
(dragIndex, hoverIndex) => {
|
||||||
const result = Array.from(valuesWhileMoved);
|
const result = Array.from(valuesWhileMoved);
|
||||||
const [removed] = result.splice(dragIndex, 1);
|
const [removed] = result.splice(dragIndex, 1);
|
||||||
result.splice(hoverIndex, 0, removed);
|
result.splice(hoverIndex, 0, removed);
|
||||||
|
|
||||||
setSegments(result);
|
setValues(result);
|
||||||
},
|
},
|
||||||
[valuesWhileMoved, setSegments],
|
[valuesWhileMoved, setValues],
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setSegments(values);
|
setValues(values);
|
||||||
}, [values]);
|
}, [values]);
|
||||||
|
|
||||||
if (valuesWhileMoved.length === 0) {
|
if (valuesWhileMoved.length === 0) {
|
||||||
@@ -147,6 +147,13 @@ const Preview = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onCheck = (valueId, checked) => {
|
const onCheck = (valueId, checked) => {
|
||||||
|
if (checked) {
|
||||||
|
const checkedValue = valuesWhileMoved.find((v) => v.isChecked);
|
||||||
|
if (checkedValue) {
|
||||||
|
checkedValue.isChecked = false;
|
||||||
|
update(checkedValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
const value = valuesWhileMoved.find((v) => v.id === valueId);
|
const value = valuesWhileMoved.find((v) => v.id === valueId);
|
||||||
value.isChecked = checked;
|
value.isChecked = checked;
|
||||||
update(value);
|
update(value);
|
||||||
|
Reference in New Issue
Block a user