Загрузка приложения

IStorefrontProfileAction

Физическое объявление TypeScript из стартового проекта Nuxt со связанными типами и комментариями к полям.

IStorefrontProfileAction

Типизированное действие формы профиля, различаемое по action.

src/lib/interfaces/orionplace/accounts/IStorefrontProfile.ts
TypeScript
export type IStorefrontProfileAction =
  | {
      // Значение поля action.
      action:
        'load' | 'refresh' | 'avatar-delete' | 'auth-resend' | 'auth-restart';
    }
  | { /* Значение поля action. */ action: 'details'; /* Значение поля data. */ data: IProfileUpdateRequest }
  | { /* Значение поля action. */ action: 'password'; /* Значение поля data. */ data: IProfilePasswordRequest }
  | { /* Значение поля action. */ action: 'delete-account'; /* Значение поля data. */ data: IProfileDeleteRequest }
  | { /* Значение поля action. */ action: 'avatar-add'; /* Значение поля file. */ file: File }
  | {
      // Значение поля action.
      action: 'email';
      // Значение поля data.
      data:
        | { /* Значение поля step. */ step: 'step_email'; /* Значение поля email. */ email: string }
        | { /* Значение поля step. */ step: 'step_email_code'; /* Значение поля code. */ code: string };
    }
  | { /* Значение поля action. */ action: 'notifications'; /* Значение поля data. */ data: { /* Для действия `notifications` значение `true` включает все необязательные типы email-уведомлений, а `false` выключает их. Для включения нужен сохранённый email. */ enabled: boolean } }
  | {
      // Значение поля action.
      action: 'notification-locale';
      // Значение поля data.
      data: { /* Значение поля email_notification_locale. */ email_notification_locale: string };
    }
  | {
      // Значение поля action.
      action: 'authenticate';
      // Значение поля data.
      data: {
        // Значение поля step.
        step: IStorefrontProfileState['authStep'];
        // Необязательное поле phone; может отсутствовать.
        phone?: string;
        // Необязательное поле auth_password; может отсутствовать.
        auth_password?: string;
        // Необязательное поле otp_code; может отсутствовать.
        otp_code?: string;
        // Необязательное поле first_name; может отсутствовать.
        first_name?: string;
        // Необязательное поле last_name; может отсутствовать.
        last_name?: string;
      };
    };