diff --git a/frontend/src/pages/ForumPostDetail.tsx b/frontend/src/pages/ForumPostDetail.tsx index ae5b1c5..3970c66 100644 --- a/frontend/src/pages/ForumPostDetail.tsx +++ b/frontend/src/pages/ForumPostDetail.tsx @@ -222,6 +222,16 @@ const ForumPostDetail: React.FC = () => { setDeletionReason(''); }; + const handleCopyLink = async () => { + const shareUrl = `${window.location.origin}/forum/${post?.id}`; + + try { + await navigator.clipboard.writeText(shareUrl); + } catch (err) { + console.error("Copy to clipboard failed:", err); + } + }; + const formatDate = (dateString: string) => { const date = new Date(dateString); return date.toLocaleString(undefined, { @@ -292,7 +302,17 @@ const ForumPostDetail: React.FC = () => { Pinned )} -

{post.title}

+
+

{post.title}

+ +
diff --git a/frontend/src/pages/ItemDetail.tsx b/frontend/src/pages/ItemDetail.tsx index 1cbc033..f71edd5 100644 --- a/frontend/src/pages/ItemDetail.tsx +++ b/frontend/src/pages/ItemDetail.tsx @@ -130,6 +130,16 @@ const ItemDetail: React.FC = () => { navigate(`/items/${id}/rent?${params.toString()}`); }; + const handleCopyLink = async () => { + const shareUrl = `${window.location.origin}/items/${item?.id}`; + + try { + await navigator.clipboard.writeText(shareUrl); + } catch (err) { + console.error("Copy to clipboard failed:", err); + } + }; + const handleDateTimeChange = (field: string, value: string) => { setRentalDates((prev) => ({ ...prev, @@ -458,7 +468,17 @@ const ItemDetail: React.FC = () => {
)} {/* Item Name */} -

{item.name}

+
+

{item.name}

+ +
{/* Owner Info */} {item.owner && (