|
@@ -35,7 +35,7 @@ const DatasetCard = ({
|
|
const { push } = useRouter()
|
|
const { push } = useRouter()
|
|
const EXTERNAL_PROVIDER = 'external' as const
|
|
const EXTERNAL_PROVIDER = 'external' as const
|
|
|
|
|
|
- const { isCurrentWorkspaceDatasetOperator } = useAppContext()
|
|
|
|
|
|
+ const { isCurrentWorkspaceDatasetOperator, currentWorkspace, userProfile } = useAppContext()
|
|
const [tags, setTags] = useState<Tag[]>(dataset.tags)
|
|
const [tags, setTags] = useState<Tag[]>(dataset.tags)
|
|
|
|
|
|
const [showRenameModal, setShowRenameModal] = useState(false)
|
|
const [showRenameModal, setShowRenameModal] = useState(false)
|
|
@@ -193,28 +193,40 @@ const DatasetCard = ({
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div className='mx-1 !hidden h-[14px] w-[1px] shrink-0 bg-divider-regular group-hover:!flex' />
|
|
|
|
- <div className='!hidden shrink-0 group-hover:!flex'>
|
|
|
|
- <CustomPopover
|
|
|
|
- htmlContent={<Operations showDelete={!isCurrentWorkspaceDatasetOperator} />}
|
|
|
|
- position="br"
|
|
|
|
- trigger="click"
|
|
|
|
- btnElement={
|
|
|
|
- <div
|
|
|
|
- className='flex h-8 w-8 cursor-pointer items-center justify-center rounded-md'
|
|
|
|
- >
|
|
|
|
- <RiMoreFill className='h-4 w-4 text-text-secondary' />
|
|
|
|
|
|
+ {
|
|
|
|
+ (
|
|
|
|
+ currentWorkspace.role === 'owner' // 所有者
|
|
|
|
+ || currentWorkspace.role === 'admin' // 管理员
|
|
|
|
+ || dataset.has_edit_permission // 编辑授权
|
|
|
|
+ || dataset.created_by === userProfile.id // 创建
|
|
|
|
+ || (dataset.edit_auth === 2 && dataset.dept_id === userProfile.dept_id) // 部门领导
|
|
|
|
+ ) && (
|
|
|
|
+ <>
|
|
|
|
+ <div className='mx-1 !hidden h-[14px] w-[1px] shrink-0 bg-divider-regular group-hover:!flex' />
|
|
|
|
+ <div className='!hidden shrink-0 group-hover:!flex'>
|
|
|
|
+ <CustomPopover
|
|
|
|
+ htmlContent={<Operations showDelete={!isCurrentWorkspaceDatasetOperator} />}
|
|
|
|
+ position="br"
|
|
|
|
+ trigger="click"
|
|
|
|
+ btnElement={
|
|
|
|
+ <div
|
|
|
|
+ className='flex h-8 w-8 cursor-pointer items-center justify-center rounded-md'
|
|
|
|
+ >
|
|
|
|
+ <RiMoreFill className='h-4 w-4 text-text-secondary' />
|
|
|
|
+ </div>
|
|
|
|
+ }
|
|
|
|
+ btnClassName={open =>
|
|
|
|
+ cn(
|
|
|
|
+ open ? '!bg-black/5 !shadow-none' : '!bg-transparent',
|
|
|
|
+ 'h-8 w-8 rounded-md border-none !p-2 hover:!bg-black/5',
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+ className={'!z-20 h-fit !w-[128px]'}
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
- }
|
|
|
|
- btnClassName={open =>
|
|
|
|
- cn(
|
|
|
|
- open ? '!bg-black/5 !shadow-none' : '!bg-transparent',
|
|
|
|
- 'h-8 w-8 rounded-md border-none !p-2 hover:!bg-black/5',
|
|
|
|
- )
|
|
|
|
- }
|
|
|
|
- className={'!z-20 h-fit !w-[128px]'}
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
|
|
+ </>
|
|
|
|
+ )
|
|
|
|
+ }
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{showRenameModal && (
|
|
{showRenameModal && (
|