diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
index f31a6e9fd8..7a077fba7b 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/WorkspaceFileRow/index.jsx
@@ -164,18 +164,28 @@ const PinItemToWorkspace = memo(({ workspace, docPath, item }) => {
setHover(true)}
onMouseLeave={() => setHover(false)}
- className="flex gap-x-2 items-center hover:bg-theme-file-picker-hover p-[2px] rounded ml-2"
+ onClick={updatePinStatus}
+ className="flex items-center ml-2 cursor-pointer"
+ data-tooltip-id="pin-document"
+ data-tooltip-content={
+ pinned ? "Un-pin from workspace" : "Pin to workspace"
+ }
>
-
+ {pinned ? (
+
+
+ {hover ? "Un-pin" : "Pinned"}
+
+
+ ) : (
+
+ )}
);
});
diff --git a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx
index 4a30b86b07..0190041ca1 100644
--- a/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx
+++ b/frontend/src/components/Modals/ManageWorkspace/Documents/WorkspaceDirectory/index.jsx
@@ -162,7 +162,11 @@ function WorkspaceDirectory({
{files.items.some((folder) => folder.items.length > 0) ||
movedItems.length > 0 ? (
-
+
{({ item, folder }) => (
{
);
});
-function RenderFileRows({ files, movedItems, children }) {
+function RenderFileRows({ files, movedItems, children, workspace }) {
function sortMovedItemsAndFiles(a, b) {
const aIsMovedItem = movedItems.some((movedItem) => movedItem.id === a.id);
const bIsMovedItem = movedItems.some((movedItem) => movedItem.id === b.id);
if (aIsMovedItem && !bIsMovedItem) return -1;
if (!aIsMovedItem && bIsMovedItem) return 1;
+
+ // Sort pinned items to the top
+ const aIsPinned = a.pinnedWorkspaces?.includes(workspace.id);
+ const bIsPinned = b.pinnedWorkspaces?.includes(workspace.id);
+ if (aIsPinned && !bIsPinned) return -1;
+ if (!aIsPinned && bIsPinned) return 1;
+
return 0;
}