Skip to content

Commit d962e43

Browse files
committed
feat: integrate login popup for reaction toggle in ArticleCard component
1 parent d910495 commit d962e43

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/components/ArticleCard.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22

33
import { useTranslation } from "@/i18n/use-translation";
44
import { formattedTime } from "@/lib/utils";
5+
import clsx from "clsx";
56
import Image from "next/image";
67
import Link from "next/link";
78
import { useMemo } from "react";
8-
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./ui/hover-card";
9-
import UserInformationCard from "./UserInformationCard";
109
import BookmarkStatus from "./render-props/BookmarkStatus";
11-
import clsx from "clsx";
1210
import ReactionStatus from "./render-props/ReactionStatus";
11+
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./ui/hover-card";
12+
import UserInformationCard from "./UserInformationCard";
13+
import { useLoginPopup } from "./app-login-popup";
14+
import { useSession } from "@/store/session.atom";
1315

1416
interface ArticleCardProps {
1517
id: string;
@@ -42,6 +44,8 @@ const ArticleCard = ({
4244
comments,
4345
}: ArticleCardProps) => {
4446
const { lang } = useTranslation();
47+
const session = useSession();
48+
const loginPopup = useLoginPopup();
4549

4650
const articleUrl = useMemo(() => {
4751
return `/@${author.username}/${handle}`;
@@ -126,7 +130,13 @@ const ArticleCard = ({
126130
"px-2 py-1 flex gap-1 cursor-pointer rounded-sm hover:bg-primary/20",
127131
{ "bg-primary/20": r.is_reacted }
128132
)}
129-
onClick={() => toggle(r.reaction_type!)}
133+
onClick={() => {
134+
if (!session?.user) {
135+
loginPopup.show();
136+
return;
137+
}
138+
toggle(r.reaction_type!);
139+
}}
130140
>
131141
<img
132142
src={`/reactions/${r.reaction_type}.svg`}

0 commit comments

Comments
 (0)