Изменение фона COlor Chip зависит от пользователя, если администратор или нет - PullRequest
1 голос
/ 07 июля 2019

я хочу изменить цвет фона чипа в зависимости от того, является ли пользователь администратором или нет, разные цвета для каждого пользователя в списке комментариев, чтобы конечный пользователь мог определить, кто является администратором, а кто - нет. не.

это мой код

import React from 'react';
import TimeAgo from 'react-timeago';
import PropTypes from 'prop-types';
import Card from 'components/commons/Card';
import Chip from '@material-ui/core/Chip';
import Button from '@material-ui/core/Button';
import { Grid  } from '@material-ui/core';
import { withRouter } from 'react-router-dom';
import { connect } from 'react-redux';
import { getComments } from 'api'

const styles = {
  root: {
    paddingTop: '25px',
    color: '#FFFFFF'
  },
  chipA: {
    color: 'white',
    fontWeight: 'bold',
    backgroundColor: '#00a6ff',
    textTransform: 'uppercase',
    fontSize: '1rem',
    letterSpacing: '0px',
    textAlign: 'center'
  },
  chipB: {
    color: 'primary',
    fontWeight: 'bold',
    backgroundColor: '#ff8400',
    textTransform: 'uppercase',
    fontSize: '1rem',
    letterSpacing: '0px',
    textAlign: 'center'
  },
  Button: {
    fontWeight: 'bold',
    fontSize: '1rem',
    letterSpacing: '0px',
    textTransform: 'uppercase',
    borderRadius: '2.5px',
    textAlign: 'center',
  },
};

class Comment extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      comment: '',
      isAdmin: [],
    };
  }

  componentDidMount() {
    console.log(this.props.isAdmin)
    if (this.props.isAdmin) { 
      console.log('Admin User'); 
      }else {
      console.log('Normal User');
      }
    };

  onChange = e => {
    this.setState({ [e.target.name]: e.target.value });
  }

  renderComments(comments) {
    const condition = this.props.isAdmin;
    console.log(condition);

    const commentDivs = comments.map(user => {
      return (
        <div key={user.id}>
          <div className="row">
            <div className="col comment">{user.description}</div>
          </div>
          <div className="row">
            <div className="col-9">
              <TimeAgo className="time-ago" date={user.createdAt} />
            </div>
            <div className="col-3">
              <div style={styles.wrapper}>
                <span className="time-ago">
                  <Chip
                    label={user['user.firstname'] + ' ' + user['user.lastname']}
                    style={{ backgroundColor: condition ? "#00a6ff" : "#ff8400" , color: 'white', fontWeight: 'bold',
                    textTransform: 'uppercase',
                    fontSize: '1rem',
                    letterSpacing: '0px',
                    textAlign: 'center'}}
                  />
                </span>
              </div>
            </div>
          </div>
          <hr />
        </div>
      )
    });
    return (
      <div>{commentDivs}</div>
    );
  }

  render() {
    return (
      <Card title="comments">
        <Grid item xs={12} md={12}>
          {this.renderComments(this.props.comments)}
          <div className="form-group">
            <textarea
              className="form-control"
              name="comment"
              placeholder="Write a comment"
              onChange={this.onChange}
              value={this.state.comment}
              rows="3"
            ></textarea>
          </div>
          <div className="form-group">
            <Button
              onClick={() => this.props.onSubmit(this.state.comment)}
              color="primary"
              variant="contained"
              size="large"
              style={styles.Button}>
              Send
             </Button>
          </div>
        </Grid>
      </Card>
    );
  }
}

Comment.propTypes = {
  comments: PropTypes.array.isRequired,
  onSubmit: PropTypes.func.isRequired,
  isAdmin: PropTypes.bool,
};

const mapStateToProps = state => {
  return {
    isAdmin: state.auth.isAdmin,
  };
};

export default withRouter(connect(mapStateToProps, { 
})(Comment)) ;

Я определяю, что изменение цвета зависит от того, кто зарегистрирован, но вы хотите определить, кто является администратором или нет у любого из двух пользователей, будь то администратор или обычный пользователь.

это мой результат

admin the blue chip , normal user the orange chip

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...