lbry-desktop/flow-typed/user.js
infinite-persistence cd2998d695
Membership-name state updates
- Corrected flow definitions.
- Properly differentiate between "not yet fetched" and "no membership" as "undefined" and "<empty string>", respectively. There are GUI elements that need to know the unfetched case.
2022-05-04 10:45:58 +08:00

77 lines
2 KiB
JavaScript

// @flow
type DeviceType = 'mobile' | 'web' | 'desktop';
declare type User = {
country: ?string,
created_at: string,
family_name: ?string,
given_name: ?string,
groups: Array<string>,
has_verified_email: boolean,
id: number,
invite_reward_claimed: boolean,
invited_at: ?number,
invited_by_id: number,
invites_remaining: number,
is_email_enabled: boolean,
is_identity_verified: boolean,
is_reward_approved: boolean,
password_set: boolean,
language: string,
manual_approval_user_id: ?number,
primary_email: ?string,
latest_claimed_email: ?string,
reward_status_change_trigger: string,
updated_at: string,
youtube_channels: ?Array<string>,
device_types: Array<DeviceType>,
lbry_first_approved: boolean,
experimental_ui: boolean,
fiat_enabled: boolean,
odysee_live_enabled: boolean,
odysee_live_disabled: boolean,
global_mod: boolean,
publish_id: ?number,
is_odysee_user: boolean,
location: ?string,
};
declare type UserState ={
authenticationIsPending: boolean,
userIsPending: boolean,
emailNewIsPending: boolean,
emailNewErrorMessage: string,
emailToVerify: string,
emailAlreadyExists: boolean,
emailDoesNotExist: boolean,
resendingVerificationEmail: boolean,
passwordResetPending: boolean,
passwordResetSuccess: boolean,
passwordResetError: ?string,
passwordSetPending: boolean,
passwordSetSuccess: boolean,
passwordSetError: ?string,
inviteNewErrorMessage: string,
inviteNewIsPending: boolean,
inviteStatusIsPending: boolean,
invitesRemaining: ?number,
invitees: ?Array<string>,
referralLink: ?string,
referralCode: ?string,
user: ?User,
youtubeChannelImportPending: boolean,
youtubeChannelImportErrorMessage: string,
referrerSetIsPending: boolean,
referrerSetError: string,
odyseeMembershipName: ?string, // undefined: not fetched, '': no membership
odyseeMembershipsPerClaimIds: ?{ [string]: string },
locale: ?LocaleInfo,
};
declare type LocaleInfo = {
continent: string,
country: string,
gdpr_required: boolean,
is_eu_member: boolean,
};