tangled
alpha
login
or
join now
isuggest.selfce.st
/
strand
3
fork
atom
alternative tangled frontend (extremely wip)
3
fork
atom
overview
issues
pulls
pipelines
feat: tabs
serenity
2 weeks ago
06a635ab
d5d31718
+13
-19
2 changed files
expand all
collapse all
unified
split
src
components
Profile
ProfileOverview.tsx
routes
_layout
$identifier
index.tsx
-1
src/components/Profile/ProfileOverview.tsx
···
43
44
return (
45
<div className="bg-surface0 w-fit">
46
-
{/* <p>{JSON.stringify(miniDocQueryData)}</p> */}
47
<Avatar
48
uri={avatarUri}
49
className="outline-overlay0 h-48 rounded-full outline"
···
43
44
return (
45
<div className="bg-surface0 w-fit">
0
46
<Avatar
47
uri={avatarUri}
48
className="outline-overlay0 h-48 rounded-full outline"
+13
-18
src/routes/_layout/$identifier/index.tsx
···
1
import { createFileRoute } from "@tanstack/react-router";
2
-
import { LucideBookOpen } from "lucide-react";
3
import type { ReactNode } from "react";
4
import { UnderlineIconRouterLink } from "@/components/Animated/UnderlineIconRouterLink";
5
import { z } from "zod/v4";
···
33
isCurrent: currTab === "overview",
34
},
35
{
36
-
to: `/${identifier}`,
37
-
icon: <LucideBookOpen height={18} width={18} />,
38
-
label: "Overview",
39
-
isCurrent: currTab === "strings",
40
},
41
{
42
-
to: `/${identifier}`,
43
-
icon: <LucideBookOpen height={18} width={18} />,
44
-
label: "Overview",
45
-
isCurrent: currTab === "strings",
46
-
},
47
-
{
48
-
to: `/${identifier}`,
49
-
icon: <LucideBookOpen height={18} width={18} />,
50
-
label: "Overview",
51
-
isCurrent: currTab === "strings",
52
},
53
];
54
···
64
65
return (
66
<div className="flex flex-col items-center">
67
-
<div className="bg-base flex w-screen pl-4 gap-2">
68
{tabs.map(({ to, icon, label, isCurrent }) => (
69
<UnderlineIconRouterLink
0
70
to={to}
71
icon={icon}
72
label={label}
···
74
labelClassName={`text-text ${isCurrent ? "font-semibold" : ""}`}
75
iconClassName="text-text"
76
iconVariants={{}}
77
-
className={`hover:bg-surface1 rounded-t-lg p-2 px-4 transition-all ${isCurrent ? "bg-surface0" : ""}`}
78
/>
79
))}
80
</div>
81
-
<div className="bg-surface0 min-h-screen w-full">
82
{tabComponent}
83
</div>
84
</div>
···
1
import { createFileRoute } from "@tanstack/react-router";
2
+
import { LucideBookMarked, LucideBookOpen, LucideStar } from "lucide-react";
3
import type { ReactNode } from "react";
4
import { UnderlineIconRouterLink } from "@/components/Animated/UnderlineIconRouterLink";
5
import { z } from "zod/v4";
···
33
isCurrent: currTab === "overview",
34
},
35
{
36
+
to: `/${identifier}?tab=repos`,
37
+
icon: <LucideBookMarked height={18} width={18} />,
38
+
label: "Repos",
39
+
isCurrent: currTab === "repos",
40
},
41
{
42
+
to: `/${identifier}?tab=starred`,
43
+
icon: <LucideStar height={18} width={18} />,
44
+
label: "Starred",
45
+
isCurrent: currTab === "starred",
0
0
0
0
0
0
46
},
47
];
48
···
58
59
return (
60
<div className="flex flex-col items-center">
61
+
<div className="bg-base flex w-screen gap-1 pl-4">
62
{tabs.map(({ to, icon, label, isCurrent }) => (
63
<UnderlineIconRouterLink
64
+
key={to}
65
to={to}
66
icon={icon}
67
label={label}
···
69
labelClassName={`text-text ${isCurrent ? "font-semibold" : ""}`}
70
iconClassName="text-text"
71
iconVariants={{}}
72
+
className={`hover:bg-surface1 rounded-t-lg p-2.5 px-3 transition-all ${isCurrent ? "bg-surface0" : ""}`}
73
/>
74
))}
75
</div>
76
+
<div className="bg-surface0 flex min-h-screen w-full flex-col items-center">
77
{tabComponent}
78
</div>
79
</div>