diff --git a/apps/web/src/app/tool/tool-search/page.tsx b/apps/web/src/app/tool/tool-search/page.tsx
index 86efb70..f7613a0 100644
--- a/apps/web/src/app/tool/tool-search/page.tsx
+++ b/apps/web/src/app/tool/tool-search/page.tsx
@@ -13,6 +13,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
import { TableVirtuoso } from 'react-virtuoso';
import { AppHeader } from '~/components/AppHeader';
import { CopyButton } from '~/components/CopyButton';
+import { LikeButton } from '~/components/LikeButton';
import {
PackageManagerSelector,
getInstallCommand,
@@ -220,10 +221,13 @@ export default function ToolSearchPage(): React.ReactElement {
{formatDownloads(tool.package.npmDownloadsLastMonth)}
-
-
- {tool.likeCount ?? 0}
-
+
|
diff --git a/apps/web/src/components/LikeButton.tsx b/apps/web/src/components/LikeButton.tsx
index b4cc06a..8ef845e 100644
--- a/apps/web/src/components/LikeButton.tsx
+++ b/apps/web/src/components/LikeButton.tsx
@@ -35,6 +35,7 @@ export function LikeButton({
const [count, setCount] = useState(initialCount);
const [isLoading, setIsLoading] = useState(false);
const [hasFetched, setHasFetched] = useState(false);
+ const [showTooltip, setShowTooltip] = useState(false);
// Fetch initial like status when user is logged in
useEffect(() => {
@@ -68,8 +69,9 @@ export function LikeButton({
const handleClick = useCallback(async () => {
if (!session) {
- // Redirect to sign in
- window.location.href = '/sign-in';
+ // Show tooltip instead of redirecting
+ setShowTooltip(true);
+ setTimeout(() => setShowTooltip(false), 2000);
return;
}
@@ -111,21 +113,34 @@ export function LikeButton({
}, [session, liked, count, isLoading, entityType, entityId, onLikeChange]);
return (
-
+
+
+ {showTooltip && (
+
+ )}
+
);
}
|