diff --git a/app/internal_packages/category-mapper/lib/category-selection.tsx b/app/internal_packages/category-mapper/lib/category-selection.tsx index 5bd6a515b..2d73be1f2 100644 --- a/app/internal_packages/category-mapper/lib/category-selection.tsx +++ b/app/internal_packages/category-mapper/lib/category-selection.tsx @@ -9,7 +9,7 @@ import { import { localized, Label, Utils, PropTypes } from 'mailspring-exports'; interface CategorySelectionProps { - accountUsesLabels: boolean; + allowLabels: boolean; all: CategoryItem[]; current: CategoryItem; onSelect: (item: CategoryItem) => void; @@ -31,7 +31,7 @@ export default class CategorySelection extends React.Component< CategorySelectionState > { static propTypes = { - accountUsesLabels: PropTypes.bool, + allowLabels: PropTypes.bool, all: PropTypes.array, current: PropTypes.object, onSelect: PropTypes.func, @@ -95,7 +95,7 @@ export default class CategorySelection extends React.Component< }; render() { - const placeholder = this.props.accountUsesLabels + const placeholder = this.props.allowLabels ? localized('Choose folder or label') : localized('Choose folder'); diff --git a/app/internal_packages/category-mapper/lib/preferences-category-mapper.tsx b/app/internal_packages/category-mapper/lib/preferences-category-mapper.tsx index 291fcf8b0..b54891d5c 100644 --- a/app/internal_packages/category-mapper/lib/preferences-category-mapper.tsx +++ b/app/internal_packages/category-mapper/lib/preferences-category-mapper.tsx @@ -5,6 +5,7 @@ import { Category, Actions, ChangeRoleMappingTask, + Folder, } from 'mailspring-exports'; import CategorySelection from './category-selection'; @@ -79,15 +80,20 @@ export default class PreferencesCategoryMapper extends React.Component<{}, State if (account.provider === 'gmail' && role === 'archive') { return false; } + + let all = this.state.all[account.id]; + const allowLabels = account.usesLabels() && role !== 'trash' && role !== 'spam'; + if (!allowLabels) all = all.filter(c => c instanceof Folder); + return (