Post.js refactored, imports consolidated

This commit is contained in:
2022-01-29 14:06:18 -06:00
parent 669e8d3017
commit bb8de386bb
3 changed files with 18 additions and 13 deletions

View File

@@ -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
/>
);
})

View File

@@ -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();

View File

@@ -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)