Files
twitter-lite/src/features/support/mock-conversations.ts
T

213 lines
6.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
type Channel = 'Slack' | 'LINE' | 'Gmail'
export type Conversation = {
id: string
name: string
role: string
subject: string
channels: Channel[]
replyChannel: Channel
updatedAt: string
deadline?: string
summary: string
nextStep: string
messages: {
id: string
channel: Channel
text: string
time: string
direction: 'in' | 'out'
}[]
facts: { text: string; sourceId: string }[]
drafts: { label: string; text: string }[]
scheduleOptions: string[]
}
// All contacts, conversations and proposed appointments are fictional UI samples.
export const conversations: Conversation[] = [
{
id: 'design-review',
name: 'Haruka Aoki',
role: 'Product designer',
subject: 'Schedule next week’s design review',
channels: ['Slack', 'Gmail'],
replyChannel: 'Slack',
updatedAt: '10:42',
deadline: 'Sep 29, 17:00',
summary:
'A request to review the new screens. The materials arrived by email, and Haruka is waiting on Slack to arrange a 30-minute review.',
nextStep: 'Review the materials and suggest a time for a 30-minute call.',
messages: [
{
id: 'aoki-1',
channel: 'Gmail',
time: 'Sep 27, 16:20',
direction: 'in',
text: 'Sharing the screens for review. I would especially appreciate your thoughts on the first-time experience. The review should take about 30 minutes.',
},
{
id: 'aoki-2',
channel: 'Slack',
time: 'Sep 28, 10:42',
direction: 'in',
text: 'Could we find a time next week for the review I emailed yesterday? Please send a few options by September 29 at 17:00. An afternoon would be ideal.',
},
],
facts: [
{
text: 'The review should take 30 minutes.',
sourceId: 'aoki-1',
},
{
text: 'An afternoon is preferred for this review.',
sourceId: 'aoki-2',
},
],
drafts: [
{
label: 'Brief',
text: 'Thanks for the materials! I will take a look. Let’s find 30 minutes one afternoon next week.',
},
{
label: 'Polite',
text: 'Thank you for sharing the materials. I will focus on the first-time experience. Would you have 30 minutes one afternoon next week?',
},
{
label: 'Acknowledge',
text: 'Thanks for getting in touch. I have the materials and will check my schedule and reply by September 29 at 17:00.',
},
],
scheduleOptions: ['Mon, Oct 5, 14:00–14:30', 'Tue, Oct 6, 15:00–15:30'],
},
{
id: 'weekend-coffee',
name: 'Naoto Mori',
role: 'Friend',
subject: 'Catch up over coffee',
channels: ['LINE'],
replyChannel: 'LINE',
updatedAt: 'Yesterday',
summary:
'An invitation to meet for coffee while Naoto is nearby. There is no rush to reply.',
nextStep:
'Share your availability if you would like to meet. You do not need to decide right now.',
messages: [
{
id: 'mori-1',
channel: 'LINE',
time: 'Sep 27, 19:15',
direction: 'in',
text: 'I might be in your area next week. Want to grab coffee if our schedules line up? Saturday afternoon works for me. No rush—let me know when you know!',
},
],
facts: [
{
text: 'Saturday afternoon is available this time.',
sourceId: 'mori-1',
},
],
drafts: [
{
label: 'Brief',
text: 'Sounds good, it would be great to catch up! I will check Saturday afternoon.',
},
{
label: 'Polite',
text: 'Thanks for the invitation! I would love to grab coffee. I will check my plans for Saturday afternoon and let you know.',
},
{
label: 'Acknowledge',
text: 'Thanks! I am not sure about my schedule yet, but I will let you know.',
},
],
scheduleOptions: ['Sat, Oct 3, 14:00–15:00', 'Sat, Oct 3, 16:00–17:00'],
},
{
id: 'estimate-check',
name: 'Risa Fujii',
role: 'Project partner',
subject: 'Confirm the scope for an estimate',
channels: ['Gmail'],
replyChannel: 'Gmail',
updatedAt: '9:10',
deadline: 'Sep 30, 12:00',
summary:
'Risa needs confirmation that the project covers three screens before preparing an estimate. Please reply by noon on September 30.',
nextStep:
'Confirm the number of screens before replying. Avoid committing before checking.',
messages: [
{
id: 'fujii-1',
channel: 'Gmail',
time: 'Sep 28, 9:10',
direction: 'in',
text: 'Before preparing an estimate, could you confirm that the scope is the list, detail, and settings screens? If you can confirm by noon on September 30, I can send the estimate the same day.',
},
],
facts: [
{
text: 'The estimate will be prepared after the screen count is confirmed.',
sourceId: 'fujii-1',
},
],
drafts: [
{
label: 'Brief',
text: 'Thanks. I will check the three screens and reply by noon on September 30.',
},
{
label: 'Polite',
text: 'Thank you for checking. I will confirm whether the list, detail, and settings screens cover the scope and reply by noon on September 30.',
},
{
label: 'Acknowledge',
text: 'Thanks for your message. I will check the scope and get back to you.',
},
],
scheduleOptions: [],
},
{
id: 'reading-note',
name: 'Yu Tanabe',
role: 'Study group friend',
subject: 'The article we talked about',
channels: ['Slack'],
replyChannel: 'Slack',
updatedAt: 'Friday',
summary:
'Yu shared an article discussed at the last study group. There are no questions or requests for a reply.',
nextStep:
'If you do not have time to read it, you can close this without replying.',
messages: [
{
id: 'tanabe-1',
channel: 'Slack',
time: 'Sep 25, 18:30',
direction: 'in',
text: 'Found the article we discussed about getting work done with fewer tools! Read it when you have time. No reply needed.',
},
],
facts: [
{
text: 'This message explicitly says no reply is needed.',
sourceId: 'tanabe-1',
},
],
drafts: [
{
label: 'Brief',
text: 'Thanks for sharing! I will read it later.',
},
{
label: 'Polite',
text: 'Thanks for remembering. I have been thinking about this topic, so I will set aside some time to read it.',
},
{
label: 'Acknowledge',
text: 'Thanks, got it!',
},
],
scheduleOptions: [],
},
]