Skip to content

Commit b33a5b4

Browse files
committed
refactor: update workshop page
1 parent 13a8f0c commit b33a5b4

File tree

3 files changed

+44
-41
lines changed

3 files changed

+44
-41
lines changed

src/app/(app)/(workshops)/workshop/[workshopId]/_components/workshop-button.tsx

+9-21
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,9 @@ export function WorkshopButton({
2525
userId,
2626
hasWorkshopCompleted,
2727
}: WorkshopButtonProps) {
28-
if (hasWorkshopCompleted) {
29-
return (
30-
<Button disabled size="sm">
31-
Ended
32-
</Button>
33-
)
34-
}
28+
if (hasWorkshopCompleted) return
29+
30+
if (!isUserRegistered && hasWorkshopStarted) return
3531

3632
if (isUserOrganizer) {
3733
return (
@@ -54,20 +50,12 @@ export function WorkshopButton({
5450
)
5551
}
5652

57-
if (hasWorkshopStarted && isUserRegistered) {
58-
return (
59-
<Link
60-
className={cn(buttonVariants({ size: "sm" }))}
61-
href={`/session/${workshopId}`}
62-
>
63-
Join
64-
</Link>
65-
)
66-
}
67-
6853
return (
69-
<Button size="sm" disabled>
70-
Closed
71-
</Button>
54+
<Link
55+
className={cn(buttonVariants({ size: "sm" }))}
56+
href={`/session/${workshopId}`}
57+
>
58+
Join
59+
</Link>
7260
)
7361
}

src/app/(app)/(workshops)/workshop/[workshopId]/_components/workshop-settings.tsx

+20-12
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@ import { useDeleteWorkshopAlert } from "@/components/workshops/delete-workshop-a
1717

1818
interface WorkshopSettingsProps {
1919
workshop: NonNullable<Awaited<ReturnType<typeof getWorkshop>>>
20+
showEditButton: boolean
2021
}
2122

22-
export function WorkshopSettings({ workshop }: WorkshopSettingsProps) {
23+
export function WorkshopSettings({
24+
workshop,
25+
showEditButton,
26+
}: WorkshopSettingsProps) {
2327
const [open, setOpen] = React.useState(false)
2428

2529
const { setShowCreateEditWorkshopModal, CreateEditWorkshopModal } =
@@ -45,17 +49,21 @@ export function WorkshopSettings({ workshop }: WorkshopSettingsProps) {
4549
</Button>
4650
</DropdownMenuTrigger>
4751
<DropdownMenuContent align="end">
48-
<DropdownMenuItem
49-
onClick={() => {
50-
setOpen(false)
51-
setShowCreateEditWorkshopModal(true)
52-
}}
53-
aria-label="Edit Workshop"
54-
>
55-
<Icons.pen className="mr-2 size-4" aria-hidden="true" />
56-
Edit
57-
</DropdownMenuItem>
58-
<DropdownMenuSeparator />
52+
{showEditButton && (
53+
<>
54+
<DropdownMenuItem
55+
onClick={() => {
56+
setOpen(false)
57+
setShowCreateEditWorkshopModal(true)
58+
}}
59+
aria-label="Edit Workshop"
60+
>
61+
<Icons.pen className="mr-2 size-4" aria-hidden="true" />
62+
Edit
63+
</DropdownMenuItem>
64+
<DropdownMenuSeparator />
65+
</>
66+
)}
5967
<DropdownMenuItem
6068
aria-label="Delete Workshop"
6169
onClick={() => {

src/app/(app)/(workshops)/workshop/[workshopId]/page.tsx

+15-8
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,12 @@ export default async function WorkshopPage({ params }: WorkshopPageProps) {
8484
</Badge>
8585
</div>
8686

87-
{isUserOrganizer && <WorkshopSettings workshop={workshop} />}
87+
{isUserOrganizer && (
88+
<WorkshopSettings
89+
workshop={workshop}
90+
showEditButton={!workshop.hasStarted && !workshop.hasCompleted}
91+
/>
92+
)}
8893
</div>
8994

9095
<div className="flex items-center gap-2">
@@ -126,13 +131,15 @@ export default async function WorkshopPage({ params }: WorkshopPageProps) {
126131
</React.Suspense>
127132

128133
<div className="flex w-full justify-end space-x-4">
129-
<CopyButton
130-
variant="secondary"
131-
className="gap-2 text-secondary-foreground"
132-
value={workshop.accessCode}
133-
>
134-
Copy code
135-
</CopyButton>
134+
{!workshop.hasStarted && !workshop.hasCompleted && (
135+
<CopyButton
136+
variant="secondary"
137+
className="gap-2 text-secondary-foreground"
138+
value={workshop.accessCode}
139+
>
140+
Copy code
141+
</CopyButton>
142+
)}
136143

137144
<WorkshopButton
138145
userId={user.id}

0 commit comments

Comments
 (0)