From 0fd892ad288f2e1eaaa4fdf5e1fd6f15dbd45860 Mon Sep 17 00:00:00 2001 From: Ashm Walia <40498934+ashmgarv@users.noreply.github.com> Date: Fri, 4 Dec 2020 08:50:24 -0800 Subject: [TMA - 398 AND TMA-430] Replace Providers with Redux Store (#125) * First * WIP * Thunk * Some more comments * sc * recent searches and follounfollow * Edit profile dummy * Block / unblock and some cleanup * Replace auth provider * Sc * Delete AP after rebase * Discover users * Cleanup * More cleanup * Replace profile provider * Fixed build failure * Fixed a bug reported * Prevent app crash when backend server is down --- src/store/initialStates.ts | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/store/initialStates.ts (limited to 'src/store/initialStates.ts') diff --git a/src/store/initialStates.ts b/src/store/initialStates.ts new file mode 100644 index 00000000..4087b97c --- /dev/null +++ b/src/store/initialStates.ts @@ -0,0 +1,95 @@ +import {MomentType} from 'src/types'; +import { + ProfileType, + SocialAccountType, + ProfilePreviewType, + ScreenType, + UserXType, + UserType, +} from '../types'; + +export const NO_PROFILE: ProfileType = { + biography: '', + website: '', + name: '', + gender: '', + birthday: undefined, +}; + +export const EMPTY_MOMENTS_LIST = []; + +export const NO_USER: UserType = { + userId: '', + username: '', +}; + +export const EMPTY_PROFILE_PREVIEW_LIST = []; + +export const NO_USER_DATA = { + user: NO_USER, + profile: NO_PROFILE, + avatar: '', + cover: '', +}; + +export const NO_FOLLOW_DATA = { + followers: EMPTY_PROFILE_PREVIEW_LIST, + following: EMPTY_PROFILE_PREVIEW_LIST, +}; + +export const NO_MOMENTS = { + moments: EMPTY_MOMENTS_LIST, +}; + +export const NO_SOCIAL_ACCOUNTS: Record = { + Instagram: {posts: []}, + Facebook: {posts: []}, + Twitter: {posts: []}, +}; + +export const NO_TAGG_USERS = { + recentSearches: EMPTY_PROFILE_PREVIEW_LIST, + taggUsers: EMPTY_PROFILE_PREVIEW_LIST, +}; + +export const NO_SOCIALS = { + socialAccounts: NO_SOCIAL_ACCOUNTS, +}; + +export const NO_BLOCKED_USERS = { + blockedUsers: EMPTY_PROFILE_PREVIEW_LIST, +}; + +/** + * The dummy userId and username serve the purpose of preventing app crash + * For instance, if it may happen that data in our store is not loaded yet for the userXId being visited. + * Then we will set the userXId / username to this dummy username / userid + */ +export const DUMMY_USERID = 'ID-1234-567'; +export const DUMMY_USERNAME = 'tagg_userX'; + +export const EMPTY_USER_X = { + followers: EMPTY_PROFILE_PREVIEW_LIST, + following: EMPTY_PROFILE_PREVIEW_LIST, + moments: EMPTY_MOMENTS_LIST, + socialAccounts: NO_SOCIAL_ACCOUNTS, + user: NO_USER, + profile: NO_PROFILE, + avatar: '', + cover: '', +}; + +/** + * A dummy userX to always be there in out initial app state + */ +export const EMPTY_USERX_LIST = >{ + [DUMMY_USERID]: EMPTY_USER_X, +}; + +export const EMPTY_SCREEN_TO_USERS_LIST: Record< + ScreenType, + Record +> = { + [ScreenType.Profile]: EMPTY_USERX_LIST, + [ScreenType.Search]: EMPTY_USERX_LIST, +}; -- cgit v1.2.3-70-g09d2