| 
									
										
										
										
											2023-01-03 11:55:46 -08:00
										 |  |  | // Copyright 2020 Signal Messenger, LLC
 | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  | // SPDX-License-Identifier: AGPL-3.0-only
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-20 17:29:09 -04:00
										 |  |  | import casual from 'casual'; | 
					
						
							| 
									
										
										
										
											2021-03-11 15:29:31 -06:00
										 |  |  | import { sample } from 'lodash'; | 
					
						
							| 
									
										
										
										
											2023-08-10 18:43:33 +02:00
										 |  |  | import { v4 as generateUuid } from 'uuid'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-26 14:15:33 -05:00
										 |  |  | import type { ConversationType } from '../../state/ducks/conversations'; | 
					
						
							| 
									
										
										
										
											2023-08-10 18:43:33 +02:00
										 |  |  | import type { ServiceIdString } from '../../types/ServiceId'; | 
					
						
							|  |  |  | import { generateAci } from '../../types/ServiceId'; | 
					
						
							| 
									
										
										
										
											2023-01-25 16:51:08 -07:00
										 |  |  | import type { GroupListItemConversationType } from '../../components/conversationList/GroupListItem'; | 
					
						
							| 
									
										
										
										
											2021-08-05 20:17:05 -04:00
										 |  |  | import { getRandomColor } from './getRandomColor'; | 
					
						
							| 
									
										
										
										
											2022-03-16 13:30:14 -04:00
										 |  |  | import { ConversationColors } from '../../types/Colors'; | 
					
						
							| 
									
										
										
										
											2022-11-19 00:31:18 -08:00
										 |  |  | import { StorySendMode } from '../../types/Stories'; | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-04 16:14:52 -05:00
										 |  |  | export const getAvatarPath = (): string => | 
					
						
							|  |  |  |   sample([ | 
					
						
							|  |  |  |     '/fixtures/kitten-1-64-64.jpg', | 
					
						
							|  |  |  |     '/fixtures/kitten-2-64-64.jpg', | 
					
						
							|  |  |  |     '/fixtures/kitten-3-64-64.jpg', | 
					
						
							|  |  |  |   ]) || ''; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  | export function getDefaultConversation( | 
					
						
							| 
									
										
										
										
											2021-03-11 15:29:31 -06:00
										 |  |  |   overrideProps: Partial<ConversationType> = {} | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  | ): ConversationType { | 
					
						
							| 
									
										
										
										
											2022-07-20 17:29:09 -04:00
										 |  |  |   const firstName = casual.first_name; | 
					
						
							|  |  |  |   const lastName = casual.last_name; | 
					
						
							| 
									
										
										
										
											2021-03-11 15:29:31 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  |   return { | 
					
						
							| 
									
										
										
										
											2021-05-07 17:21:10 -05:00
										 |  |  |     acceptedMessageRequest: true, | 
					
						
							| 
									
										
										
										
											2022-03-04 16:14:52 -05:00
										 |  |  |     avatarPath: getAvatarPath(), | 
					
						
							| 
									
										
										
										
											2021-11-02 18:01:13 -05:00
										 |  |  |     badges: [], | 
					
						
							| 
									
										
										
										
											2022-07-20 17:29:09 -04:00
										 |  |  |     e164: `+${casual.phone.replace(/-/g, '')}`, | 
					
						
							| 
									
										
										
										
											2022-03-16 13:30:14 -04:00
										 |  |  |     conversationColor: ConversationColors[0], | 
					
						
							| 
									
										
										
										
											2021-08-05 20:17:05 -04:00
										 |  |  |     color: getRandomColor(), | 
					
						
							| 
									
										
										
										
											2021-05-07 17:21:10 -05:00
										 |  |  |     firstName, | 
					
						
							| 
									
										
										
										
											2023-08-10 18:43:33 +02:00
										 |  |  |     id: generateUuid(), | 
					
						
							| 
									
										
										
										
											2021-05-07 17:21:10 -05:00
										 |  |  |     isMe: false, | 
					
						
							| 
									
										
										
										
											2022-07-20 17:29:09 -04:00
										 |  |  |     lastUpdated: casual.unix_time, | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  |     markedUnread: Boolean(overrideProps.markedUnread), | 
					
						
							| 
									
										
										
										
											2021-05-07 17:21:10 -05:00
										 |  |  |     sharedGroupNames: [], | 
					
						
							| 
									
										
										
										
											2021-03-11 15:29:31 -06:00
										 |  |  |     title: `${firstName} ${lastName}`, | 
					
						
							| 
									
										
										
										
											2022-09-26 13:18:11 -07:00
										 |  |  |     titleNoDefault: `${firstName} ${lastName}`, | 
					
						
							| 
									
										
										
										
											2023-08-16 22:54:39 +02:00
										 |  |  |     serviceId: generateAci(), | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  |     ...overrideProps, | 
					
						
							| 
									
										
										
										
											2022-11-19 00:31:18 -08:00
										 |  |  |     type: 'direct' as const, | 
					
						
							|  |  |  |     acknowledgedGroupNameCollisions: undefined, | 
					
						
							|  |  |  |     storySendMode: undefined, | 
					
						
							| 
									
										
										
										
											2020-12-08 14:37:04 -05:00
										 |  |  |   }; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-10-26 15:59:08 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-25 16:51:08 -07:00
										 |  |  | export function getDefaultGroupListItem( | 
					
						
							|  |  |  |   overrideProps: Partial<GroupListItemConversationType> = {} | 
					
						
							|  |  |  | ): GroupListItemConversationType { | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     ...getDefaultGroup(), | 
					
						
							|  |  |  |     disabledReason: undefined, | 
					
						
							|  |  |  |     membersCount: 24, | 
					
						
							|  |  |  |     memberships: [], | 
					
						
							|  |  |  |     ...overrideProps, | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-10 14:37:19 -04:00
										 |  |  | export function getDefaultGroup( | 
					
						
							|  |  |  |   overrideProps: Partial<ConversationType> = {} | 
					
						
							|  |  |  | ): ConversationType { | 
					
						
							|  |  |  |   const memberships = Array.from(Array(casual.integer(1, 20)), () => ({ | 
					
						
							| 
									
										
										
										
											2023-08-16 22:54:39 +02:00
										 |  |  |     aci: generateAci(), | 
					
						
							| 
									
										
										
										
											2022-08-10 14:37:19 -04:00
										 |  |  |     isAdmin: Boolean(casual.coin_flip), | 
					
						
							|  |  |  |   })); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     acceptedMessageRequest: true, | 
					
						
							|  |  |  |     announcementsOnly: false, | 
					
						
							|  |  |  |     avatarPath: getAvatarPath(), | 
					
						
							|  |  |  |     badges: [], | 
					
						
							|  |  |  |     color: getRandomColor(), | 
					
						
							|  |  |  |     conversationColor: ConversationColors[0], | 
					
						
							|  |  |  |     groupDescription: casual.sentence, | 
					
						
							| 
									
										
										
										
											2023-08-10 18:43:33 +02:00
										 |  |  |     groupId: generateUuid(), | 
					
						
							| 
									
										
										
										
											2022-08-10 14:37:19 -04:00
										 |  |  |     groupLink: casual.url, | 
					
						
							|  |  |  |     groupVersion: 2, | 
					
						
							| 
									
										
										
										
											2023-08-10 18:43:33 +02:00
										 |  |  |     id: generateUuid(), | 
					
						
							| 
									
										
										
										
											2022-08-10 14:37:19 -04:00
										 |  |  |     isMe: false, | 
					
						
							|  |  |  |     lastUpdated: casual.unix_time, | 
					
						
							|  |  |  |     markedUnread: Boolean(overrideProps.markedUnread), | 
					
						
							|  |  |  |     membersCount: memberships.length, | 
					
						
							|  |  |  |     memberships, | 
					
						
							|  |  |  |     sharedGroupNames: [], | 
					
						
							|  |  |  |     title: casual.title, | 
					
						
							| 
									
										
										
										
											2023-08-16 22:54:39 +02:00
										 |  |  |     serviceId: generateAci(), | 
					
						
							| 
									
										
										
										
											2022-11-19 00:31:18 -08:00
										 |  |  |     acknowledgedGroupNameCollisions: {}, | 
					
						
							|  |  |  |     storySendMode: StorySendMode.IfActive, | 
					
						
							| 
									
										
										
										
											2022-08-10 14:37:19 -04:00
										 |  |  |     ...overrideProps, | 
					
						
							| 
									
										
										
										
											2022-11-19 00:31:18 -08:00
										 |  |  |     type: 'group' as const, | 
					
						
							| 
									
										
										
										
											2022-08-10 14:37:19 -04:00
										 |  |  |   }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-16 22:54:39 +02:00
										 |  |  | export function getDefaultConversationWithServiceId( | 
					
						
							| 
									
										
										
										
											2021-10-26 15:59:08 -07:00
										 |  |  |   overrideProps: Partial<ConversationType> = {}, | 
					
						
							| 
									
										
										
										
											2023-08-16 22:54:39 +02:00
										 |  |  |   serviceId: ServiceIdString = generateAci() | 
					
						
							|  |  |  | ): ConversationType & { serviceId: ServiceIdString } { | 
					
						
							| 
									
										
										
										
											2021-10-26 15:59:08 -07:00
										 |  |  |   return { | 
					
						
							|  |  |  |     ...getDefaultConversation(overrideProps), | 
					
						
							| 
									
										
										
										
											2023-08-16 22:54:39 +02:00
										 |  |  |     serviceId, | 
					
						
							| 
									
										
										
										
											2021-10-26 15:59:08 -07:00
										 |  |  |   }; | 
					
						
							|  |  |  | } |