mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-15 17:53:44 +08:00
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
import React from 'react'
|
|
import PropTypes from 'prop-types'
|
|
import {RetinaImg} from 'nylas-component-kit'
|
|
import {getReminderLabel, getLatestMessage, getLatestMessageWithReminder, setMessageReminder} from './send-reminders-utils'
|
|
import {PLUGIN_ID} from './send-reminders-constants'
|
|
|
|
|
|
export function MessageHeader(props) {
|
|
const {thread, messages, message} = props
|
|
const {shouldNotify} = thread.metadataForPluginId(PLUGIN_ID) || {}
|
|
if (!shouldNotify) {
|
|
return <span />
|
|
}
|
|
const latestMessage = getLatestMessage(thread, messages)
|
|
if (message.id !== latestMessage.id) {
|
|
return <span />
|
|
}
|
|
return (
|
|
<div className="send-reminders-header">
|
|
<RetinaImg
|
|
name="ic-timestamp-reminder.png"
|
|
mode={RetinaImg.Mode.ContentIsMask}
|
|
/>
|
|
<span title="This thread was brought back to the top of your inbox as a reminder">
|
|
Reminder
|
|
</span>
|
|
</div>
|
|
)
|
|
}
|
|
MessageHeader.displayName = 'MessageHeader'
|
|
MessageHeader.containerRequired = false
|
|
MessageHeader.propTypes = {
|
|
messages: PropTypes.array,
|
|
message: PropTypes.object,
|
|
thread: PropTypes.object,
|
|
}
|
|
|
|
export function ThreadHeader(props) {
|
|
const {thread, messages} = props
|
|
const message = getLatestMessageWithReminder(thread, messages)
|
|
if (!message) {
|
|
return <span />
|
|
}
|
|
const {expiration} = message.metadataForPluginId(PLUGIN_ID) || {}
|
|
const clearReminder = () => {
|
|
setMessageReminder(message.accountId, message, null)
|
|
}
|
|
return (
|
|
<div className="send-reminders-header">
|
|
<RetinaImg
|
|
name="ic-timestamp-reminder.png"
|
|
mode={RetinaImg.Mode.ContentIsMask}
|
|
/>
|
|
<span className="reminder-date">
|
|
{` ${getReminderLabel(expiration)}`}
|
|
</span>
|
|
<span className="clear-reminder" onClick={clearReminder}>Cancel</span>
|
|
</div>
|
|
)
|
|
}
|
|
ThreadHeader.displayName = 'ThreadHeader'
|
|
ThreadHeader.containerRequired = false
|
|
ThreadHeader.propTypes = {
|
|
thread: PropTypes.object,
|
|
messages: PropTypes.array,
|
|
}
|