Post.js refactored, imports consolidated
This commit is contained in:
@@ -91,17 +91,8 @@ export default function Feed() {
|
||||
let newFeed = sortedPosts.map((post) => {
|
||||
return (
|
||||
<Post
|
||||
title={post.data.title} // each variable passed in as props
|
||||
author={post.data.author}
|
||||
subreddit={post.data.subreddit}
|
||||
ups={post.data.ups}
|
||||
comments={post.data.num_comments}
|
||||
time={post.data.created_utc}
|
||||
data={post.data}
|
||||
key={v4()}
|
||||
media={post.data.post_hint === 'image' && post.data.url}
|
||||
permalink={post.data.permalink}
|
||||
selftext={post.data.selftext}
|
||||
video={post.data.is_video ? post.data.media.reddit_video.fallback_url : null} // to do: handle media edge cases, especially video
|
||||
/>
|
||||
);
|
||||
})
|
||||
|
||||
@@ -1,10 +1,23 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import './Post.css';
|
||||
|
||||
export default function Post({title,author,subreddit,ups,comments,time,key,media,permalink,selftext,video}) {
|
||||
export default function Post({data, key}) {
|
||||
|
||||
let title = data.title; // imports from data passed in from Feed
|
||||
let author = data.author;
|
||||
let subreddit = data.subreddit;
|
||||
let ups = data.ups;
|
||||
let comments = data.num_comments;
|
||||
let time = data.created_utc;
|
||||
let media = data.post_hint === 'image' && data.url;
|
||||
let permalink = data.permalink;
|
||||
let selftext= data.selftext;
|
||||
let video = data.is_video ? data.media.reddit_video.fallback_url : null; // to do: handle media edge cases, especially video
|
||||
|
||||
const limit = 300;
|
||||
const [body, setBody] = useState(selftext);
|
||||
|
||||
|
||||
const postDate = new Date(time * 1000); // handles conversion from unix timestamp to local time and date strings
|
||||
const localTime = postDate.toLocaleTimeString();
|
||||
const localDate = postDate.toLocaleDateString();
|
||||
|
||||
@@ -28,7 +28,7 @@ export const fetchComments = createAsyncThunk(
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
export const postsSlice = createSlice({
|
||||
name: 'posts',
|
||||
@@ -67,4 +67,5 @@ export const postsSlice = createSlice({
|
||||
export default postsSlice.reducer;
|
||||
export const selectPosts = state => state.postsSlice.posts;
|
||||
export const { filterPosts, updatePosts } = postsSlice.actions;
|
||||
// exports also includes fetchBySub (takes argument of a sub)
|
||||
// exports also includes fetchBySub (takes argument of a sub)
|
||||
// exports also includes fetchComments (takes argument of a post permalink)
|
||||
Reference in New Issue
Block a user