Mailspring/internal_packages/composer-mail-merge/lib/mail-merge-workspace.jsx
Juan Tejada 021eac7679 feat(mail-merge): Add mail merge plugin
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
2016-04-22 18:29:07 -07:00

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