/** * External dependencies */ import type { ReusableGoal, ReusableSegment } from '@nab/types'; export type ReusableEntityAction = | MarkAsSavingReusableEntities | ReceiveReusableGoals | ReceiveReusableSegments; export function markAsSavingReusableEntities( isSaving: boolean ): MarkAsSavingReusableEntities { return { type: 'MARK_AS_SAVING_REUSABLE_ENTITIES', isSaving, }; } export function receiveReusableGoals( reusableGoals: ReadonlyArray< ReusableGoal > ): ReceiveReusableGoals { return { type: 'RECEIVE_REUSABLE_GOALS', reusableGoals, }; } export function receiveReusableSegments( reusableSegments: ReadonlyArray< ReusableSegment > ): ReceiveReusableSegments { return { type: 'RECEIVE_REUSABLE_SEGMENTS', reusableSegments, }; } // ============ // HELPER TYPES // ============ type MarkAsSavingReusableEntities = { readonly type: 'MARK_AS_SAVING_REUSABLE_ENTITIES'; readonly isSaving: boolean; }; type ReceiveReusableGoals = { readonly type: 'RECEIVE_REUSABLE_GOALS'; readonly reusableGoals: ReadonlyArray< ReusableGoal >; }; type ReceiveReusableSegments = { readonly type: 'RECEIVE_REUSABLE_SEGMENTS'; readonly reusableSegments: ReadonlyArray< ReusableSegment >; };