Mailspring/app/internal_packages/preferences/lib/tabs/sending-section.jsx
2017-09-26 11:46:00 -07:00

59 lines
1.7 KiB
JavaScript

import { React, PropTypes, AccountStore, SendActionsStore } from 'mailspring-exports';
import { ListensToFluxStore } from 'mailspring-component-kit';
import ConfigSchemaItem from './config-schema-item';
function getExtendedSendingSchema(configSchema) {
const accounts = AccountStore.accounts();
// const sendActions = SendActionsStore.sendActions()
const defaultAccountIdForSend = {
type: 'string',
title: 'Send new messages from',
default: 'selected-mailbox',
enum: ['selected-mailbox'].concat(accounts.map(acc => acc.id)),
enumLabels: ['Account of selected mailbox'].concat(accounts.map(acc => acc.me().toString())),
};
// TODO re-enable sending actions at some point
// const defaultSendType = {
// 'type': 'string',
// 'default': 'send',
// 'enum': sendActions.map(({configKey}) => configKey),
// 'enumLabels': sendActions.map(({title}) => title),
// 'title': "Default send behavior",
// }
Object.assign(configSchema.properties.sending.properties, {
defaultAccountIdForSend,
});
return configSchema.properties.sending;
}
function SendingSection(props) {
const { config, sendingConfigSchema } = props;
return (
<ConfigSchemaItem
config={config}
configSchema={sendingConfigSchema}
keyName="Sending"
keyPath="core.sending"
/>
);
}
SendingSection.displayName = 'SendingSection';
SendingSection.propTypes = {
config: PropTypes.object,
configSchema: PropTypes.object,
sendingConfigSchema: PropTypes.object,
};
export default ListensToFluxStore(SendingSection, {
stores: [AccountStore, SendActionsStore],
getStateFromStores(props) {
const { configSchema } = props;
return {
sendingConfigSchema: getExtendedSendingSchema(configSchema),
};
},
});