signal-desktop/ts/components/conversation/GroupNotification.stories.tsx

401 lines
8.9 KiB
TypeScript
Raw Normal View History

2023-01-03 19:55:46 +00:00
// Copyright 2020 Signal Messenger, LLC
2020-10-30 20:34:04 +00:00
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
2021-09-18 00:30:08 +00:00
import { setupI18n } from '../../util/setupI18n';
import enMessages from '../../../_locales/en/messages.json';
import type { Props } from './GroupNotification';
import { GroupNotification } from './GroupNotification';
import { getDefaultConversation } from '../../test-both/helpers/getDefaultConversation';
2022-06-07 00:48:02 +00:00
export default {
title: 'Components/Conversation',
};
const i18n = setupI18n('en', enMessages);
type GroupNotificationStory = [string, Array<Props>];
const longName = '🍷🐓🥶'.repeat(50);
const stories: Array<GroupNotificationStory> = [
[
'Combo',
[
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mrs. Ice',
phoneNumber: '(202) 555-1001',
}),
getDefaultConversation({
phoneNumber: '(202) 555-1002',
2020-07-24 01:35:32 +00:00
title: 'Ms. Earth',
}),
],
},
{ type: 'name', newName: 'Fishing Stories' },
{ type: 'avatar' },
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mrs. Ice',
phoneNumber: '(202) 555-1001',
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Ms. Earth',
phoneNumber: '(202) 555-1002',
}),
],
},
{ type: 'name', newName: 'Fishing Stories' },
{ type: 'avatar' },
],
i18n,
},
],
],
[
'Joined group',
[
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: '(202) 555-1000',
phoneNumber: '(202) 555-1000',
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mrs. Ice',
phoneNumber: '(202) 555-1001',
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Ms. Earth',
phoneNumber: '(202) 555-1002',
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: '(202) 555-1000',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mrs. Ice',
phoneNumber: '(202) 555-1001',
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Ms. Earth',
phoneNumber: '(202) 555-1002',
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mr. Fire',
phoneNumber: '(202) 555-1000',
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mr. Fire',
phoneNumber: '(202) 555-1000',
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mr. Fire',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'add',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mr. Fire',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mrs. Ice',
phoneNumber: '(202) 555-1001',
}),
],
},
],
i18n,
},
],
],
[
'Left group',
[
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'remove',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mr. Fire',
phoneNumber: '(202) 555-1000',
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mrs. Ice',
phoneNumber: '(202) 555-1001',
}),
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Ms. Earth',
phoneNumber: '(202) 555-1002',
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'remove',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Mr. Fire',
phoneNumber: '(202) 555-1000',
}),
],
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
changes: [
{
type: 'remove',
contacts: [
getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
],
},
],
i18n,
},
],
],
[
'Title changed',
[
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'name',
newName: 'New Group Name',
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
changes: [
{
type: 'name',
newName: 'New Group Name',
},
],
i18n,
},
],
],
[
'Avatar changed',
[
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'avatar',
newName: 'New Group Name',
},
],
i18n,
},
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
isMe: true,
}),
changes: [
{
type: 'avatar',
newName: 'New Group Name',
},
],
i18n,
},
],
],
[
'Generic group update',
[
{
from: getDefaultConversation({
2020-07-24 01:35:32 +00:00
title: 'Alice',
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'general',
},
],
i18n,
},
],
],
[
'Long name',
[
{
from: getDefaultConversation({
title: longName,
phoneNumber: '(202) 555-1000',
}),
changes: [
{
type: 'general',
},
],
i18n,
},
],
],
];
2022-06-07 00:48:02 +00:00
export const _GroupNotification = (): JSX.Element => (
<>
{stories.map(([title, propsArray]) => (
<>
<h3>{title}</h3>
{propsArray.map((props, i) => (
<div key={i} className="module-inline-notification-wrapper">
<GroupNotification {...props} />
</div>
))}
</>
))}
</>
);
2022-06-07 00:48:02 +00:00
_GroupNotification.story = {
name: 'GroupNotification',
};