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 && (