Newer
Older
import { Container, Header, Segment, Divider,
List, Modal, Button, Image, Form, Input, TextArea, Checkbox, Icon } from 'semantic-ui-react';
import { getNews, } from '../../actions';
import { postNews, writeNews } from '../../actions/news.js'
class News extends Component {
componentWillMount() {
this.props.getNews();
}
render_add_news(){
const { title, text } = this.props.newNews;
const author = this.props.user.id;
return (
<Modal trigger={<Button >Add news</Button>}>
<Modal.Header>Új hír:</Modal.Header>
<Modal.Content>
<Form.Field
control={Input}
label='Title'
name='title'
onChange={e => this.props.writeNews(e)}
value={title}
placeholder='Title' />
<Form.Field
control={TextArea}
label='Text'
name='text'
onChange={e => this.props.writeNews(e)}
value={text}
placeholder='Tell us what you want...' />
</Form>
</Modal.Content>
<Modal.Actions>
<Button inverted color='red' >
<Icon name='remove' /> Cancel
</Button>
<Button
inverted color='green'
onClick={() => this.props.postNews({title, text, author})}>
<Icon name='checkmark' /> Add
</Button>
</Modal.Actions>
</Modal>
);
}
render_news() {
const news = this.props.news;
return news.map( (item, index) => (
<div key={index} id={index}>
{ index > 0 ? <Divider /> : ''}
<Header as='h3' style={{ fontSize: '2em' }}>{item.title}</Header>
<p style={{ fontSize: '1.33em' }}>{item.text}</p>
</div>
));
}
render_sidebar() {
const news = this.props.news;
return news.map( (item, index) => (
<List.Item as='a' href={`#${index}`}>
<List.Icon name='align justify' verticalAlign={"middle"}/>
<List.Content>
<List.Header>
{item.title}
</List.Header>
</List.Content>
</List.Item>
));
}
{/* <Segment inverted textAlign='center' vertical>
<Container>
<Header
as='h1'
content='Hírek'
inverted
style={{
marginTop: '0.2em',
padding: 0
<Segment floated={'left'} style={{ padding: '3em 3em' }} vertical>
{this.render_add_news()}
<Container text textAlign = {'center'}>
{this.render_news()}
</Container>
</Segment>
<Segment floated={'right'} style={{ padding: '1em 1em' }} vertical>
<List size={'big'} link divided>
{this.render_sidebar()}
</List>
</Segment>
const mapStateToProps = ({ news, newNews, user }) => ({ news, newNews, user });
export default connect(mapStateToProps, { getNews, postNews, writeNews, })(News);