Sync acceptance criteria toggle state to children
This commit is contained in:
@@ -65,6 +65,34 @@ export const buildAcceptanceCriteria = (
|
||||
return normalizeAcceptanceCriteria(parseChecklistLines(checklistInput));
|
||||
};
|
||||
|
||||
export const syncAcceptanceCriteriaDescendantCheckedState = (
|
||||
items: AcceptanceCriteriaModel,
|
||||
index: number,
|
||||
checked: boolean,
|
||||
): AcceptanceCriteriaModel => {
|
||||
if (index < 0 || index >= items.length) {
|
||||
return items;
|
||||
}
|
||||
|
||||
const parentIndent = items[index]?.indent ?? 0;
|
||||
|
||||
return items.map((item, itemIndex) => {
|
||||
if (itemIndex === index) {
|
||||
return { ...item, checked };
|
||||
}
|
||||
|
||||
if (itemIndex < index) {
|
||||
return item;
|
||||
}
|
||||
|
||||
if (item.indent <= parentIndent) {
|
||||
return item;
|
||||
}
|
||||
|
||||
return { ...item, checked };
|
||||
});
|
||||
};
|
||||
|
||||
export const acceptanceCriteriaToEditorState = (
|
||||
value: AcceptanceCriteriaModel | null | undefined,
|
||||
): AcceptanceCriteriaEditorState => {
|
||||
|
||||
Reference in New Issue
Block a user