Application Load

IStorefrontProfileState

The physical TypeScript declaration from the Nuxt starter, with linked types and field comments.

IStorefrontProfileState

Host-owned account presentation state; not a backend response.

app/interfaces/orionplace/accounts/IStorefrontProfile.ts
TypeScript
export interface IStorefrontProfileState {
  // Current profile details have loaded successfully.
  loaded: boolean;
  // Action currently being submitted; empty while idle.
  pending: string;
  // Current request error shown in the reserved status area.
  error: string;
  // Backend field names mapped to validation messages.
  errors: Record<string, string>;
  // Last confirmed action; enables saved feedback.
  message: string;
  // Confirmation revision; password forms clear only after their own successful
  // action.
  saved: number;
  // Email-entry or email-code step returned by the server.
  emailStep: 'step_email' | 'step_email_code';
  // Confirmed email notification language, separate from storefront locale.
  notificationLocale: string;
  // Current server-selected authentication step.
  authStep: 'step_phone' | 'step_password' | 'step_otp' | 'step_additional';
  // Purpose auth or reg returned by the phone step; sent when requesting
  // another code.
  authPurpose: 'auth' | 'reg';
  // Latest code delivery channel: sms, call or email; empty if no channel has
  // been received.
  authCodeType: '' | 'sms' | 'call' | 'email';
  // Masked address from page_data.email for the email delivery hint.
  authEmail: string;
  // Seconds left to wait. Disables Continue on the phone step and code resend
  // on the code step.
  otpDelay: number;
  // `true` after `auth_signin_signup` returns `active_id`, while Application
  // Load refreshes the session. With `pending`, the top loading bar runs and
  // screen readers receive “Signing in…”; with empty `pending`, the refresh
  // failed and the form shows an error with Retry, which sends `refresh`
  // without credentials. Becomes `false` once Application Load confirms
  // `store.isAuthenticated`.
  refreshRequired: boolean;
}