...
|
...
|
@@ -16,11 +16,7 @@ import {bindActionCreators} from 'redux'; |
|
|
import {connect} from 'react-redux';
|
|
|
import {Map} from 'immutable';
|
|
|
import * as detailActions from '../reducers/detail/detailActions';
|
|
|
import BrandIntro from '../components/detail/BrandIntro'
|
|
|
import BrandArticleList from '../components/detail/BrandArticleList'
|
|
|
import BrandArticleCell from '../components/detail/BrandArticleCell'
|
|
|
import NewArrival from '../components/detail/NewArrival'
|
|
|
import Prompt from '../../coupon/components/coupon/Prompt';
|
|
|
import Detail from '../components/detail/Detail'
|
|
|
|
|
|
const actions = [
|
|
|
detailActions,
|
...
|
...
|
@@ -46,9 +42,12 @@ function mapDispatchToProps(dispatch) { |
|
|
}
|
|
|
|
|
|
class DetailContainer extends Component {
|
|
|
|
|
|
componentDidMount() {
|
|
|
this.props.actions.getBrandInfo();
|
|
|
this.props.actions.uidBrandFav();
|
|
|
this.props.actions.brandInfo();
|
|
|
}
|
|
|
|
|
|
constructor(props) {
|
|
|
super(props);
|
|
|
this._onPressArticle = this._onPressArticle.bind(this);
|
...
|
...
|
@@ -57,23 +56,7 @@ class DetailContainer extends Component { |
|
|
this._onPressBrandIntroMore = this._onPressBrandIntroMore.bind(this);
|
|
|
this._onPressMoreProducts = this._onPressMoreProducts.bind(this);
|
|
|
this._addCanelFavTipRemove = this._addCanelFavTipRemove.bind(this);
|
|
|
|
|
|
this.renderRow = this.renderRow.bind(this);
|
|
|
this.dataSource = new ListView.DataSource({
|
|
|
rowHasChanged: (r1, r2) => !Immutable.is(r1, r2),
|
|
|
sectionHeaderHasChanged: (s1, s2) => !Immutable.is(s1, s2),
|
|
|
});
|
|
|
}
|
|
|
|
|
|
componentDidMount() {
|
|
|
this.props.actions.uidBrandFav();
|
|
|
this.props.actions.brandInfo();
|
|
|
}
|
|
|
|
|
|
componentWillReceiveProps(nextProps) {
|
|
|
if (this.props.detail.get('brandInfo').get('titleUnfold') && !nextProps.detail.get('brandInfo').get('titleUnfold')) {
|
|
|
this.listView.scrollTo({x: 0, y: 0, animated: false, });
|
|
|
}
|
|
|
this._onPressProduct = this._onPressProduct.bind(this);
|
|
|
}
|
|
|
|
|
|
_onPressArticle(url) {
|
...
|
...
|
@@ -115,73 +98,21 @@ class DetailContainer extends Component { |
|
|
this.props.actions.addCanelFavTipRemove();
|
|
|
}
|
|
|
|
|
|
renderRow(rowData, sectionID, rowID, highlightRow) {
|
|
|
if (!rowData && rowData.length == 0) {
|
|
|
return null;
|
|
|
}
|
|
|
switch (rowID) {
|
|
|
case 'brandInfo':
|
|
|
return(
|
|
|
<BrandIntro
|
|
|
brandIntro={rowData}
|
|
|
brandFav={this.props.detail.get('brandFav')}
|
|
|
onPressFav={this._onPressFav}
|
|
|
onPressBrandIntroMore={this._onPressBrandIntroMore}
|
|
|
addCanelFavTipRemove={this._addCanelFavTipRemove}
|
|
|
/>
|
|
|
);
|
|
|
case 'productList':
|
|
|
console.log(rowData);
|
|
|
console.log('rowData');
|
|
|
return (
|
|
|
<NewArrival
|
|
|
prodcutList={rowData}
|
|
|
onPressMoreProducts={this._onPressMoreProducts}
|
|
|
onPressProduct={this._onPressProduct}
|
|
|
moreProductUrl={this.props.detail.get('moreProductUrl')}
|
|
|
/>
|
|
|
);
|
|
|
case 'articleList':
|
|
|
return(
|
|
|
<BrandArticleList
|
|
|
articleList={rowData}
|
|
|
onPressArticle={this._onPressArticle}
|
|
|
onPressArticleLike={this._onPressArticleLike} />
|
|
|
);
|
|
|
default:
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
render() {
|
|
|
let {detail} = this.props;
|
|
|
|
|
|
let dataSource = {
|
|
|
brandInfo: detail.get('brandInfo'),
|
|
|
productList: detail.get('productList').toArray(),
|
|
|
articleList: detail.get('articleList').toArray(),
|
|
|
};
|
|
|
|
|
|
return (
|
|
|
<View style={styles.container}>
|
|
|
<ListView
|
|
|
ref={(c) => {
|
|
|
this.listView = c;
|
|
|
}}
|
|
|
contentContainerStyle={styles.contentContainer}
|
|
|
enableEmptySections={true}
|
|
|
dataSource={this.dataSource.cloneWithRows(dataSource)}
|
|
|
renderRow={this.renderRow}
|
|
|
<Detail
|
|
|
detail={detail}
|
|
|
onPressArticle={this._onPressArticle}
|
|
|
onPressArticleLike={this._onPressArticleLike}
|
|
|
onPressFav={this._onPressFav}
|
|
|
onPressBrandIntroMore={this._onPressBrandIntroMore}
|
|
|
onPressMoreProducts={this._onPressMoreProducts}
|
|
|
addCanelFavTipRemove={this._addCanelFavTipRemove}
|
|
|
onPressProduct={this._onPressProduct}
|
|
|
/>
|
|
|
|
|
|
|
|
|
{detail.get('brandInfo').get('addCancelTip') !== '' ? <Prompt
|
|
|
text={detail.get('brandInfo').get('addCancelTip')}
|
|
|
duration={800}
|
|
|
onPromptHidden={this._addCanelFavTipRemove}
|
|
|
/> : null}
|
|
|
</View>
|
|
|
);
|
|
|
}
|
...
|
...
|
|