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