|  |  | @ -7,12 +7,18 @@ import { | 
			
		
	
		
			
				
					|  |  |  |   ORBIT_DB_REPLICATED, | 
			
		
	
		
			
				
					|  |  |  |   ORBIT_DB_WRITE, | 
			
		
	
		
			
				
					|  |  |  | } from '@ezerous/breeze/src/orbit/orbitActions'; | 
			
		
	
		
			
				
					|  |  |  | import { POSTS_DATABASE, TOPICS_DATABASE, USER_DATABASE } from 'concordia-shared/src/constants/orbit/OrbitDatabases'; | 
			
		
	
		
			
				
					|  |  |  | import { | 
			
		
	
		
			
				
					|  |  |  |   POLLS_DATABASE, | 
			
		
	
		
			
				
					|  |  |  |   POSTS_DATABASE, | 
			
		
	
		
			
				
					|  |  |  |   TOPICS_DATABASE, | 
			
		
	
		
			
				
					|  |  |  |   USER_DATABASE, | 
			
		
	
		
			
				
					|  |  |  | } from 'concordia-shared/src/constants/orbit/OrbitDatabases'; | 
			
		
	
		
			
				
					|  |  |  | import determineKVAddress from '../../utils/orbitUtils'; | 
			
		
	
		
			
				
					|  |  |  | import { FETCH_USER_DATABASE, UPDATE_ORBIT_DATA } from '../actions/peerDbReplicationActions'; | 
			
		
	
		
			
				
					|  |  |  | import userDatabaseKeys from '../../constants/orbit/UserDatabaseKeys'; | 
			
		
	
		
			
				
					|  |  |  | import { TOPIC_SUBJECT } from '../../constants/orbit/TopicsDatabaseKeys'; | 
			
		
	
		
			
				
					|  |  |  | import { POST_CONTENT } from '../../constants/orbit/PostsDatabaseKeys'; | 
			
		
	
		
			
				
					|  |  |  | import { POLL_OPTIONS, POLL_QUESTION } from '../../constants/orbit/PollsDatabaseKeys'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | function* fetchUserDb({ orbit, userAddress, dbName }) { | 
			
		
	
		
			
				
					|  |  |  |   const peerDbAddress = yield call(determineKVAddress, { | 
			
		
	
	
		
			
				
					|  |  | @ -23,10 +29,13 @@ function* fetchUserDb({ orbit, userAddress, dbName }) { | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | function* updateReduxState({ database }) { | 
			
		
	
		
			
				
					|  |  |  |   const { users, topics, posts } = yield select((state) => ({ | 
			
		
	
		
			
				
					|  |  |  |   const { | 
			
		
	
		
			
				
					|  |  |  |     users, topics, posts, polls, | 
			
		
	
		
			
				
					|  |  |  |   } = yield select((state) => ({ | 
			
		
	
		
			
				
					|  |  |  |     users: state.orbitData.users, | 
			
		
	
		
			
				
					|  |  |  |     topics: state.orbitData.topics, | 
			
		
	
		
			
				
					|  |  |  |     posts: state.orbitData.posts, | 
			
		
	
		
			
				
					|  |  |  |     polls: state.orbitData.polls, | 
			
		
	
		
			
				
					|  |  |  |   })); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   if (database.dbname === USER_DATABASE) { | 
			
		
	
	
		
			
				
					|  |  | @ -53,6 +62,7 @@ function* updateReduxState({ database }) { | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |       topics: [...topics], | 
			
		
	
		
			
				
					|  |  |  |       posts: [...posts], | 
			
		
	
		
			
				
					|  |  |  |       polls: [...polls], | 
			
		
	
		
			
				
					|  |  |  |     }); | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -76,6 +86,7 @@ function* updateReduxState({ database }) { | 
			
		
	
		
			
				
					|  |  |  |           })), | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |       posts: [...posts], | 
			
		
	
		
			
				
					|  |  |  |       polls: [...polls], | 
			
		
	
		
			
				
					|  |  |  |     }); | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -97,6 +108,32 @@ function* updateReduxState({ database }) { | 
			
		
	
		
			
				
					|  |  |  |           [POST_CONTENT]: value[POST_CONTENT], | 
			
		
	
		
			
				
					|  |  |  |         })), | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |       polls: [...polls], | 
			
		
	
		
			
				
					|  |  |  |     }); | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   if (database.dbname === POLLS_DATABASE) { | 
			
		
	
		
			
				
					|  |  |  |     const oldPollsUnchanged = polls | 
			
		
	
		
			
				
					|  |  |  |       .filter((poll) => !Object | 
			
		
	
		
			
				
					|  |  |  |         .keys(database.all) | 
			
		
	
		
			
				
					|  |  |  |         .map((key) => parseInt(key, 10)) | 
			
		
	
		
			
				
					|  |  |  |         .includes(poll.id)); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     yield put({ | 
			
		
	
		
			
				
					|  |  |  |       type: UPDATE_ORBIT_DATA, | 
			
		
	
		
			
				
					|  |  |  |       users: [...users], | 
			
		
	
		
			
				
					|  |  |  |       topics: [...topics], | 
			
		
	
		
			
				
					|  |  |  |       posts: [...posts], | 
			
		
	
		
			
				
					|  |  |  |       polls: [ | 
			
		
	
		
			
				
					|  |  |  |         ...oldPollsUnchanged, | 
			
		
	
		
			
				
					|  |  |  |         ...Object.entries(database.all).map(([key, value]) => ({ | 
			
		
	
		
			
				
					|  |  |  |           id: parseInt(key, 10), | 
			
		
	
		
			
				
					|  |  |  |           [POLL_QUESTION]: value[POLL_QUESTION], | 
			
		
	
		
			
				
					|  |  |  |           [POLL_OPTIONS]: [ | 
			
		
	
		
			
				
					|  |  |  |             ...value[POLL_OPTIONS], | 
			
		
	
		
			
				
					|  |  |  |           ], | 
			
		
	
		
			
				
					|  |  |  |         })), | 
			
		
	
		
			
				
					|  |  |  |       ], | 
			
		
	
		
			
				
					|  |  |  |     }); | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
	
		
			
				
					|  |  | 
 |