Add style to like button

This commit is contained in:
riggraz
2019-09-27 18:19:13 +02:00
parent 80164178c2
commit ce234f8818
6 changed files with 69 additions and 35 deletions

View File

@@ -32,7 +32,7 @@ const PostListItem = ({
isLoggedIn,
authenticityToken,
}: Props) => (
<React.Fragment>
<div onClick={() => window.location.href = `/posts/${id}`} className="postListItem">
<LikeButton
postId={id}
likesCount={likesCount}
@@ -40,18 +40,17 @@ const PostListItem = ({
isLoggedIn={isLoggedIn}
authenticityToken={authenticityToken}
/>
<a href={`/posts/${id}`} className="postLink">
<div className="postListItem">
<span className="postTitle">{title}</span>
<DescriptionText limit={120}>{description}</DescriptionText>
<div className="postDetails">
<CommentsNumber number={commentsCount} />
{ postStatus ? <PostStatusLabel {...postStatus} /> : null }
</div>
<div className="postContainer">
<span className="postTitle">{title}</span>
<DescriptionText limit={120}>{description}</DescriptionText>
<div className="postDetails">
<CommentsNumber number={commentsCount} />
{ postStatus ? <PostStatusLabel {...postStatus} /> : null }
</div>
</a>
</React.Fragment>
</div>
</div>
);
export default PostListItem;

View File

@@ -22,14 +22,15 @@ const LikeButtonP = ({
isLoggedIn,
}: Props) => (
<div className="likeButtonContainer">
<button onClick={() =>
isLoggedIn ?
handleLikeSubmit(postId, !liked, authenticityToken)
:
window.location.href = `/users/sign_in`
}>
{ liked ? 'down' : 'up' }
</button>
<div onClick={(e) => {
e.stopPropagation();
if (isLoggedIn) handleLikeSubmit(postId, !liked, authenticityToken);
else window.location.href = `/users/sign_in`;
}}
className={`likeButton${liked ? ' liked' : ''}`}
>
</div>
<span className="likesCountLabel">{likesCount}</span>
</div>
);

View File

@@ -73,24 +73,26 @@
.flex-grow-1;
}
.postLink {
@extend .my-3;
display: block;
color: $astuto-black;
&:hover { text-decoration: none; }
}
.postListItem {
@extend
.card3D,
.d-flex,
.flex-column,
.justify-content-between,
.flex-row,
.justify-content-start,
.my-3,
.p-3;
height: 140px;
color: $astuto-black;
&:hover { cursor: pointer; }
.postContainer {
@extend
.d-flex,
.flex-column,
.justify-content-between;
}
}
.postTitle {

View File

@@ -0,0 +1,31 @@
.likeButtonContainer {
@extend
.d-flex,
.flex-column,
.mr-3,
.mt-2;
$like_button_size: 11px;
.likeButton {
@extend .mb-2;
border-left: $like_button_size solid transparent;
border-right: $like_button_size solid transparent;
border-bottom: $like_button_size solid rgba(35,35,35,.2);
&:hover {
border-bottom-color: $astuto-black;
cursor: pointer;
}
}
.likeButton.liked {
border-bottom-color: $astuto-black;
}
.likesCountLabel {
text-align: center;
font-size: 17px;
}
}

View File

@@ -11,5 +11,6 @@
/* Components */
@import 'components/Board';
@import 'components/Comments';
@import 'components/LikeButton';
@import 'components/Post';
@import 'components/Roadmap';

View File

@@ -15,7 +15,7 @@ feature 'board', type: :system, js: true do
let(:user) { FactoryBot.create(:user) }
let(:board_container) { '.boardContainer' }
let(:post_link) { '.postLink' }
let(:post_list_item) { '.postListItem' }
let(:sidebar) { '.sidebar' }
let(:new_post_form) { '.newPostForm' }
let(:reset_filter) { '.resetFilter' }
@@ -43,7 +43,7 @@ feature 'board', type: :system, js: true do
visit board_path(board)
within board_container do
expect(page).to have_selector(post_link, count: 3)
expect(page).to have_selector(post_list_item, count: 3)
expect(page).to have_content(/#{post1.title}/i)
expect(page).to have_content(/#{post1.description}/i)
expect(page).to have_no_content(/#{post4.title}/i)
@@ -169,9 +169,9 @@ feature 'board', type: :system, js: true do
# puts "tot: #{n_of_posts_in_board}, perpage: #{n_of_posts_per_page}, page: #{page_number}"
within board_container do
if n_of_posts_in_board < n_of_posts_per_page * page_number
expect(page).to have_selector(post_link, count: n_of_posts_in_board)
expect(page).to have_selector(post_list_item, count: n_of_posts_in_board)
else
expect(page).to have_selector(post_link, count: n_of_posts_per_page * page_number)
expect(page).to have_selector(post_list_item, count: n_of_posts_per_page * page_number)
end
end
end
@@ -182,7 +182,7 @@ feature 'board', type: :system, js: true do
visit board_path(board)
n_of_posts_per_page = page.all(:css, post_link).size
n_of_posts_per_page = page.all(:css, post_list_item).size
page_number = 1
assert_number_of_posts_shown(n_of_posts_in_board, n_of_posts_per_page, page_number)