Skip to content

Commit 09c600b

Browse files
added skeleton to image loading in post
1 parent 0fc434a commit 09c600b

File tree

5 files changed

+166
-40
lines changed

5 files changed

+166
-40
lines changed

client/package-lock.json

Lines changed: 125 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6+
"@chakra-ui/icons": "^1.0.13",
67
"@chakra-ui/react": "^1.3.4",
78
"@emotion/react": "^11.1.5",
89
"@emotion/styled": "^11.1.5",

client/src/components/layout components/OptionsMenu.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useEffect } from "react";
2-
import styled, { keyframes } from "styled-components";
32
import { connect } from "react-redux";
3+
import styled, { keyframes } from "styled-components";
44
import { deletePost, getUserPosts } from "../../actions/getPostAction";
55

66
const OptionsMenu = ({

client/src/components/layout components/Post/Post.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const Post = ({
3131
const [post, setPost] = useState({});
3232
const toast = useToast();
3333
const [isLargerThan500] = useMediaQuery("(min-width: 500px)");
34+
const [imageLoaded, setImageLoaded] = useState(false);
3435

3536
useEffect(() => {
3637
showNav();
@@ -99,8 +100,6 @@ const Post = ({
99100
history.push(`/dashboard/home/${openedPost.name}/${openedPost.user}`);
100101
};
101102

102-
console.log(openedPost);
103-
104103
return (
105104
<React.Fragment>
106105
<S.Flex
@@ -155,13 +154,18 @@ const Post = ({
155154
)}
156155
</S.Flex>
157156
<S.Flex mt="0.5rem">
157+
{!imageLoaded && <Skeleton h="600px" w="100%"></Skeleton>}
158158
<S.Image
159159
src={post && `${post.image}`}
160160
fallbackSrc="https://i.ibb.co/RBT25fY/default-fallback-image.png"
161161
alt="post"
162162
style={{
163163
width: isLargerThan500 ? "100%" : "300px",
164164
height: isLargerThan500 ? "600px" : "auto",
165+
display: imageLoaded ? "" : "none",
166+
}}
167+
onLoad={() => {
168+
setImageLoaded(true);
165169
}}
166170
/>
167171
</S.Flex>

client/src/components/layout components/Trending/TrendingItem/TrendingItem.js

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,38 @@
1-
import { Box, Flex, Image, Text } from "@chakra-ui/react";
1+
import {
2+
Flex,
3+
Image,
4+
Menu,
5+
MenuButton,
6+
MenuItem,
7+
MenuList,
8+
Text,
9+
} from "@chakra-ui/react";
210
import React, { Fragment, useEffect, useState } from "react";
311
import { connect } from "react-redux";
412
import { getAdminPrivilages } from "../../../../actions/adminPrivilagesAction";
513
import {
14+
deletePost,
615
getSavedPosts,
716
savePost,
817
setCurrentPost,
918
} from "../../../../actions/getPostAction";
10-
import OptionsMenu from "../../OptionsMenu";
1119
import PostPlaceHolder from "../../PostPlaceHolder";
1220

1321
const TrendingItem = ({
22+
deletePost,
1423
post,
1524
setCurrentPost,
1625
trending: { loading },
1726
routing,
1827
by,
19-
postRedu: { loadingUserPosts, savedPosts, status, savedToast },
28+
postRedu: { loadingUserPosts, savedPosts, status },
2029
getAdminPrivilages,
2130
adminPrivilages,
2231
savePost,
2332
auth,
2433
getSavedPosts,
2534
}) => {
2635
const [loadingUNI, setLoadingUNI] = useState(true);
27-
const [openOptions, setOpenOptions] = useState(false);
2836
const [styleForHeading, setStyleForHeading] = useState({});
2937

3038
useEffect(() => {
@@ -86,14 +94,6 @@ const TrendingItem = ({
8694
// eslint-disable-next-line
8795
}, [loadingUNI, loadingUserPosts, loading]);
8896

89-
const openOptionsMenu = () => {
90-
setOpenOptions((prev) => !prev);
91-
};
92-
93-
const _exitOptionMode_ = () => {
94-
setOpenOptions((prev) => !prev);
95-
};
96-
9797
return (
9898
<Flex
9999
flexDirection="column"
@@ -102,7 +102,7 @@ const TrendingItem = ({
102102
rounded="md"
103103
border="2px solid #a6a6a690"
104104
w="100%"
105-
maxWidth="300px"
105+
maxWidth="350px"
106106
>
107107
<Flex onClick={post !== undefined ? openPost : null}>
108108
<Image
@@ -145,30 +145,33 @@ const TrendingItem = ({
145145
<Text>7 min</Text>
146146
</Flex>
147147
</Flex>
148-
<Box>
148+
<Flex flexDir="column" alignItems="center" alignSelf="center">
149149
<i
150150
onClick={saveThisPost}
151151
className={`fa${checkSavedStatus() ? "s" : "r"} fa-bookmark`}
152152
></i>
153153
{adminPrivilages.postAccessibility && (
154154
<Fragment>
155-
<Box onClick={openOptionsMenu} style={{ position: "relative" }}>
156-
<i className={`fas fa-ellipsis-v options--post`}></i>
157-
<OptionsMenu
158-
displayStatus={openOptions}
159-
postID={post._id}
160-
userID={post.user}
161-
/>
162-
</Box>
163-
<Box
164-
onClick={_exitOptionMode_}
165-
style={{
166-
display: openOptions ? "block" : "none",
167-
}}
168-
></Box>
155+
<Flex mt="10px">
156+
<Menu>
157+
<MenuButton
158+
as={Flex}
159+
w="15px"
160+
h="20px"
161+
justifyContent="center"
162+
alignItems="center"
163+
_hover={{ bg: "#ffffff80" }}
164+
></MenuButton>
165+
<MenuList>
166+
<MenuItem onClick={() => deletePost(post._id)}>
167+
Delete
168+
</MenuItem>
169+
</MenuList>
170+
</Menu>
171+
</Flex>
169172
</Fragment>
170173
)}
171-
</Box>
174+
</Flex>
172175
</Flex>
173176
)}
174177
</Flex>
@@ -189,4 +192,5 @@ export default connect(mapStateToProps, {
189192
getAdminPrivilages,
190193
savePost,
191194
getSavedPosts,
195+
deletePost,
192196
})(TrendingItem);

0 commit comments

Comments
 (0)