Add keywords and tags radio
This commit is contained in:
parent
8811cadf1c
commit
aed51cc7e3
2 changed files with 29 additions and 13 deletions
|
@ -38,6 +38,8 @@ const messages = defineMessages({
|
||||||
addKeywordTitle: { id: 'antennas.add_keyword', defaultMessage: 'Add keyword' },
|
addKeywordTitle: { id: 'antennas.add_keyword', defaultMessage: 'Add keyword' },
|
||||||
accounts: { id: 'antennas.accounts', defaultMessage: '{count} accounts' },
|
accounts: { id: 'antennas.accounts', defaultMessage: '{count} accounts' },
|
||||||
domains: { id: 'antennas.domains', defaultMessage: '{count} domains' },
|
domains: { id: 'antennas.domains', defaultMessage: '{count} domains' },
|
||||||
|
tags: { id: 'antennas.tags', defaultMessage: '{count} tags' },
|
||||||
|
keywords: { id: 'antennas.keywords', defaultMessage: '{count} keywords' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
|
@ -69,6 +71,7 @@ class AntennaSetting extends PureComponent {
|
||||||
domainName: '',
|
domainName: '',
|
||||||
keywordName: '',
|
keywordName: '',
|
||||||
rangeRadioValue: null,
|
rangeRadioValue: null,
|
||||||
|
contentRadioValue: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
handlePin = () => {
|
handlePin = () => {
|
||||||
|
@ -189,6 +192,8 @@ class AntennaSetting extends PureComponent {
|
||||||
|
|
||||||
onRangeRadioChanged = (value) => this.setState({ rangeRadioValue: value });
|
onRangeRadioChanged = (value) => this.setState({ rangeRadioValue: value });
|
||||||
|
|
||||||
|
onContentRadioChanged = (value) => this.setState({ contentRadioValue: value });
|
||||||
|
|
||||||
onDomainNameChanged = (value) => this.setState({ domainName: value });
|
onDomainNameChanged = (value) => this.setState({ domainName: value });
|
||||||
|
|
||||||
onDomainAdd = () => {
|
onDomainAdd = () => {
|
||||||
|
@ -265,9 +270,16 @@ class AntennaSetting extends PureComponent {
|
||||||
ImmutableMap({ value: 'accounts', label: intl.formatMessage(messages.accounts, { count: antenna.get('accounts_count') }) }),
|
ImmutableMap({ value: 'accounts', label: intl.formatMessage(messages.accounts, { count: antenna.get('accounts_count') }) }),
|
||||||
ImmutableMap({ value: 'domains', label: intl.formatMessage(messages.domains, { count: antenna.get('domains_count') }) }),
|
ImmutableMap({ value: 'domains', label: intl.formatMessage(messages.domains, { count: antenna.get('domains_count') }) }),
|
||||||
]);
|
]);
|
||||||
const rangeRadioValue = ImmutableMap({ value: this.state.rangeRadioValue || (antenna.get('accounts_count') > 0 ? 'accounts' : 'domains') });
|
const rangeRadioValue = ImmutableMap({ value: this.state.rangeRadioValue || (antenna.get('domains_count') > 0 ? 'domains' : 'accounts') });
|
||||||
const rangeRadioAlert = antenna.get(rangeRadioValue.get('value') === 'accounts' ? 'domains_count' : 'accounts_count') > 0;
|
const rangeRadioAlert = antenna.get(rangeRadioValue.get('value') === 'accounts' ? 'domains_count' : 'accounts_count') > 0;
|
||||||
|
|
||||||
|
const contentRadioValues = ImmutableList([
|
||||||
|
ImmutableMap({ value: 'keywords', label: intl.formatMessage(messages.keywords, { count: antenna.get('keywords_count') }) }),
|
||||||
|
ImmutableMap({ value: 'tags', label: intl.formatMessage(messages.tags, { count: antenna.get('tags_count') }) }),
|
||||||
|
]);
|
||||||
|
const contentRadioValue = ImmutableMap({ value: this.state.contentRadioValue || (antenna.get('tags_count') > 0 ? 'tags' : 'keywords') });
|
||||||
|
const contentRadioAlert = antenna.get(contentRadioValue.get('value') === 'tags' ? 'keywords_count' : 'tags_count') > 0;
|
||||||
|
|
||||||
const listOptions = lists.toArray().map((list) => {
|
const listOptions = lists.toArray().map((list) => {
|
||||||
return { value: list[1].get('id'), label: list[1].get('title') }
|
return { value: list[1].get('id'), label: list[1].get('title') }
|
||||||
});
|
});
|
||||||
|
@ -361,19 +373,22 @@ class AntennaSetting extends PureComponent {
|
||||||
|
|
||||||
{rangeRadioAlert && <div className='alert'><FormattedMessage id='antennas.alert.range_radio' defaultMessage='Simultaneous account and domain designation is not recommended.' /></div>}
|
{rangeRadioAlert && <div className='alert'><FormattedMessage id='antennas.alert.range_radio' defaultMessage='Simultaneous account and domain designation is not recommended.' /></div>}
|
||||||
|
|
||||||
<h3><FormattedMessage id='antennas.tags' defaultMessage='{count} tags' values={{ count: antenna.get('tags_count') }} /></h3>
|
<RadioPanel values={contentRadioValues} value={contentRadioValue} onChange={this.onContentRadioChanged} />
|
||||||
|
|
||||||
<h3><FormattedMessage id='antennas.keywords' defaultMessage='{count} keywords' values={{ count: antenna.get('keywords_count') }} /></h3>
|
{contentRadioValue.get('value') === 'keywords' && (
|
||||||
<TextList
|
<TextList
|
||||||
onChange={this.onKeywordNameChanged}
|
onChange={this.onKeywordNameChanged}
|
||||||
onAdd={this.onKeywordAdd}
|
onAdd={this.onKeywordAdd}
|
||||||
onRemove={this.onKeywordRemove}
|
onRemove={this.onKeywordRemove}
|
||||||
value={this.state.keywordName}
|
value={this.state.keywordName}
|
||||||
values={keywords.get('keywords') || ImmutableList()}
|
values={keywords.get('keywords') || ImmutableList()}
|
||||||
icon='paragraph'
|
icon='paragraph'
|
||||||
label={intl.formatMessage(messages.addKeywordLabel)}
|
label={intl.formatMessage(messages.addKeywordLabel)}
|
||||||
title={intl.formatMessage(messages.addKeywordTitle)}
|
title={intl.formatMessage(messages.addKeywordTitle)}
|
||||||
/>
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{contentRadioAlert && <div className='alert'><FormattedMessage id='antennas.alert.content_radio' defaultMessage='Simultaneous keyword and tag designation is not recommended.' /></div>}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7495,6 +7495,7 @@ noscript {
|
||||||
|
|
||||||
.setting-radio-panel {
|
.setting-radio-panel {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
margin-top: 24px;
|
||||||
|
|
||||||
.setting-radio-panel__item {
|
.setting-radio-panel__item {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue