Skip to content

Commit c34d0f1

Browse files
committed
improvement(files): add sharing to file resource view
1 parent 886cfa2 commit c34d0f1

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

  • apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content

‎apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/resource-content.tsx‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
Folder as FolderIcon,
1717
Library,
1818
Loader,
19+
Send,
1920
Square,
2021
SquareArrowUpRight,
2122
Workflow as WorkflowIcon,
@@ -40,6 +41,7 @@ import {
4041
type PreviewMode,
4142
resolveFileCategory,
4243
} from '@/app/workspace/[workspaceId]/files/components/file-viewer'
44+
import { ShareModal } from '@/app/workspace/[workspaceId]/files/components/share-modal'
4345
import type { BrowserPanelOverlayController } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-panel-occlusion'
4446
import { BrowserSession } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/browser-session/browser-session'
4547
import { GenericResourceContent } from '@/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/components/generic-resource-content'
@@ -396,6 +398,7 @@ export function ResourceActions({
396398
case 'file':
397399
return (
398400
<EmbeddedFileActions
401+
key={`${workspaceId}:${resource.id}`}
399402
workspaceId={workspaceId}
400403
fileId={resource.id}
401404
filePath={resource.path}
@@ -652,6 +655,8 @@ function EmbeddedFileActions({
652655
downloadSourceRef,
653656
}: EmbeddedFileActionsProps) {
654657
const router = useRouter()
658+
const { canEdit } = useUserPermissionsContext()
659+
const [isShareOpen, setIsShareOpen] = useState(false)
655660
const { data: files = [], isLoading: listLoading } = useWorkspaceFiles(workspaceId)
656661
const listedFile = files.find(
657662
(file) =>
@@ -707,6 +712,35 @@ function EmbeddedFileActions({
707712
<p>Download</p>
708713
</Tooltip.Content>
709714
</Tooltip.Root>
715+
{file && !isUpload && canEdit && (
716+
<>
717+
<Tooltip.Root>
718+
<Tooltip.Trigger asChild>
719+
<TabStripAction
720+
variant='subtle'
721+
onClick={() => setIsShareOpen(true)}
722+
aria-label='Share file'
723+
>
724+
<Send className={RESOURCE_TAB_ICON_CLASS} />
725+
</TabStripAction>
726+
</Tooltip.Trigger>
727+
<Tooltip.Content side='bottom'>
728+
<p>Share</p>
729+
</Tooltip.Content>
730+
</Tooltip.Root>
731+
{isShareOpen && (
732+
<ShareModal
733+
key={file.id}
734+
open
735+
onOpenChange={setIsShareOpen}
736+
workspaceId={workspaceId}
737+
fileId={file.id}
738+
fileName={file.name}
739+
initialShare={file.share ?? null}
740+
/>
741+
)}
742+
</>
743+
)}
710744
</>
711745
)
712746
}

0 commit comments

Comments
 (0)