// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

// We prevent circular loops between ducks and selectors/components with `import type`.
//   For example, Selectors are used in action creators using thunk/getState, but those
//   Selectors need types from the ducks. Selectors shouldn't use code from ducks.
//
// But enums can be used as types but also as code. So we keep them out of the ducks.

export enum UsernameSaveState {
  None = 'None',
  Saving = 'Saving',
  UsernameTakenError = 'UsernameTakenError',
  UsernameMalformedError = 'UsernameMalformedError',
  GeneralError = 'GeneralError',
  DeleteFailed = 'DeleteFailed',
  Success = 'Success',
}

export enum ComposerStep {
  StartDirectConversation = 'StartDirectConversation',
  ChooseGroupMembers = 'ChooseGroupMembers',
  SetGroupMetadata = 'SetGroupMetadata',
}

export enum OneTimeModalState {
  NeverShown,
  Showing,
  Shown,
}

export enum ConversationVerificationState {
  PendingVerification = 'PendingVerification',
  VerificationCancelled = 'VerificationCancelled',
}
