isSeoChecklistWorkflowActionEnabled function
bool
isSeoChecklistWorkflowActionEnabled(
- SeoChecklistWorkflowState state,
- SeoChecklistWorkflowAction action
Implementation
bool isSeoChecklistWorkflowActionEnabled(
SeoChecklistWorkflowState state,
SeoChecklistWorkflowAction action,
) {
if (!isValidSeoChecklistWorkflowState(
state, state.checklist.checked.length)) {
return false;
}
return switch (action) {
SeoChecklistWorkflowSetItem(:final index, :final checked) =>
state.workflow.stage.index < SeoEditorialWorkflowStage.approved.index &&
isSeoApprovalChecklistActionEnabled(
state.checklist,
SeoApprovalChecklistSetItem(index, checked),
state.checklist.checked.length),
SeoChecklistWorkflowAdvance(:final action) =>
isSeoEditorialWorkflowActionEnabled(state.workflow, action) &&
(action is! SeoEditorialWorkflowApprove ||
isSeoApprovalChecklistComplete(state.checklist)),
};
}