diff --git a/app/internal_packages/composer/styles/composer.less b/app/internal_packages/composer/styles/composer.less index 02257f358..4da729d29 100644 --- a/app/internal_packages/composer/styles/composer.less +++ b/app/internal_packages/composer/styles/composer.less @@ -73,16 +73,20 @@ .inner { display: flex; flex-direction: row; + flex-wrap: wrap; align-items: center; background: @background-primary; border-bottom: 1px solid @border-color-divider; z-index: 2; width: 100%; + + padding-right: 10px; } .toolbar-section { display: flex; flex-direction: row; + flex-shrink: 0; align-items: center; } diff --git a/app/src/components/composer-editor/composer-editor-toolbar.jsx b/app/src/components/composer-editor/composer-editor-toolbar.jsx index 1765c9113..559dfa09d 100644 --- a/app/src/components/composer-editor/composer-editor-toolbar.jsx +++ b/app/src/components/composer-editor/composer-editor-toolbar.jsx @@ -44,20 +44,22 @@ export default class ComposerEditorToolbar extends React.Component { const { value, onChange, plugins } = this.props; const sections = []; - plugins.forEach(({ toolbarComponents, toolbarSectionClass }, idx) => { - if (toolbarComponents && toolbarComponents.length) { - const sectionItems = toolbarComponents.map((Component, cdx) => ( - - )); - if (sections.length) { - sectionItems.unshift(
); - } - sections.push( -
- {sectionItems} -
- ); + const pluginsWithToolbars = plugins.filter( + (p, idx) => p.toolbarComponents && p.toolbarComponents.length + ); + + pluginsWithToolbars.forEach(({ toolbarComponents, toolbarSectionClass }, idx) => { + const sectionItems = toolbarComponents.map((Component, cdx) => ( + + )); + if (idx < pluginsWithToolbars.length - 1) { + sectionItems.push(
); } + sections.push( +
+ {sectionItems} +
+ ); }); return ( diff --git a/app/src/flux/models/file.es6 b/app/src/flux/models/file.es6 index 05d66c924..c00d4b959 100644 --- a/app/src/flux/models/file.es6 +++ b/app/src/flux/models/file.es6 @@ -46,6 +46,9 @@ export default class File extends Model { // name if one is present, and falls back to appropriate default name based on // the contentType. It will always return a non-empty string. displayName() { + // BG: This logic has been moved to the sync side - all files should always have names + // as of the 1.1 release. This is just here still because people's local dbs could + // still contain unnammed files. const defaultNames = { 'text/calendar': 'Event.ics', 'image/png': 'Unnamed Image.png', diff --git a/mailsync b/mailsync index bfda4b1b9..91d6d6d75 160000 --- a/mailsync +++ b/mailsync @@ -1 +1 @@ -Subproject commit bfda4b1b9a62896fb89c84c8bf50a83c688a6f47 +Subproject commit 91d6d6d75f65dc6bcac0aa276c54858c06ca1885