Fix flow for User/UserState
This commit is contained in:
parent
637f191a24
commit
ec2bf26817
9 changed files with 44 additions and 10 deletions
|
@ -1,7 +1,7 @@
|
||||||
// @flow
|
// @flow
|
||||||
import { selectClaimIdForUri } from 'redux/selectors/claims';
|
import { selectClaimIdForUri } from 'redux/selectors/claims';
|
||||||
|
|
||||||
type State = { claims: any, stats: any, user: User };
|
type State = { claims: any, stats: any, user: UserState };
|
||||||
|
|
||||||
const selectState = (state: State) => state.stats || {};
|
const selectState = (state: State) => state.stats || {};
|
||||||
export const selectViewCount = (state: State) => selectState(state).viewCountById;
|
export const selectViewCount = (state: State) => selectState(state).viewCountById;
|
||||||
|
|
34
flow-typed/user.js
vendored
34
flow-typed/user.js
vendored
|
@ -32,7 +32,39 @@ declare type User = {
|
||||||
odysee_live_enabled: boolean,
|
odysee_live_enabled: boolean,
|
||||||
odysee_live_disabled: boolean,
|
odysee_live_disabled: boolean,
|
||||||
global_mod: boolean,
|
global_mod: boolean,
|
||||||
odyseeMembershipsPerClaimIds: ?{},
|
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,
|
||||||
|
odyseeMembershipsPerClaimIds: ?{ [string]: string },
|
||||||
};
|
};
|
||||||
|
|
||||||
declare type LocaleInfo = {
|
declare type LocaleInfo = {
|
||||||
|
|
|
@ -23,7 +23,7 @@ import {
|
||||||
import { isStreamPlaceholderClaim } from 'util/claim';
|
import { isStreamPlaceholderClaim } from 'util/claim';
|
||||||
|
|
||||||
type Dispatch = (action: any) => any;
|
type Dispatch = (action: any) => any;
|
||||||
type GetState = () => { claims: any, file: FileState, content: any, user: User };
|
type GetState = () => { claims: any, file: FileState, content: any, user: UserState };
|
||||||
export function doOpenFileInFolder(path: string) {
|
export function doOpenFileInFolder(path: string) {
|
||||||
return () => {
|
return () => {
|
||||||
shell.showItemInFolder(path);
|
shell.showItemInFolder(path);
|
||||||
|
|
|
@ -64,7 +64,7 @@ const recsysFyp = {
|
||||||
// ****************************************************************************
|
// ****************************************************************************
|
||||||
|
|
||||||
type Dispatch = (action: any) => any;
|
type Dispatch = (action: any) => any;
|
||||||
type GetState = () => { claims: any, search: SearchState, user: User };
|
type GetState = () => { claims: any, search: SearchState, user: UserState };
|
||||||
|
|
||||||
type SearchOptions = {
|
type SearchOptions = {
|
||||||
size?: number,
|
size?: number,
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
|
// @flow
|
||||||
import * as ACTIONS from 'constants/action_types';
|
import * as ACTIONS from 'constants/action_types';
|
||||||
|
|
||||||
const reducers = {};
|
const reducers = {};
|
||||||
|
|
||||||
const defaultState = {
|
const defaultState: UserState = {
|
||||||
authenticationIsPending: false,
|
authenticationIsPending: false,
|
||||||
userIsPending: false,
|
userIsPending: false,
|
||||||
emailNewIsPending: false,
|
emailNewIsPending: false,
|
||||||
|
@ -29,6 +30,7 @@ const defaultState = {
|
||||||
youtubeChannelImportErrorMessage: '',
|
youtubeChannelImportErrorMessage: '',
|
||||||
referrerSetIsPending: false,
|
referrerSetIsPending: false,
|
||||||
referrerSetError: '',
|
referrerSetError: '',
|
||||||
|
odyseeMembershipsPerClaimIds: undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
reducers[ACTIONS.AUTHENTICATION_STARTED] = (state) =>
|
reducers[ACTIONS.AUTHENTICATION_STARTED] = (state) =>
|
||||||
|
@ -385,7 +387,7 @@ reducers[ACTIONS.ADD_CLAIMIDS_MEMBERSHIP_DATA] = (state, action) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function userReducer(state = defaultState, action) {
|
export default function userReducer(state: UserState = defaultState, action: any) {
|
||||||
const handler = reducers[action.type];
|
const handler = reducers[action.type];
|
||||||
if (handler) return handler(state, action);
|
if (handler) return handler(state, action);
|
||||||
return state;
|
return state;
|
||||||
|
|
|
@ -17,7 +17,7 @@ import * as CLAIM from 'constants/claim';
|
||||||
import * as SETTINGS from 'constants/settings';
|
import * as SETTINGS from 'constants/settings';
|
||||||
import { INTERNAL_TAGS } from 'constants/tags';
|
import { INTERNAL_TAGS } from 'constants/tags';
|
||||||
|
|
||||||
type State = { claims: any, user: User };
|
type State = { claims: any, user: UserState };
|
||||||
|
|
||||||
const selectState = (state: State) => state.claims || {};
|
const selectState = (state: State) => state.claims || {};
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ import { isClaimNsfw, getChannelFromClaim } from 'util/claim';
|
||||||
import { selectSubscriptionUris } from 'redux/selectors/subscriptions';
|
import { selectSubscriptionUris } from 'redux/selectors/subscriptions';
|
||||||
import { getCommentsListTitle } from 'util/comments';
|
import { getCommentsListTitle } from 'util/comments';
|
||||||
|
|
||||||
type State = { claims: any, comments: CommentsState, user: User };
|
type State = { claims: any, comments: CommentsState, user: UserState };
|
||||||
|
|
||||||
const selectState = (state) => state.comments || {};
|
const selectState = (state) => state.comments || {};
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ import { FORCE_CONTENT_TYPE_PLAYER, FORCE_CONTENT_TYPE_COMIC } from 'constants/c
|
||||||
const RECENT_HISTORY_AMOUNT = 10;
|
const RECENT_HISTORY_AMOUNT = 10;
|
||||||
const HISTORY_ITEMS_PER_PAGE = 50;
|
const HISTORY_ITEMS_PER_PAGE = 50;
|
||||||
|
|
||||||
type State = { claims: any, content: any, user: User };
|
type State = { claims: any, content: any, user: UserState };
|
||||||
|
|
||||||
export const selectState = (state: State) => state.content || {};
|
export const selectState = (state: State) => state.content || {};
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ import { selectHistory } from 'redux/selectors/content';
|
||||||
import { selectAllCostInfoByUri } from 'lbryinc';
|
import { selectAllCostInfoByUri } from 'lbryinc';
|
||||||
import { SIMPLE_SITE } from 'config';
|
import { SIMPLE_SITE } from 'config';
|
||||||
|
|
||||||
type State = { claims: any, search: SearchState, user: User };
|
type State = { claims: any, search: SearchState, user: UserState };
|
||||||
|
|
||||||
export const selectState = (state: State): SearchState => state.search;
|
export const selectState = (state: State): SearchState => state.search;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue