Skip to content

Commit 651442a

Browse files
committed
fix(CanvasSheet): improve state handling in collaboration mode to prevent render issues
1 parent 3d991ab commit 651442a

File tree

14 files changed

+387
-2632
lines changed

14 files changed

+387
-2632
lines changed

apps/collabydraw/actions/shape.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@ export async function getShapes(data: { roomName: string }) {
2626
return { success: true, shapes: [] };
2727
}
2828

29-
const shapes = shapesResponse.map((x: { message: string }) => {
30-
const messageData = JSON.parse(x.message);
31-
return messageData.shape;
32-
});
29+
const shapes = shapesResponse.map((x) => JSON.parse(x.message));
3330

3431
return { success: true, shapes };
3532
} catch (error) {

apps/collabydraw/app/(canvas)/canvas/[roomName]/page.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import client from '@repo/db/client';
22
import { notFound, redirect } from 'next/navigation';
33
import { getServerSession } from 'next-auth';
44
import { authOptions } from '@/utils/auth';
5-
// import RoomCanvas from '@/components/canvas/RoomCanvas';
65
import CanvasSheet from '@/components/canvas/CanvasSheet';
76

87
export default async function CanvasPage({ params }: { params: Promise<{ roomName: string }> }) {
@@ -23,6 +22,7 @@ export default async function CanvasPage({ params }: { params: Promise<{ roomNam
2322
console.error('User from session not found.');
2423
redirect(`/`);
2524
}
25+
console.log('CanvasPage loaded')
2626

2727
return (
2828
<CanvasSheet
@@ -32,12 +32,5 @@ export default async function CanvasPage({ params }: { params: Promise<{ roomNam
3232
userName={user.name || 'User-' + user.id}
3333
token={session.accessToken}
3434
/>
35-
// <RoomCanvas
36-
// roomId={room.id.toString()}
37-
// roomName={room.slug}
38-
// userId={user.id}
39-
// userName={user.name || 'User-' + user.id}
40-
// token={session.accessToken}
41-
// />
4235
)
4336
}

apps/collabydraw/components/CollaborationStartBtn.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ export default function CollaborationStartBtn({ slug, participants }: { slug?: s
2828
<Tooltip key={participant.userId}>
2929
<TooltipTrigger asChild>
3030
<div style={{ backgroundColor: getClientColor(participant) }} className={`w-7 h-7 rounded-full flex items-center justify-center cursor-pointer`}>
31-
<span className="text-sm font-bold text-gray-900 dark:text-gray-100">
32-
{participant.userName.charAt(0)}
31+
<span className="text-sm font-bold text-gray-900 dark:text-gray-900">
32+
{participant.userName.charAt(0).toUpperCase()}
3333
</span>
3434
</div>
3535
</TooltipTrigger>

apps/collabydraw/components/MainMenuStack.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
DownloadIcon,
1919
Upload,
2020
Linkedin,
21-
Share,
21+
Share2,
2222
} from "lucide-react"
2323
import { Button, buttonVariants } from "@/components/ui/button"
2424
import { Separator } from "@/components/ui/separator"
@@ -97,7 +97,7 @@ export function MainMenuStack({ isOpen, onClose, canvasColor, setCanvasColor, is
9797
<SidebarItem icon={TrashIcon} label="Clear canvas" onClick={() => setClearDialogOpen(true)} />
9898
<SidebarItem icon={DownloadIcon} label="Export Drawing" onClick={onExportCanvas} />
9999
<SidebarItem icon={Upload} label="Import Drawing" onClick={onImportCanvas} />
100-
<SidebarItem icon={Share} label="Live collaboration" onClick={() => setIsShareOpen(true)} />
100+
<SidebarItem icon={Share2} label="Live collaboration" onClick={() => setIsShareOpen(true)} />
101101
{session?.user && session?.user.id ? (
102102
<CollaborationStartdDialog open={isShareOpen} onOpenChange={setIsShareOpen} />
103103
) : (
@@ -114,8 +114,9 @@ export function MainMenuStack({ isOpen, onClose, canvasColor, setCanvasColor, is
114114
<CopyIcon className="h-4 w-4" />
115115
Room Name: <span>{roomName}</span>
116116
</Button>
117-
<SidebarItem icon={Trash} label="Reset the canvas" onClick={() => setClearDialogOpen(true)} />
118117
<RoomSharingDialog open={isShareOpen} onOpenChange={setIsShareOpen} link={`${process.env.NODE_ENV !== 'production' ? 'http://localhost:3000' : 'https://collabydraw.com'}/${decodedPathname}`} />
118+
<SidebarItem icon={Share2} label="Share collaboration" onClick={() => setIsShareOpen(true)} />
119+
<SidebarItem icon={Trash} label="Reset the canvas" onClick={() => setClearDialogOpen(true)} />
119120
</>
120121
)}
121122
{session?.user && session?.user.id ? (

0 commit comments

Comments
 (0)