Skip to content

Commit ee51f6f

Browse files
committed
smaller bundles
1 parent 2680071 commit ee51f6f

File tree

92 files changed

+2330
-1295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+2330
-1295
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,15 @@
7878
"remark-parse": "^11.0.0",
7979
"remark-rehype": "^11.1.2",
8080
"remove-markdown": "^0.5.0",
81+
"resend": "^6.6.0",
8182
"shiki": "^1.4.0",
8283
"tailwind-merge": "^1.14.0",
8384
"unified": "^11.0.5",
8485
"unist-util-visit": "^5.0.0",
8586
"uploadthing": "^7.7.4",
87+
"valibot": "^1.2.0",
8688
"vite-bundle-analyzer": "^1.2.1",
8789
"vite-tsconfig-paths": "^5.0.1",
88-
"zod": "^4.0.17",
8990
"zustand": "^4.5.2"
9091
},
9192
"devDependencies": {
@@ -108,6 +109,7 @@
108109
"npm-run-all": "^4.1.5",
109110
"postcss": "^8.4.35",
110111
"prettier": "^3.7.4",
112+
"source-map-explorer": "^2.5.3",
111113
"tailwindcss": "^4.1.11",
112114
"tsx": "^4.21.0",
113115
"typescript": "^5.6.3",

pnpm-lock.yaml

Lines changed: 281 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import * as React from 'react'
2+
import { Link } from '@tanstack/react-router'
3+
import { ChevronDown, Settings, Lock, LogOut } from 'lucide-react'
4+
import { Avatar } from '~/components/Avatar'
5+
import {
6+
Dropdown,
7+
DropdownTrigger,
8+
DropdownContent,
9+
DropdownItem,
10+
DropdownSeparator,
11+
} from '~/components/Dropdown'
12+
13+
interface AuthenticatedUserMenuProps {
14+
user: {
15+
image?: string | null
16+
oauthImage?: string | null
17+
name?: string | null
18+
email?: string | null
19+
} | null
20+
canAdmin: boolean
21+
onSignOut: () => void
22+
}
23+
24+
export function AuthenticatedUserMenu({
25+
user,
26+
canAdmin,
27+
onSignOut,
28+
}: AuthenticatedUserMenuProps) {
29+
return (
30+
<Dropdown>
31+
<DropdownTrigger>
32+
<div className="flex items-center gap-1 cursor-pointer h-[26px]">
33+
<Avatar
34+
image={user?.image}
35+
oauthImage={user?.oauthImage}
36+
name={user?.name}
37+
email={user?.email}
38+
size="xs"
39+
className="w-[26px] h-[26px]"
40+
/>
41+
<ChevronDown className="w-3 h-3 opacity-50" />
42+
</div>
43+
</DropdownTrigger>
44+
<DropdownContent align="end">
45+
<div className="px-2 py-1.5 text-xs text-gray-500 dark:text-gray-400">
46+
{user?.email}
47+
</div>
48+
<DropdownSeparator />
49+
<DropdownItem asChild>
50+
<Link to="/account" className="flex items-center gap-2">
51+
<Settings className="w-4 h-4" />
52+
<span>Account</span>
53+
</Link>
54+
</DropdownItem>
55+
{canAdmin && (
56+
<DropdownItem asChild>
57+
<Link to="/admin" className="flex items-center gap-2">
58+
<Lock className="w-4 h-4" />
59+
<span>Admin</span>
60+
</Link>
61+
</DropdownItem>
62+
)}
63+
<DropdownSeparator />
64+
<DropdownItem onSelect={onSignOut}>
65+
<LogOut className="w-4 h-4" />
66+
<span>Sign out</span>
67+
</DropdownItem>
68+
</DropdownContent>
69+
</Dropdown>
70+
)
71+
}

src/components/FeedEntry.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { format, formatDistanceToNow } from 'date-fns'
1+
import { format, formatDistanceToNow } from '~/utils/dates'
22
import { Markdown } from '~/components/Markdown'
33
import { libraries } from '~/libraries'
44
import { partners } from '~/utils/partners'

src/components/FeedEntryTimeline.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react'
2-
import { format, formatDistanceToNow } from 'date-fns'
2+
import { format, formatDistanceToNow } from '~/utils/dates'
33
import { Markdown } from '~/components/Markdown'
44
import { Card } from '~/components/Card'
55
import { libraries } from '~/libraries'

src/components/FeedTicker.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react'
22
import { useQuery, keepPreviousData } from '@tanstack/react-query'
33
import { listFeedEntriesQueryOptions } from '~/queries/feed'
44
import { Link } from '@tanstack/react-router'
5-
import { formatDistanceToNow } from 'date-fns'
5+
import { formatDistanceToNow } from '~/utils/dates'
66
import { libraries } from '~/libraries'
77

88
const DISPLAY_DURATION = 7000 // 7 seconds in milliseconds

src/components/FeedbackModerationList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export function FeedbackModerationList({
166166
>
167167
<TableCell className="font-mono text-xs">
168168
<Link
169-
to="/admin/feedback_/$id"
169+
to="/admin/feedback/$id"
170170
params={{ id: feedback.id }}
171171
className="hover:text-blue-600 dark:hover:text-blue-400"
172172
onClick={(e) => e.stopPropagation()}
@@ -176,7 +176,7 @@ export function FeedbackModerationList({
176176
</TableCell>
177177
<TableCell>
178178
<Link
179-
to="/admin/feedback_/$id"
179+
to="/admin/feedback/$id"
180180
params={{ id: feedback.id }}
181181
className="flex items-center gap-2 hover:opacity-80"
182182
onClick={(e) => e.stopPropagation()}

0 commit comments

Comments
 (0)