transitionSeoChecklistWorkflow function

SeoChecklistWorkflowState transitionSeoChecklistWorkflow(
  1. SeoChecklistWorkflowState state,
  2. SeoChecklistWorkflowAction action
)

Implementation

SeoChecklistWorkflowState transitionSeoChecklistWorkflow(
  SeoChecklistWorkflowState state,
  SeoChecklistWorkflowAction action,
) {
  if (!isSeoChecklistWorkflowActionEnabled(state, action)) return state;
  return switch (action) {
    SeoChecklistWorkflowSetItem(:final index, :final checked) =>
      SeoChecklistWorkflowState(
        checklist: transitionSeoApprovalChecklist(
            state.checklist, SeoApprovalChecklistSetItem(index, checked)),
        workflow: state.workflow,
      ),
    SeoChecklistWorkflowAdvance(:final action) => SeoChecklistWorkflowState(
        checklist: action is SeoEditorialWorkflowReject
            ? initialSeoApprovalChecklistState(
                itemCount: state.checklist.checked.length)!
            : state.checklist,
        workflow: transitionSeoEditorialWorkflow(state.workflow, action),
      ),
  };
}