'use strict';

import React, { Component } from 'react';
import { Feedback } from '@icedesign/base';
import IceContainer from '@icedesign/container';
import axios from 'axios';
import CollectDetailView from './CollectDetailView';
import { apiList, getNavLinks } from '../utils';

export default class CollectDetailContainer extends Component {
  state = {
    isLoading: true,
    error: null,
    data: null,
  };

  componentDidMount() {
    let id = this.props.params.id;

    try {
      id = Number(id);
      if (isNaN(id)) {
        throw new Error('非法 id');
      }
    } catch (err) {
      // eslint-disable-next-line
      this.setState({
        error: new Error('未知 id'),
      });
      return;
    }

    this.fetchData(id);
  }

  fetchData(id) {
    return axios(apiList.getCollectContent, {
      params: { id: id },
    })
      .then((response) => {
        const { data } = response;
        this.setState({
          isLoading: false,
          // no more uglify code
          basic: data.data,
          data: data.data.data,
        });
      })
      .catch((err) => {
        this.setState({
          isLoading: false,
          error: err,
        });
      });
  }

  render() {
    return (
      <IceContainer style={{ padding: '25px 40px' }}>
        <CollectDetailView {...this.state} />
      </IceContainer>
    );
  }
}
