React로 nodebirdSNS 만들기 (인프런)/#2 SNS 화면 만들기
#2-5 메인 화면 만들기
정중식
2020. 1. 7. 16:18
- index.js
import React from "react";
import { Form, Input, Button, Card, Avatar, Icon } from "antd";
// index.js는 타임라인 역할
const dummy = {
isLoggedIn: true,
imagePaths: [],
mainPosts: [
{
User: {
id: 1,
nickname: "정중식"
},
content: "첫 번째 게시글",
img: "https://img.hankyung.com/photo/201807/03.17342954.1.jpg"
}
]
};
const Home = () => {
return (
<div>
{dummy.isLoggedIn && (
<Form style={{ marginBottom: 20 }} encType="multipart/form-data">
<Input.TextArea
maxLength={140}
placeholder="어떤 신기한 일이 있었나요?"
/>
<div>
<input type="file" multiple hidden />
<Button>이미지 업로드</Button>
<Button type="primary" style={{ float: "right" }} htmlType="submit">
짹짹
</Button>
</div>
<div>
{dummy.imagePaths.map((v, i) => {
return (
<div key={v} style={{ display: "inline-block" }}>
<img
src={"http/localhost:3000/" + v}
style={{ width: "200px" }}
alt={v}
/>
<div>
<Button>제거</Button>
</div>
</div>
);
})}
</div>
</Form>
)}
{dummy.mainPosts.map(c => {
return (
<Card
key={+c.createdAt}
cover={c.img && <img alt="example" src={c.img} />}
actions={[
<Icon type="retweet" key="retweet" />,
<Icon type="heart" key="heart" />,
<Icon type="message" key="message" />,
<Icon type="ellipsis" key="ellipsis" />
]}
extra={<Button>팔로우</Button>}
>
<Card.Meta
avatar={<Avatar>{c.User.nickname[0]}</Avatar>}
title={c.User.nickname}
description={c.content}
/>
</Card>
);
})}
</div>
);
};
export default Home;
-
<input type="file" multiple hidden /> : 여러개 올릴수있고, 숨겨져있다