Skip to content

Commit cd2ebaf

Browse files
committed
refactored bookmarks and snippets module to give them their own page
1 parent aa342aa commit cd2ebaf

13 files changed

Lines changed: 1584 additions & 27 deletions

File tree

app/bookmarks/page.tsx

Lines changed: 778 additions & 0 deletions
Large diffs are not rendered by default.

app/snippets/page.tsx

Lines changed: 691 additions & 0 deletions
Large diffs are not rendered by default.

components/layout/header.tsx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,34 @@ export function Header() {
9292
<p className="text-base">Dashboard</p>
9393
</Link>
9494
</Button>
95+
<Button
96+
asChild
97+
variant="ghost"
98+
size="sm"
99+
className={cn(
100+
pathname === "/bookmarks"
101+
? "text-base text-primary"
102+
: "text-base"
103+
)}
104+
>
105+
<Link href="/bookmarks">
106+
<p className="text-base">Bookmarks</p>
107+
</Link>
108+
</Button>
109+
<Button
110+
asChild
111+
variant="ghost"
112+
size="sm"
113+
className={cn(
114+
pathname === "/snippets"
115+
? "text-base text-primary"
116+
: "text-base"
117+
)}
118+
>
119+
<Link href="/snippets">
120+
<p className="text-base">Snippets</p>
121+
</Link>
122+
</Button>
95123
</div>
96124
)}
97125

components/modules/bookmarks-module.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ interface BookmarksModuleProps {
4646
onTogglePin?: () => void;
4747
isAuthenticated?: boolean;
4848
onAuthRequired?: () => void;
49+
layout?: "column" | "grid";
4950
}
5051

5152
interface BookmarkFormData {
@@ -63,6 +64,7 @@ export function BookmarksModule({
6364
onTogglePin,
6465
isAuthenticated = true,
6566
onAuthRequired,
67+
layout = "column",
6668
}: BookmarksModuleProps) {
6769
// State
6870
const [dialogOpen, setDialogOpen] = useState(false);
@@ -516,7 +518,13 @@ export function BookmarksModule({
516518
<Separator />
517519

518520
{/* Bookmarks List */}
519-
<div className="space-y-2 max-h-100 overflow-y-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-primary/50 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:hover:bg-primary pr-1">
521+
<div
522+
className={
523+
layout === "grid"
524+
? "grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-3 gap-3"
525+
: "space-y-2 max-h-100 overflow-y-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-primary/50 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:hover:bg-primary pr-1"
526+
}
527+
>
520528
{isLoading ? (
521529
<div className="text-center text-sm text-muted-foreground py-8">
522530
Loading bookmarks...

components/modules/snippet-manager-module.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ interface SnippetManagerModuleProps {
5353
onTogglePin?: () => void;
5454
isAuthenticated?: boolean;
5555
onAuthRequired?: () => void;
56+
layout?: "column" | "grid";
5657
}
5758

5859
interface SnippetFormData {
@@ -118,6 +119,7 @@ export function SnippetManagerModule({
118119
onTogglePin,
119120
isAuthenticated = true,
120121
onAuthRequired,
122+
layout = "column",
121123
}: SnippetManagerModuleProps) {
122124
// Theme
123125
const { theme } = useTheme();
@@ -582,7 +584,13 @@ export function SnippetManagerModule({
582584
)}
583585

584586
{/* Snippets List */}
585-
<div className="space-y-2 max-h-100 overflow-y-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-primary/50 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:hover:bg-primary pr-1">
587+
<div
588+
className={
589+
layout === "grid"
590+
? "grid grid-cols-1 sm:grid-cols-2 gap-3"
591+
: "space-y-2 max-h-100 overflow-y-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-primary/50 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:hover:bg-primary pr-1"
592+
}
593+
>
586594
{isLoading ? (
587595
<div className="text-center text-sm text-muted-foreground py-8">
588596
Loading snippets...

prisma/generated/prisma/internal/class.ts

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

prisma/generated/prisma/internal/prismaNamespace.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,7 @@ export const BookmarkScalarFieldEnum = {
15961596
favicon: 'favicon',
15971597
tags: 'tags',
15981598
isFavorite: 'isFavorite',
1599+
isHidden: 'isHidden',
15991600
createdAt: 'createdAt',
16001601
updatedAt: 'updatedAt'
16011602
} as const

prisma/generated/prisma/internal/prismaNamespaceBrowser.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ export const BookmarkScalarFieldEnum = {
261261
favicon: 'favicon',
262262
tags: 'tags',
263263
isFavorite: 'isFavorite',
264+
isHidden: 'isHidden',
264265
createdAt: 'createdAt',
265266
updatedAt: 'updatedAt'
266267
} as const

prisma/generated/prisma/models/Bookmark.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export type BookmarkMinAggregateOutputType = {
3333
image: string | null
3434
favicon: string | null
3535
isFavorite: boolean | null
36+
isHidden: boolean | null
3637
createdAt: Date | null
3738
updatedAt: Date | null
3839
}
@@ -46,6 +47,7 @@ export type BookmarkMaxAggregateOutputType = {
4647
image: string | null
4748
favicon: string | null
4849
isFavorite: boolean | null
50+
isHidden: boolean | null
4951
createdAt: Date | null
5052
updatedAt: Date | null
5153
}
@@ -60,6 +62,7 @@ export type BookmarkCountAggregateOutputType = {
6062
favicon: number
6163
tags: number
6264
isFavorite: number
65+
isHidden: number
6366
createdAt: number
6467
updatedAt: number
6568
_all: number
@@ -75,6 +78,7 @@ export type BookmarkMinAggregateInputType = {
7578
image?: true
7679
favicon?: true
7780
isFavorite?: true
81+
isHidden?: true
7882
createdAt?: true
7983
updatedAt?: true
8084
}
@@ -88,6 +92,7 @@ export type BookmarkMaxAggregateInputType = {
8892
image?: true
8993
favicon?: true
9094
isFavorite?: true
95+
isHidden?: true
9196
createdAt?: true
9297
updatedAt?: true
9398
}
@@ -102,6 +107,7 @@ export type BookmarkCountAggregateInputType = {
102107
favicon?: true
103108
tags?: true
104109
isFavorite?: true
110+
isHidden?: true
105111
createdAt?: true
106112
updatedAt?: true
107113
_all?: true
@@ -189,6 +195,7 @@ export type BookmarkGroupByOutputType = {
189195
favicon: string | null
190196
tags: string[]
191197
isFavorite: boolean
198+
isHidden: boolean
192199
createdAt: Date
193200
updatedAt: Date
194201
_count: BookmarkCountAggregateOutputType | null
@@ -224,6 +231,7 @@ export type BookmarkWhereInput = {
224231
favicon?: Prisma.StringNullableFilter<"Bookmark"> | string | null
225232
tags?: Prisma.StringNullableListFilter<"Bookmark">
226233
isFavorite?: Prisma.BoolFilter<"Bookmark"> | boolean
234+
isHidden?: Prisma.BoolFilter<"Bookmark"> | boolean
227235
createdAt?: Prisma.DateTimeFilter<"Bookmark"> | Date | string
228236
updatedAt?: Prisma.DateTimeFilter<"Bookmark"> | Date | string
229237
user?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>
@@ -239,6 +247,7 @@ export type BookmarkOrderByWithRelationInput = {
239247
favicon?: Prisma.SortOrderInput | Prisma.SortOrder
240248
tags?: Prisma.SortOrder
241249
isFavorite?: Prisma.SortOrder
250+
isHidden?: Prisma.SortOrder
242251
createdAt?: Prisma.SortOrder
243252
updatedAt?: Prisma.SortOrder
244253
user?: Prisma.UserOrderByWithRelationInput
@@ -257,6 +266,7 @@ export type BookmarkWhereUniqueInput = Prisma.AtLeast<{
257266
favicon?: Prisma.StringNullableFilter<"Bookmark"> | string | null
258267
tags?: Prisma.StringNullableListFilter<"Bookmark">
259268
isFavorite?: Prisma.BoolFilter<"Bookmark"> | boolean
269+
isHidden?: Prisma.BoolFilter<"Bookmark"> | boolean
260270
createdAt?: Prisma.DateTimeFilter<"Bookmark"> | Date | string
261271
updatedAt?: Prisma.DateTimeFilter<"Bookmark"> | Date | string
262272
user?: Prisma.XOR<Prisma.UserScalarRelationFilter, Prisma.UserWhereInput>
@@ -272,6 +282,7 @@ export type BookmarkOrderByWithAggregationInput = {
272282
favicon?: Prisma.SortOrderInput | Prisma.SortOrder
273283
tags?: Prisma.SortOrder
274284
isFavorite?: Prisma.SortOrder
285+
isHidden?: Prisma.SortOrder
275286
createdAt?: Prisma.SortOrder
276287
updatedAt?: Prisma.SortOrder
277288
_count?: Prisma.BookmarkCountOrderByAggregateInput
@@ -292,6 +303,7 @@ export type BookmarkScalarWhereWithAggregatesInput = {
292303
favicon?: Prisma.StringNullableWithAggregatesFilter<"Bookmark"> | string | null
293304
tags?: Prisma.StringNullableListFilter<"Bookmark">
294305
isFavorite?: Prisma.BoolWithAggregatesFilter<"Bookmark"> | boolean
306+
isHidden?: Prisma.BoolWithAggregatesFilter<"Bookmark"> | boolean
295307
createdAt?: Prisma.DateTimeWithAggregatesFilter<"Bookmark"> | Date | string
296308
updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Bookmark"> | Date | string
297309
}
@@ -305,6 +317,7 @@ export type BookmarkCreateInput = {
305317
favicon?: string | null
306318
tags?: Prisma.BookmarkCreatetagsInput | string[]
307319
isFavorite?: boolean
320+
isHidden?: boolean
308321
createdAt?: Date | string
309322
updatedAt?: Date | string
310323
user: Prisma.UserCreateNestedOneWithoutBookmarksInput
@@ -320,6 +333,7 @@ export type BookmarkUncheckedCreateInput = {
320333
favicon?: string | null
321334
tags?: Prisma.BookmarkCreatetagsInput | string[]
322335
isFavorite?: boolean
336+
isHidden?: boolean
323337
createdAt?: Date | string
324338
updatedAt?: Date | string
325339
}
@@ -333,6 +347,7 @@ export type BookmarkUpdateInput = {
333347
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
334348
tags?: Prisma.BookmarkUpdatetagsInput | string[]
335349
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
350+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
336351
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
337352
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
338353
user?: Prisma.UserUpdateOneRequiredWithoutBookmarksNestedInput
@@ -348,6 +363,7 @@ export type BookmarkUncheckedUpdateInput = {
348363
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
349364
tags?: Prisma.BookmarkUpdatetagsInput | string[]
350365
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
366+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
351367
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
352368
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
353369
}
@@ -362,6 +378,7 @@ export type BookmarkCreateManyInput = {
362378
favicon?: string | null
363379
tags?: Prisma.BookmarkCreatetagsInput | string[]
364380
isFavorite?: boolean
381+
isHidden?: boolean
365382
createdAt?: Date | string
366383
updatedAt?: Date | string
367384
}
@@ -375,6 +392,7 @@ export type BookmarkUpdateManyMutationInput = {
375392
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
376393
tags?: Prisma.BookmarkUpdatetagsInput | string[]
377394
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
395+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
378396
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
379397
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
380398
}
@@ -389,6 +407,7 @@ export type BookmarkUncheckedUpdateManyInput = {
389407
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
390408
tags?: Prisma.BookmarkUpdatetagsInput | string[]
391409
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
410+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
392411
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
393412
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
394413
}
@@ -413,6 +432,7 @@ export type BookmarkCountOrderByAggregateInput = {
413432
favicon?: Prisma.SortOrder
414433
tags?: Prisma.SortOrder
415434
isFavorite?: Prisma.SortOrder
435+
isHidden?: Prisma.SortOrder
416436
createdAt?: Prisma.SortOrder
417437
updatedAt?: Prisma.SortOrder
418438
}
@@ -426,6 +446,7 @@ export type BookmarkMaxOrderByAggregateInput = {
426446
image?: Prisma.SortOrder
427447
favicon?: Prisma.SortOrder
428448
isFavorite?: Prisma.SortOrder
449+
isHidden?: Prisma.SortOrder
429450
createdAt?: Prisma.SortOrder
430451
updatedAt?: Prisma.SortOrder
431452
}
@@ -439,6 +460,7 @@ export type BookmarkMinOrderByAggregateInput = {
439460
image?: Prisma.SortOrder
440461
favicon?: Prisma.SortOrder
441462
isFavorite?: Prisma.SortOrder
463+
isHidden?: Prisma.SortOrder
442464
createdAt?: Prisma.SortOrder
443465
updatedAt?: Prisma.SortOrder
444466
}
@@ -503,6 +525,7 @@ export type BookmarkCreateWithoutUserInput = {
503525
favicon?: string | null
504526
tags?: Prisma.BookmarkCreatetagsInput | string[]
505527
isFavorite?: boolean
528+
isHidden?: boolean
506529
createdAt?: Date | string
507530
updatedAt?: Date | string
508531
}
@@ -516,6 +539,7 @@ export type BookmarkUncheckedCreateWithoutUserInput = {
516539
favicon?: string | null
517540
tags?: Prisma.BookmarkCreatetagsInput | string[]
518541
isFavorite?: boolean
542+
isHidden?: boolean
519543
createdAt?: Date | string
520544
updatedAt?: Date | string
521545
}
@@ -559,6 +583,7 @@ export type BookmarkScalarWhereInput = {
559583
favicon?: Prisma.StringNullableFilter<"Bookmark"> | string | null
560584
tags?: Prisma.StringNullableListFilter<"Bookmark">
561585
isFavorite?: Prisma.BoolFilter<"Bookmark"> | boolean
586+
isHidden?: Prisma.BoolFilter<"Bookmark"> | boolean
562587
createdAt?: Prisma.DateTimeFilter<"Bookmark"> | Date | string
563588
updatedAt?: Prisma.DateTimeFilter<"Bookmark"> | Date | string
564589
}
@@ -572,6 +597,7 @@ export type BookmarkCreateManyUserInput = {
572597
favicon?: string | null
573598
tags?: Prisma.BookmarkCreatetagsInput | string[]
574599
isFavorite?: boolean
600+
isHidden?: boolean
575601
createdAt?: Date | string
576602
updatedAt?: Date | string
577603
}
@@ -585,6 +611,7 @@ export type BookmarkUpdateWithoutUserInput = {
585611
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
586612
tags?: Prisma.BookmarkUpdatetagsInput | string[]
587613
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
614+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
588615
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
589616
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
590617
}
@@ -598,6 +625,7 @@ export type BookmarkUncheckedUpdateWithoutUserInput = {
598625
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
599626
tags?: Prisma.BookmarkUpdatetagsInput | string[]
600627
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
628+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
601629
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
602630
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
603631
}
@@ -611,6 +639,7 @@ export type BookmarkUncheckedUpdateManyWithoutUserInput = {
611639
favicon?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
612640
tags?: Prisma.BookmarkUpdatetagsInput | string[]
613641
isFavorite?: Prisma.BoolFieldUpdateOperationsInput | boolean
642+
isHidden?: Prisma.BoolFieldUpdateOperationsInput | boolean
614643
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
615644
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
616645
}
@@ -627,6 +656,7 @@ export type BookmarkSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs
627656
favicon?: boolean
628657
tags?: boolean
629658
isFavorite?: boolean
659+
isHidden?: boolean
630660
createdAt?: boolean
631661
updatedAt?: boolean
632662
user?: boolean | Prisma.UserDefaultArgs<ExtArgs>
@@ -642,6 +672,7 @@ export type BookmarkSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Exte
642672
favicon?: boolean
643673
tags?: boolean
644674
isFavorite?: boolean
675+
isHidden?: boolean
645676
createdAt?: boolean
646677
updatedAt?: boolean
647678
user?: boolean | Prisma.UserDefaultArgs<ExtArgs>
@@ -657,6 +688,7 @@ export type BookmarkSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Exte
657688
favicon?: boolean
658689
tags?: boolean
659690
isFavorite?: boolean
691+
isHidden?: boolean
660692
createdAt?: boolean
661693
updatedAt?: boolean
662694
user?: boolean | Prisma.UserDefaultArgs<ExtArgs>
@@ -672,11 +704,12 @@ export type BookmarkSelectScalar = {
672704
favicon?: boolean
673705
tags?: boolean
674706
isFavorite?: boolean
707+
isHidden?: boolean
675708
createdAt?: boolean
676709
updatedAt?: boolean
677710
}
678711

679-
export type BookmarkOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "userId" | "url" | "title" | "description" | "image" | "favicon" | "tags" | "isFavorite" | "createdAt" | "updatedAt", ExtArgs["result"]["bookmark"]>
712+
export type BookmarkOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "userId" | "url" | "title" | "description" | "image" | "favicon" | "tags" | "isFavorite" | "isHidden" | "createdAt" | "updatedAt", ExtArgs["result"]["bookmark"]>
680713
export type BookmarkInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
681714
user?: boolean | Prisma.UserDefaultArgs<ExtArgs>
682715
}
@@ -702,6 +735,7 @@ export type $BookmarkPayload<ExtArgs extends runtime.Types.Extensions.InternalAr
702735
favicon: string | null
703736
tags: string[]
704737
isFavorite: boolean
738+
isHidden: boolean
705739
createdAt: Date
706740
updatedAt: Date
707741
}, ExtArgs["result"]["bookmark"]>
@@ -1137,6 +1171,7 @@ export interface BookmarkFieldRefs {
11371171
readonly favicon: Prisma.FieldRef<"Bookmark", 'String'>
11381172
readonly tags: Prisma.FieldRef<"Bookmark", 'String[]'>
11391173
readonly isFavorite: Prisma.FieldRef<"Bookmark", 'Boolean'>
1174+
readonly isHidden: Prisma.FieldRef<"Bookmark", 'Boolean'>
11401175
readonly createdAt: Prisma.FieldRef<"Bookmark", 'DateTime'>
11411176
readonly updatedAt: Prisma.FieldRef<"Bookmark", 'DateTime'>
11421177
}

0 commit comments

Comments
 (0)