mirror of
https://github.com/BradNut/svelteKitForBeginners
synced 2025-09-08 17:40:24 +00:00
Tweet permalink viewing.
This commit is contained in:
parent
5e44e9516e
commit
63b6fc2ed8
2 changed files with 51 additions and 0 deletions
15
src/routes/home/profile/[user]/status/[tweetId]/index.svelte
Normal file
15
src/routes/home/profile/[user]/status/[tweetId]/index.svelte
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<script lang="ts">
|
||||||
|
import Tweet from '$root/components/tweet.svelte'
|
||||||
|
import type { TweetType } from '$root/types'
|
||||||
|
|
||||||
|
export let tweet: TweetType
|
||||||
|
|
||||||
|
const name = tweet.name
|
||||||
|
const content = tweet.content.slice(0, 60)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:head>
|
||||||
|
<title>{name} on Twittr: "{content}..."</title>
|
||||||
|
</svelte:head>
|
||||||
|
|
||||||
|
<Tweet {tweet} />
|
||||||
36
src/routes/home/profile/[user]/status/[tweetId]/index.ts
Normal file
36
src/routes/home/profile/[user]/status/[tweetId]/index.ts
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
import { timePosted } from "$root/lib/date";
|
||||||
|
import prisma from "$root/lib/prisma";
|
||||||
|
import type { RequestHandler } from "@sveltejs/kit";
|
||||||
|
|
||||||
|
export const get: RequestHandler = async ({ params }) => {
|
||||||
|
const tweet = await prisma.tweet.findFirst({
|
||||||
|
where: { url: params.tweetId },
|
||||||
|
include: { user: true }
|
||||||
|
})
|
||||||
|
|
||||||
|
const liked = await prisma.liked.findMany({
|
||||||
|
where: { userId: 1 },
|
||||||
|
select: { tweetId: true }
|
||||||
|
})
|
||||||
|
|
||||||
|
const likedTweets = Object.keys(liked).map(
|
||||||
|
key => liked[key].tweetId
|
||||||
|
)
|
||||||
|
|
||||||
|
const userTweet = {
|
||||||
|
id: tweet.id,
|
||||||
|
content: tweet.content,
|
||||||
|
likes: tweet.likes,
|
||||||
|
posted: timePosted(tweet.posted),
|
||||||
|
url: tweet.url,
|
||||||
|
avatar: tweet.user.avatar,
|
||||||
|
handle: tweet.user.handle,
|
||||||
|
name: tweet.user.name,
|
||||||
|
liked: likedTweets.includes(tweet.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: 200,
|
||||||
|
body: { tweet: userTweet }
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue