mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-09-11 23:24:32 +08:00
Summary: Adds Mail Merge Plugin - Adds new table components to component kit - Adds new extension points to allow dragging and dropping into composer contenteditable and participant fields and customizing participant fields - Adds new decorators and other misc updates - #1608 Test Plan: TODO Reviewers: bengotow, evan Reviewed By: bengotow, evan Differential Revision: https://phab.nylas.com/D2895
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
import React, {Component, PropTypes} from 'react'
|
|
import MailMergeTable from './mail-merge-table'
|
|
|
|
|
|
class MailMergeWorkspace extends Component {
|
|
static displayName = 'MailMergeWorkspace'
|
|
|
|
static propTypes = {
|
|
isWorkspaceOpen: PropTypes.bool,
|
|
tableData: MailMergeTable.propTypes.tableData,
|
|
selection: PropTypes.object,
|
|
draftClientId: PropTypes.string,
|
|
session: PropTypes.object,
|
|
}
|
|
|
|
render() {
|
|
const {session, draftClientId, isWorkspaceOpen, tableData, selection, ...otherProps} = this.props
|
|
if (!isWorkspaceOpen) {
|
|
return false
|
|
}
|
|
|
|
const {row} = selection
|
|
const {rows} = tableData
|
|
return (
|
|
<div className="mail-merge-workspace">
|
|
<div className="selection-controls">
|
|
Recipient
|
|
<span>
|
|
<span onClick={()=> session.shiftSelection({row: -1})}>{'<'}</span>
|
|
{row}
|
|
<span onClick={()=> session.shiftSelection({row: 1})}>{'>'}</span>
|
|
</span>
|
|
of {rows.length - 1}
|
|
</div>
|
|
<MailMergeTable
|
|
{...otherProps}
|
|
selection={selection}
|
|
tableData={tableData}
|
|
draftClientId={draftClientId}
|
|
onCellEdited={session.updateCell}
|
|
onSetSelection={session.setSelection}
|
|
onShiftSelection={session.shiftSelection}
|
|
onAddColumn={session.addColumn}
|
|
onRemoveColumn={session.removeColumn}
|
|
onAddRow={session.addRow}
|
|
onRemoveRow={session.removeRow}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
export default MailMergeWorkspace
|