Use casual for mock data
This commit is contained in:
parent
f0bf3a075f
commit
ea058371ed
7 changed files with 195 additions and 457 deletions
|
@ -264,6 +264,7 @@
|
||||||
"babel-core": "7.0.0-bridge.0",
|
"babel-core": "7.0.0-bridge.0",
|
||||||
"babel-loader": "8.0.6",
|
"babel-loader": "8.0.6",
|
||||||
"babel-plugin-lodash": "3.3.4",
|
"babel-plugin-lodash": "3.3.4",
|
||||||
|
"casual": "1.6.2",
|
||||||
"chai": "4.3.4",
|
"chai": "4.3.4",
|
||||||
"chai-as-promised": "7.1.1",
|
"chai-as-promised": "7.1.1",
|
||||||
"core-js": "2.6.9",
|
"core-js": "2.6.9",
|
||||||
|
@ -314,7 +315,7 @@
|
||||||
"fabric/jsdom": "https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz",
|
"fabric/jsdom": "https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz",
|
||||||
"fast-glob/glob-parent": "5.1.2",
|
"fast-glob/glob-parent": "5.1.2",
|
||||||
"read-last-lines/mz/thenify-all/thenify": "3.3.1",
|
"read-last-lines/mz/thenify-all/thenify": "3.3.1",
|
||||||
"sharp/color/color-string": "1.7.4"
|
"sharp/color/color-string": "1.9.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "16.13.2"
|
"node": "16.13.2"
|
||||||
|
|
21
patches/casual+1.6.2.patch
Normal file
21
patches/casual+1.6.2.patch
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
diff --git a/node_modules/casual/src/casual.js b/node_modules/casual/src/casual.js
|
||||||
|
index 9179af1..ed70b78 100644
|
||||||
|
--- a/node_modules/casual/src/casual.js
|
||||||
|
+++ b/node_modules/casual/src/casual.js
|
||||||
|
@@ -1,11 +1,11 @@
|
||||||
|
var helpers = require('./helpers');
|
||||||
|
-var exists = require('fs').existsSync;
|
||||||
|
|
||||||
|
var safe_require = function(filename) {
|
||||||
|
- if (exists(filename + '.js')) {
|
||||||
|
- return require(filename);
|
||||||
|
- }
|
||||||
|
- return {};
|
||||||
|
+ try {
|
||||||
|
+ return require(filename);
|
||||||
|
+ } catch (err) {
|
||||||
|
+ return {};
|
||||||
|
+ }
|
||||||
|
};
|
||||||
|
|
||||||
|
var build_casual = function() {
|
|
@ -1,181 +1,175 @@
|
||||||
// Copyright 2021 Signal Messenger, LLC
|
// Copyright 2021 Signal Messenger, LLC
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
import type { Meta, Story } from '@storybook/react';
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
import casual from 'casual';
|
||||||
import { text, boolean, select } from '@storybook/addon-knobs';
|
|
||||||
import { action } from '@storybook/addon-actions';
|
|
||||||
|
|
||||||
import type { PropsType } from './ProfileEditor';
|
import type { PropsType } from './ProfileEditor';
|
||||||
import { ProfileEditor } from './ProfileEditor';
|
|
||||||
import { setupI18n } from '../util/setupI18n';
|
|
||||||
import enMessages from '../../_locales/en/messages.json';
|
import enMessages from '../../_locales/en/messages.json';
|
||||||
import {
|
import { ProfileEditor } from './ProfileEditor';
|
||||||
getFirstName,
|
import { UUID } from '../types/UUID';
|
||||||
getLastName,
|
|
||||||
} from '../test-both/helpers/getDefaultConversation';
|
|
||||||
import { getRandomColor } from '../test-both/helpers/getRandomColor';
|
|
||||||
import { UsernameSaveState } from '../state/ducks/conversationsEnums';
|
import { UsernameSaveState } from '../state/ducks/conversationsEnums';
|
||||||
|
import { getRandomColor } from '../test-both/helpers/getRandomColor';
|
||||||
|
import { setupI18n } from '../util/setupI18n';
|
||||||
|
|
||||||
const i18n = setupI18n('en', enMessages);
|
const i18n = setupI18n('en', enMessages);
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
component: ProfileEditor,
|
||||||
title: 'Components/ProfileEditor',
|
title: 'Components/ProfileEditor',
|
||||||
};
|
argTypes: {
|
||||||
|
aboutEmoji: {
|
||||||
|
defaultValue: '',
|
||||||
|
},
|
||||||
|
aboutText: {
|
||||||
|
defaultValue: casual.sentence,
|
||||||
|
},
|
||||||
|
profileAvatarPath: {
|
||||||
|
defaultValue: undefined,
|
||||||
|
},
|
||||||
|
clearUsernameSave: { action: true },
|
||||||
|
conversationId: {
|
||||||
|
defaultValue: UUID.generate().toString(),
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
defaultValue: getRandomColor(),
|
||||||
|
},
|
||||||
|
deleteAvatarFromDisk: { action: true },
|
||||||
|
familyName: {
|
||||||
|
defaultValue: casual.last_name,
|
||||||
|
},
|
||||||
|
firstName: {
|
||||||
|
defaultValue: casual.first_name,
|
||||||
|
},
|
||||||
|
i18n: {
|
||||||
|
defaultValue: i18n,
|
||||||
|
},
|
||||||
|
isUsernameFlagEnabled: {
|
||||||
|
control: { type: 'checkbox' },
|
||||||
|
defaultValue: false,
|
||||||
|
},
|
||||||
|
onEditStateChanged: { action: true },
|
||||||
|
onProfileChanged: { action: true },
|
||||||
|
onSetSkinTone: { action: true },
|
||||||
|
recentEmojis: {
|
||||||
|
defaultValue: [],
|
||||||
|
},
|
||||||
|
replaceAvatar: { action: true },
|
||||||
|
saveAvatarToDisk: { action: true },
|
||||||
|
saveUsername: { action: true },
|
||||||
|
skinTone: {
|
||||||
|
defaultValue: 0,
|
||||||
|
},
|
||||||
|
userAvatarData: {
|
||||||
|
defaultValue: [],
|
||||||
|
},
|
||||||
|
username: {
|
||||||
|
defaultValue: casual.username,
|
||||||
|
},
|
||||||
|
usernameSaveState: {
|
||||||
|
control: { type: 'radio' },
|
||||||
|
defaultValue: UsernameSaveState.None,
|
||||||
|
options: {
|
||||||
|
None: UsernameSaveState.None,
|
||||||
|
Saving: UsernameSaveState.Saving,
|
||||||
|
UsernameTakenError: UsernameSaveState.UsernameTakenError,
|
||||||
|
UsernameMalformedError: UsernameSaveState.UsernameMalformedError,
|
||||||
|
GeneralError: UsernameSaveState.GeneralError,
|
||||||
|
DeleteFailed: UsernameSaveState.DeleteFailed,
|
||||||
|
Success: UsernameSaveState.Success,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
} as Meta;
|
||||||
|
|
||||||
const createProps = (overrideProps: Partial<PropsType> = {}): PropsType => ({
|
const Template: Story<PropsType> = args => {
|
||||||
aboutEmoji: overrideProps.aboutEmoji,
|
|
||||||
aboutText: text('about', overrideProps.aboutText || ''),
|
|
||||||
profileAvatarPath: overrideProps.profileAvatarPath,
|
|
||||||
clearUsernameSave: action('clearUsernameSave'),
|
|
||||||
conversationId: '123',
|
|
||||||
color: overrideProps.color || getRandomColor(),
|
|
||||||
deleteAvatarFromDisk: action('deleteAvatarFromDisk'),
|
|
||||||
familyName: overrideProps.familyName,
|
|
||||||
firstName: text('firstName', overrideProps.firstName || getFirstName()),
|
|
||||||
i18n,
|
|
||||||
isUsernameFlagEnabled: boolean(
|
|
||||||
'isUsernameFlagEnabled',
|
|
||||||
overrideProps.isUsernameFlagEnabled !== undefined
|
|
||||||
? overrideProps.isUsernameFlagEnabled
|
|
||||||
: false
|
|
||||||
),
|
|
||||||
onEditStateChanged: action('onEditStateChanged'),
|
|
||||||
onProfileChanged: action('onProfileChanged'),
|
|
||||||
onSetSkinTone: overrideProps.onSetSkinTone || action('onSetSkinTone'),
|
|
||||||
recentEmojis: [],
|
|
||||||
replaceAvatar: action('replaceAvatar'),
|
|
||||||
saveAvatarToDisk: action('saveAvatarToDisk'),
|
|
||||||
saveUsername: action('saveUsername'),
|
|
||||||
skinTone: overrideProps.skinTone || 0,
|
|
||||||
userAvatarData: [],
|
|
||||||
username: overrideProps.username,
|
|
||||||
usernameSaveState: select(
|
|
||||||
'usernameSaveState',
|
|
||||||
Object.values(UsernameSaveState),
|
|
||||||
overrideProps.usernameSaveState || UsernameSaveState.None
|
|
||||||
),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const FullSet = (): JSX.Element => {
|
|
||||||
const [skinTone, setSkinTone] = useState(0);
|
const [skinTone, setSkinTone] = useState(0);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ProfileEditor
|
<ProfileEditor {...args} skinTone={skinTone} onSetSkinTone={setSkinTone} />
|
||||||
{...createProps({
|
|
||||||
aboutEmoji: '🙏',
|
|
||||||
aboutText: 'Live. Laugh. Love',
|
|
||||||
profileAvatarPath: '/fixtures/kitten-3-64-64.jpg',
|
|
||||||
onSetSkinTone: setSkinTone,
|
|
||||||
familyName: getLastName(),
|
|
||||||
skinTone,
|
|
||||||
})}
|
|
||||||
/>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const WithFullName = (): JSX.Element => (
|
export const FullSet = Template.bind({});
|
||||||
<ProfileEditor
|
FullSet.args = {
|
||||||
{...createProps({
|
aboutEmoji: '🙏',
|
||||||
familyName: getLastName(),
|
aboutText: 'Live. Laugh. Love',
|
||||||
})}
|
familyName: casual.last_name,
|
||||||
/>
|
firstName: casual.first_name,
|
||||||
);
|
profileAvatarPath: '/fixtures/kitten-3-64-64.jpg',
|
||||||
|
};
|
||||||
|
|
||||||
|
export const WithFullName = Template.bind({});
|
||||||
|
WithFullName.args = {
|
||||||
|
familyName: casual.last_name,
|
||||||
|
};
|
||||||
WithFullName.story = {
|
WithFullName.story = {
|
||||||
name: 'with Full Name',
|
name: 'with Full Name',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const WithCustomAbout = (): JSX.Element => (
|
export const WithCustomAbout = Template.bind({});
|
||||||
<ProfileEditor
|
WithCustomAbout.args = {
|
||||||
{...createProps({
|
|
||||||
aboutEmoji: '🙏',
|
aboutEmoji: '🙏',
|
||||||
aboutText: 'Live. Laugh. Love',
|
aboutText: 'Live. Laugh. Love',
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
WithCustomAbout.story = {
|
WithCustomAbout.story = {
|
||||||
name: 'with Custom About',
|
name: 'with Custom About',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const WithUsernameFlagEnabled = (): JSX.Element => (
|
export const WithUsernameFlagEnabled = Template.bind({});
|
||||||
<ProfileEditor
|
WithUsernameFlagEnabled.args = {
|
||||||
{...createProps({
|
|
||||||
isUsernameFlagEnabled: true,
|
isUsernameFlagEnabled: true,
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
WithUsernameFlagEnabled.story = {
|
WithUsernameFlagEnabled.story = {
|
||||||
name: 'with Username flag enabled',
|
name: 'with Username flag enabled',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const WithUsernameFlagEnabledAndUsername = (): JSX.Element => (
|
export const WithUsernameFlagEnabledAndUsername = Template.bind({});
|
||||||
<ProfileEditor
|
WithUsernameFlagEnabledAndUsername.args = {
|
||||||
{...createProps({
|
|
||||||
isUsernameFlagEnabled: true,
|
isUsernameFlagEnabled: true,
|
||||||
username: 'unicorn55',
|
username: casual.username,
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
WithUsernameFlagEnabledAndUsername.story = {
|
WithUsernameFlagEnabledAndUsername.story = {
|
||||||
name: 'with Username flag enabled and username',
|
name: 'with Username flag enabled and username',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const UsernameEditingSaving = (): JSX.Element => (
|
export const UsernameEditingSaving = Template.bind({});
|
||||||
<ProfileEditor
|
UsernameEditingSaving.args = {
|
||||||
{...createProps({
|
|
||||||
isUsernameFlagEnabled: true,
|
isUsernameFlagEnabled: true,
|
||||||
usernameSaveState: UsernameSaveState.Saving,
|
usernameSaveState: UsernameSaveState.Saving,
|
||||||
username: 'unicorn55',
|
username: casual.username,
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
UsernameEditingSaving.story = {
|
UsernameEditingSaving.story = {
|
||||||
name: 'Username editing, saving',
|
name: 'Username editing, saving',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const UsernameEditingUsernameTaken = (): JSX.Element => (
|
export const UsernameEditingUsernameTaken = Template.bind({});
|
||||||
<ProfileEditor
|
UsernameEditingUsernameTaken.args = {
|
||||||
{...createProps({
|
|
||||||
isUsernameFlagEnabled: true,
|
isUsernameFlagEnabled: true,
|
||||||
usernameSaveState: UsernameSaveState.UsernameTakenError,
|
usernameSaveState: UsernameSaveState.UsernameTakenError,
|
||||||
username: 'unicorn55',
|
username: casual.username,
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
UsernameEditingUsernameTaken.story = {
|
UsernameEditingUsernameTaken.story = {
|
||||||
name: 'Username editing, username taken',
|
name: 'Username editing, username taken',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const UsernameEditingUsernameMalformed = (): JSX.Element => (
|
export const UsernameEditingUsernameMalformed = Template.bind({});
|
||||||
<ProfileEditor
|
UsernameEditingUsernameMalformed.args = {
|
||||||
{...createProps({
|
|
||||||
isUsernameFlagEnabled: true,
|
isUsernameFlagEnabled: true,
|
||||||
usernameSaveState: UsernameSaveState.UsernameMalformedError,
|
usernameSaveState: UsernameSaveState.UsernameMalformedError,
|
||||||
username: 'unicorn55',
|
username: casual.username,
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
UsernameEditingUsernameMalformed.story = {
|
UsernameEditingUsernameMalformed.story = {
|
||||||
name: 'Username editing, username malformed',
|
name: 'Username editing, username malformed',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const UsernameEditingGeneralError = (): JSX.Element => (
|
export const UsernameEditingGeneralError = Template.bind({});
|
||||||
<ProfileEditor
|
UsernameEditingGeneralError.args = {
|
||||||
{...createProps({
|
|
||||||
isUsernameFlagEnabled: true,
|
isUsernameFlagEnabled: true,
|
||||||
usernameSaveState: UsernameSaveState.GeneralError,
|
usernameSaveState: UsernameSaveState.GeneralError,
|
||||||
username: 'unicorn55',
|
username: casual.username,
|
||||||
})}
|
};
|
||||||
/>
|
|
||||||
);
|
|
||||||
|
|
||||||
UsernameEditingGeneralError.story = {
|
UsernameEditingGeneralError.story = {
|
||||||
name: 'Username editing, general error',
|
name: 'Username editing, general error',
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright 2020-2022 Signal Messenger, LLC
|
// Copyright 2020-2022 Signal Messenger, LLC
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
import { v4 as generateUuid } from 'uuid';
|
import casual from 'casual';
|
||||||
import { sample } from 'lodash';
|
import { sample } from 'lodash';
|
||||||
import type { ConversationType } from '../../state/ducks/conversations';
|
import type { ConversationType } from '../../state/ducks/conversations';
|
||||||
import { UUID } from '../../types/UUID';
|
import { UUID } from '../../types/UUID';
|
||||||
|
@ -9,315 +9,6 @@ import type { UUIDStringType } from '../../types/UUID';
|
||||||
import { getRandomColor } from './getRandomColor';
|
import { getRandomColor } from './getRandomColor';
|
||||||
import { ConversationColors } from '../../types/Colors';
|
import { ConversationColors } from '../../types/Colors';
|
||||||
|
|
||||||
const FIRST_NAMES = [
|
|
||||||
'James',
|
|
||||||
'John',
|
|
||||||
'Robert',
|
|
||||||
'Michael',
|
|
||||||
'William',
|
|
||||||
'David',
|
|
||||||
'Richard',
|
|
||||||
'Joseph',
|
|
||||||
'Thomas',
|
|
||||||
'Charles',
|
|
||||||
'Christopher',
|
|
||||||
'Daniel',
|
|
||||||
'Matthew',
|
|
||||||
'Anthony',
|
|
||||||
'Donald',
|
|
||||||
'Mark',
|
|
||||||
'Paul',
|
|
||||||
'Steven',
|
|
||||||
'Andrew',
|
|
||||||
'Kenneth',
|
|
||||||
'Joshua',
|
|
||||||
'Kevin',
|
|
||||||
'Brian',
|
|
||||||
'George',
|
|
||||||
'Edward',
|
|
||||||
'Ronald',
|
|
||||||
'Timothy',
|
|
||||||
'Jason',
|
|
||||||
'Jeffrey',
|
|
||||||
'Ryan',
|
|
||||||
'Jacob',
|
|
||||||
'Gary',
|
|
||||||
'Nicholas',
|
|
||||||
'Eric',
|
|
||||||
'Jonathan',
|
|
||||||
'Stephen',
|
|
||||||
'Larry',
|
|
||||||
'Justin',
|
|
||||||
'Scott',
|
|
||||||
'Brandon',
|
|
||||||
'Benjamin',
|
|
||||||
'Samuel',
|
|
||||||
'Frank',
|
|
||||||
'Gregory',
|
|
||||||
'Raymond',
|
|
||||||
'Alexander',
|
|
||||||
'Patrick',
|
|
||||||
'Jack',
|
|
||||||
'Dennis',
|
|
||||||
'Jerry',
|
|
||||||
'Tyler',
|
|
||||||
'Aaron',
|
|
||||||
'Jose',
|
|
||||||
'Henry',
|
|
||||||
'Adam',
|
|
||||||
'Douglas',
|
|
||||||
'Nathan',
|
|
||||||
'Peter',
|
|
||||||
'Zachary',
|
|
||||||
'Kyle',
|
|
||||||
'Walter',
|
|
||||||
'Harold',
|
|
||||||
'Jeremy',
|
|
||||||
'Ethan',
|
|
||||||
'Carl',
|
|
||||||
'Keith',
|
|
||||||
'Roger',
|
|
||||||
'Gerald',
|
|
||||||
'Christian',
|
|
||||||
'Terry',
|
|
||||||
'Sean',
|
|
||||||
'Arthur',
|
|
||||||
'Austin',
|
|
||||||
'Noah',
|
|
||||||
'Lawrence',
|
|
||||||
'Jesse',
|
|
||||||
'Joe',
|
|
||||||
'Bryan',
|
|
||||||
'Billy',
|
|
||||||
'Jordan',
|
|
||||||
'Albert',
|
|
||||||
'Dylan',
|
|
||||||
'Bruce',
|
|
||||||
'Willie',
|
|
||||||
'Gabriel',
|
|
||||||
'Alan',
|
|
||||||
'Juan',
|
|
||||||
'Logan',
|
|
||||||
'Wayne',
|
|
||||||
'Ralph',
|
|
||||||
'Roy',
|
|
||||||
'Eugene',
|
|
||||||
'Randy',
|
|
||||||
'Vincent',
|
|
||||||
'Russell',
|
|
||||||
'Louis',
|
|
||||||
'Philip',
|
|
||||||
'Bobby',
|
|
||||||
'Johnny',
|
|
||||||
'Bradley',
|
|
||||||
'Mary',
|
|
||||||
'Patricia',
|
|
||||||
'Jennifer',
|
|
||||||
'Linda',
|
|
||||||
'Elizabeth',
|
|
||||||
'Barbara',
|
|
||||||
'Susan',
|
|
||||||
'Jessica',
|
|
||||||
'Sarah',
|
|
||||||
'Karen',
|
|
||||||
'Nancy',
|
|
||||||
'Lisa',
|
|
||||||
'Margaret',
|
|
||||||
'Betty',
|
|
||||||
'Sandra',
|
|
||||||
'Ashley',
|
|
||||||
'Dorothy',
|
|
||||||
'Kimberly',
|
|
||||||
'Emily',
|
|
||||||
'Donna',
|
|
||||||
'Michelle',
|
|
||||||
'Carol',
|
|
||||||
'Amanda',
|
|
||||||
'Melissa',
|
|
||||||
'Deborah',
|
|
||||||
'Stephanie',
|
|
||||||
'Rebecca',
|
|
||||||
'Laura',
|
|
||||||
'Sharon',
|
|
||||||
'Cynthia',
|
|
||||||
'Kathleen',
|
|
||||||
'Amy',
|
|
||||||
'Shirley',
|
|
||||||
'Angela',
|
|
||||||
'Helen',
|
|
||||||
'Anna',
|
|
||||||
'Brenda',
|
|
||||||
'Pamela',
|
|
||||||
'Nicole',
|
|
||||||
'Samantha',
|
|
||||||
'Katherine',
|
|
||||||
'Emma',
|
|
||||||
'Ruth',
|
|
||||||
'Christine',
|
|
||||||
'Catherine',
|
|
||||||
'Debra',
|
|
||||||
'Rachel',
|
|
||||||
'Carolyn',
|
|
||||||
'Janet',
|
|
||||||
'Virginia',
|
|
||||||
'Maria',
|
|
||||||
'Heather',
|
|
||||||
'Diane',
|
|
||||||
'Julie',
|
|
||||||
'Joyce',
|
|
||||||
'Victoria',
|
|
||||||
'Kelly',
|
|
||||||
'Christina',
|
|
||||||
'Lauren',
|
|
||||||
'Joan',
|
|
||||||
'Evelyn',
|
|
||||||
'Olivia',
|
|
||||||
'Judith',
|
|
||||||
'Megan',
|
|
||||||
'Cheryl',
|
|
||||||
'Martha',
|
|
||||||
'Andrea',
|
|
||||||
'Frances',
|
|
||||||
'Hannah',
|
|
||||||
'Jacqueline',
|
|
||||||
'Ann',
|
|
||||||
'Gloria',
|
|
||||||
'Jean',
|
|
||||||
'Kathryn',
|
|
||||||
'Alice',
|
|
||||||
'Teresa',
|
|
||||||
'Sara',
|
|
||||||
'Janice',
|
|
||||||
'Doris',
|
|
||||||
'Madison',
|
|
||||||
'Julia',
|
|
||||||
'Grace',
|
|
||||||
'Judy',
|
|
||||||
'Abigail',
|
|
||||||
'Marie',
|
|
||||||
'Denise',
|
|
||||||
'Beverly',
|
|
||||||
'Amber',
|
|
||||||
'Theresa',
|
|
||||||
'Marilyn',
|
|
||||||
'Danielle',
|
|
||||||
'Diana',
|
|
||||||
'Brittany',
|
|
||||||
'Natalie',
|
|
||||||
'Sophia',
|
|
||||||
'Rose',
|
|
||||||
'Isabella',
|
|
||||||
'Alexis',
|
|
||||||
'Kayla',
|
|
||||||
'Charlotte',
|
|
||||||
];
|
|
||||||
|
|
||||||
const LAST_NAMES = [
|
|
||||||
'Smith',
|
|
||||||
'Johnson',
|
|
||||||
'Williams',
|
|
||||||
'Brown',
|
|
||||||
'Jones',
|
|
||||||
'Garcia',
|
|
||||||
'Miller',
|
|
||||||
'Davis',
|
|
||||||
'Rodriguez',
|
|
||||||
'Martinez',
|
|
||||||
'Hernandez',
|
|
||||||
'Lopez',
|
|
||||||
'Gonzales',
|
|
||||||
'Wilson',
|
|
||||||
'Anderson',
|
|
||||||
'Thomas',
|
|
||||||
'Taylor',
|
|
||||||
'Moore',
|
|
||||||
'Jackson',
|
|
||||||
'Martin',
|
|
||||||
'Lee',
|
|
||||||
'Perez',
|
|
||||||
'Thompson',
|
|
||||||
'White',
|
|
||||||
'Harris',
|
|
||||||
'Sanchez',
|
|
||||||
'Clark',
|
|
||||||
'Ramirez',
|
|
||||||
'Lewis',
|
|
||||||
'Robinson',
|
|
||||||
'Walker',
|
|
||||||
'Young',
|
|
||||||
'Allen',
|
|
||||||
'King',
|
|
||||||
'Wright',
|
|
||||||
'Scott',
|
|
||||||
'Torres',
|
|
||||||
'Nguyen',
|
|
||||||
'Hill',
|
|
||||||
'Flores',
|
|
||||||
'Green',
|
|
||||||
'Adams',
|
|
||||||
'Nelson',
|
|
||||||
'Baker',
|
|
||||||
'Hall',
|
|
||||||
'Rivera',
|
|
||||||
'Campbell',
|
|
||||||
'Mitchell',
|
|
||||||
'Carter',
|
|
||||||
'Roberts',
|
|
||||||
'Gomez',
|
|
||||||
'Phillips',
|
|
||||||
'Evans',
|
|
||||||
'Turner',
|
|
||||||
'Diaz',
|
|
||||||
'Parker',
|
|
||||||
'Cruz',
|
|
||||||
'Edwards',
|
|
||||||
'Collins',
|
|
||||||
'Reyes',
|
|
||||||
'Stewart',
|
|
||||||
'Morris',
|
|
||||||
'Morales',
|
|
||||||
'Murphy',
|
|
||||||
'Cook',
|
|
||||||
'Rogers',
|
|
||||||
'Gutierrez',
|
|
||||||
'Ortiz',
|
|
||||||
'Morgan',
|
|
||||||
'Cooper',
|
|
||||||
'Peterson',
|
|
||||||
'Bailey',
|
|
||||||
'Reed',
|
|
||||||
'Kelly',
|
|
||||||
'Howard',
|
|
||||||
'Ramos',
|
|
||||||
'Kim',
|
|
||||||
'Cox',
|
|
||||||
'Ward',
|
|
||||||
'Richardson',
|
|
||||||
'Watson',
|
|
||||||
'Brooks',
|
|
||||||
'Chavez',
|
|
||||||
'Wood',
|
|
||||||
'James',
|
|
||||||
'Bennet',
|
|
||||||
'Gray',
|
|
||||||
'Mendoza',
|
|
||||||
'Ruiz',
|
|
||||||
'Hughes',
|
|
||||||
'Price',
|
|
||||||
'Alvarez',
|
|
||||||
'Castillo',
|
|
||||||
'Sanders',
|
|
||||||
'Patel',
|
|
||||||
'Myers',
|
|
||||||
'Long',
|
|
||||||
'Ross',
|
|
||||||
'Foster',
|
|
||||||
'Jimenez',
|
|
||||||
];
|
|
||||||
|
|
||||||
export const getFirstName = (): string => sample(FIRST_NAMES) || 'Test';
|
|
||||||
export const getLastName = (): string => sample(LAST_NAMES) || 'Test';
|
|
||||||
|
|
||||||
export const getAvatarPath = (): string =>
|
export const getAvatarPath = (): string =>
|
||||||
sample([
|
sample([
|
||||||
'/fixtures/kitten-1-64-64.jpg',
|
'/fixtures/kitten-1-64-64.jpg',
|
||||||
|
@ -328,20 +19,20 @@ export const getAvatarPath = (): string =>
|
||||||
export function getDefaultConversation(
|
export function getDefaultConversation(
|
||||||
overrideProps: Partial<ConversationType> = {}
|
overrideProps: Partial<ConversationType> = {}
|
||||||
): ConversationType {
|
): ConversationType {
|
||||||
const firstName = getFirstName();
|
const firstName = casual.first_name;
|
||||||
const lastName = getLastName();
|
const lastName = casual.last_name;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
acceptedMessageRequest: true,
|
acceptedMessageRequest: true,
|
||||||
avatarPath: getAvatarPath(),
|
avatarPath: getAvatarPath(),
|
||||||
badges: [],
|
badges: [],
|
||||||
e164: '+1300555000',
|
e164: `+${casual.phone.replace(/-/g, '')}`,
|
||||||
conversationColor: ConversationColors[0],
|
conversationColor: ConversationColors[0],
|
||||||
color: getRandomColor(),
|
color: getRandomColor(),
|
||||||
firstName,
|
firstName,
|
||||||
id: generateUuid(),
|
id: UUID.generate().toString(),
|
||||||
isMe: false,
|
isMe: false,
|
||||||
lastUpdated: Date.now(),
|
lastUpdated: casual.unix_time,
|
||||||
markedUnread: Boolean(overrideProps.markedUnread),
|
markedUnread: Boolean(overrideProps.markedUnread),
|
||||||
sharedGroupNames: [],
|
sharedGroupNames: [],
|
||||||
title: `${firstName} ${lastName}`,
|
title: `${firstName} ${lastName}`,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright 2022 Signal Messenger, LLC
|
// Copyright 2022 Signal Messenger, LLC
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
import { v4 as uuid } from 'uuid';
|
import casual from 'casual';
|
||||||
|
|
||||||
import type { AttachmentType } from '../../types/Attachment';
|
import type { AttachmentType } from '../../types/Attachment';
|
||||||
import type { ConversationType } from '../../state/ducks/conversations';
|
import type { ConversationType } from '../../state/ducks/conversations';
|
||||||
|
@ -11,6 +11,7 @@ import type {
|
||||||
StoryViewType,
|
StoryViewType,
|
||||||
} from '../../types/Stories';
|
} from '../../types/Stories';
|
||||||
import * as durations from '../../util/durations';
|
import * as durations from '../../util/durations';
|
||||||
|
import { UUID } from '../../types/UUID';
|
||||||
import { getDefaultConversation } from './getDefaultConversation';
|
import { getDefaultConversation } from './getDefaultConversation';
|
||||||
import { fakeAttachment, fakeThumbnail } from './fakeAttachment';
|
import { fakeAttachment, fakeThumbnail } from './fakeAttachment';
|
||||||
import { MY_STORIES_ID } from '../../types/Stories';
|
import { MY_STORIES_ID } from '../../types/Stories';
|
||||||
|
@ -23,16 +24,16 @@ function getAttachmentWithThumbnail(url: string): AttachmentType {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getFakeMyStory(id?: string, name?: string): MyStoryType {
|
export function getFakeMyStory(id?: string, name?: string): MyStoryType {
|
||||||
const storyCount = Math.ceil(Math.random() * 6 + 1);
|
const storyCount = casual.integer(2, 6);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
distributionId: id || uuid(),
|
distributionId: id || UUID.generate().toString(),
|
||||||
distributionName:
|
distributionName:
|
||||||
name || id === MY_STORIES_ID ? 'My Stories' : 'Private Distribution List',
|
name || id === MY_STORIES_ID ? 'My Stories' : casual.catch_phrase,
|
||||||
stories: Array.from(Array(storyCount), () => ({
|
stories: Array.from(Array(storyCount), () => ({
|
||||||
...getFakeStoryView(),
|
...getFakeStoryView(),
|
||||||
sendState: [],
|
sendState: [],
|
||||||
views: Math.floor(Math.random() * 20),
|
views: casual.integer(1, 20),
|
||||||
})),
|
})),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -47,9 +48,9 @@ export function getFakeStoryView(
|
||||||
attachment: getAttachmentWithThumbnail(
|
attachment: getAttachmentWithThumbnail(
|
||||||
attachmentUrl || '/fixtures/tina-rolf-269345-unsplash.jpg'
|
attachmentUrl || '/fixtures/tina-rolf-269345-unsplash.jpg'
|
||||||
),
|
),
|
||||||
hasReplies: Math.random() > 0.5,
|
hasReplies: Boolean(casual.coin_flip),
|
||||||
isUnread: Math.random() > 0.5,
|
isUnread: Boolean(casual.coin_flip),
|
||||||
messageId: uuid(),
|
messageId: UUID.generate().toString(),
|
||||||
sender,
|
sender,
|
||||||
timestamp: timestamp || Date.now() - 2 * durations.MINUTE,
|
timestamp: timestamp || Date.now() - 2 * durations.MINUTE,
|
||||||
};
|
};
|
||||||
|
|
|
@ -1752,6 +1752,18 @@
|
||||||
"reasonCategory": "falseMatch",
|
"reasonCategory": "falseMatch",
|
||||||
"updated": "2018-09-19T18:13:29.628Z"
|
"updated": "2018-09-19T18:13:29.628Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"rule": "jQuery-$(",
|
||||||
|
"path": "node_modules/casual/node_modules/moment/min/moment-with-locales.min.js",
|
||||||
|
"reasonCategory": "falseMatch",
|
||||||
|
"updated": "2022-07-07T22:51:10.163Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rule": "jQuery-$(",
|
||||||
|
"path": "node_modules/casual/node_modules/moment/min/moment.min.js",
|
||||||
|
"reasonCategory": "falseMatch",
|
||||||
|
"updated": "2022-07-07T22:51:10.163Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"rule": "eval",
|
"rule": "eval",
|
||||||
"path": "node_modules/config/lib/config.js",
|
"path": "node_modules/config/lib/config.js",
|
||||||
|
|
26
yarn.lock
26
yarn.lock
|
@ -5728,6 +5728,14 @@ case-sensitive-paths-webpack-plugin@^2.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
|
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
|
||||||
integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
|
integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
|
||||||
|
|
||||||
|
casual@1.6.2:
|
||||||
|
version "1.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/casual/-/casual-1.6.2.tgz#f56b87113ae99a6bba45e04bdfa068ca443f9e85"
|
||||||
|
integrity sha512-NQObL800rg32KZ9bBajHbyDjxLXxxuShChQg7A4tbSeG3n1t7VYGOSkzFSI9gkSgOHp+xilEJ7G0L5l6M30KYA==
|
||||||
|
dependencies:
|
||||||
|
mersenne-twister "^1.0.1"
|
||||||
|
moment "^2.15.2"
|
||||||
|
|
||||||
ccount@^1.0.0:
|
ccount@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043"
|
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043"
|
||||||
|
@ -6055,10 +6063,10 @@ color-name@^1.0.0, color-name@~1.1.4:
|
||||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||||
|
|
||||||
color-string@1.7.4, color-string@^1.9.0:
|
color-string@1.9.0, color-string@^1.9.0:
|
||||||
version "1.7.4"
|
version "1.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.7.4.tgz#79a7bf242610a8aa1b5e2681f3bf6bcfa666245f"
|
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
|
||||||
integrity sha512-nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg==
|
integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
color-name "^1.0.0"
|
color-name "^1.0.0"
|
||||||
simple-swizzle "^0.2.2"
|
simple-swizzle "^0.2.2"
|
||||||
|
@ -11443,6 +11451,11 @@ merge2@^1.4.1:
|
||||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
|
mersenne-twister@^1.0.1:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a"
|
||||||
|
integrity sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==
|
||||||
|
|
||||||
methods@~1.1.2:
|
methods@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||||
|
@ -11823,6 +11836,11 @@ moment@2.29.4:
|
||||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
||||||
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
||||||
|
|
||||||
|
moment@^2.15.2:
|
||||||
|
version "2.29.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
||||||
|
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
||||||
|
|
||||||
move-concurrently@^1.0.1:
|
move-concurrently@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
||||||
|
|
Loading…
Reference in a new issue