tangled
alpha
login
or
join now
bunware.org
/
pin.to.it
6
fork
atom
Scrapboard.org client
6
fork
atom
overview
issues
pulls
pipelines
feat: update navbar and boards
TurtlePaw
7 months ago
d7499113
8ac448ab
+36
-30
2 changed files
expand all
collapse all
unified
split
src
app
boards
page.tsx
nav
navbar.tsx
+23
-25
src/app/boards/page.tsx
···
34
34
);
35
35
36
36
return (
37
37
-
<div className="py-4 px-4 sm:py-8 sm:px-6 lg:px-8 flex items-center justify-center">
38
38
-
{/* Container that adapts to image width */}
39
39
-
<div className="w-full max-w-4xl flex justify-center">
40
40
-
<div className="inline-block">
41
41
-
<div className="grid grid-cols-1 md:grid-cols-4 gap-3">
42
42
-
{Array.from(boards.entries()).map(([key, it]) => (
43
43
-
<Link
44
44
-
href={`/board/${agent?.did ?? "unknown"}/${key}`}
45
45
-
key={key}
46
46
-
className="h-full"
37
37
+
<div className="py-4 px-4 flex items-center justify-center">
38
38
+
<div className="w-full max-w-4xl">
39
39
+
<h1 className="font-medium text-lg mb-4">My Boards</h1>
40
40
+
<div className="grid grid-cols-1 md:grid-cols-4 gap-3">
41
41
+
{Array.from(boards.entries()).map(([key, it]) => (
42
42
+
<Link
43
43
+
href={`/board/${agent?.did ?? "unknown"}/${key}`}
44
44
+
key={key}
45
45
+
className="h-full"
46
46
+
>
47
47
+
<motion.div
48
48
+
initial={{ opacity: 0, y: 2 }}
49
49
+
animate={{ opacity: 1, y: 0 }}
50
50
+
transition={{ duration: 0.3, ease: "easeOut" }}
51
51
+
whileTap={{ scale: 0.95 }}
52
52
+
className="flex flex-col h-full bg-black/10 dark:bg-white/3 p-4 rounded-lg hover:bg-black/15 dark:hover:bg-white/5 transition-colors"
47
53
>
48
48
-
<motion.div
49
49
-
initial={{ opacity: 0, y: 2 }}
50
50
-
animate={{ opacity: 1, y: 0 }}
51
51
-
transition={{ duration: 0.3, ease: "easeOut" }}
52
52
-
whileTap={{ scale: 0.95 }}
53
53
-
className="flex flex-col h-full bg-black/10 dark:bg-white/3 p-4 rounded-lg hover:bg-black/15 dark:hover:bg-white/5 transition-colors"
54
54
-
>
55
55
-
<h2 className="font-medium text-lg">{it.name}</h2>
56
56
-
<p className="text-sm text-black/80 dark:text-white/80 mt-1 line-clamp-2">
57
57
-
{it.description}
58
58
-
</p>
59
59
-
</motion.div>
60
60
-
</Link>
61
61
-
))}
62
62
-
</div>
54
54
+
<h2 className="font-medium text-lg">{it.name}</h2>
55
55
+
<p className="text-sm text-black/80 dark:text-white/80 mt-1 line-clamp-2">
56
56
+
{it.description}
57
57
+
</p>
58
58
+
</motion.div>
59
59
+
</Link>
60
60
+
))}
63
61
</div>
64
62
</div>
65
63
</div>
+13
-5
src/nav/navbar.tsx
···
26
26
DropdownMenuTrigger,
27
27
} from "@/components/ui/dropdown-menu";
28
28
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
29
29
+
import { motion } from "motion/react";
29
30
30
31
export function Navbar() {
31
32
const [open, setOpen] = useState(false);
···
35
36
return (
36
37
<header className="border-b border-border bg-background/90 backdrop-blur-[200px] sticky top-0 z-50">
37
38
<div className="flex items-center justify-between h-16 px-5">
38
38
-
<Link
39
39
-
href="/"
40
40
-
className="text-xl font-bold hover:text-black/70 dark:hover:text-white/70 transition-colors"
39
39
+
<motion.div
40
40
+
initial={{ opacity: 0, y: 2 }}
41
41
+
animate={{ opacity: 1, y: 0 }}
42
42
+
transition={{ duration: 0.2 }}
43
43
+
whileTap={{ scale: 0.98 }}
41
44
>
42
42
-
pin.to.it
43
43
-
</Link>
45
45
+
<Link
46
46
+
href="/"
47
47
+
className="text-xl font-bold hover:text-black/70 dark:hover:text-white/70 transition-colors"
48
48
+
>
49
49
+
pin.to.it
50
50
+
</Link>
51
51
+
</motion.div>
44
52
45
53
<nav className="hidden md:flex gap-4">
46
54
{/* <Link href="/explore" className="hover:underline">