diff --git a/tdrive/frontend/src/app/features/drive/hooks/use-drive-actions.tsx b/tdrive/frontend/src/app/features/drive/hooks/use-drive-actions.tsx index cbb7eb3d0..426fec9a4 100644 --- a/tdrive/frontend/src/app/features/drive/hooks/use-drive-actions.tsx +++ b/tdrive/frontend/src/app/features/drive/hooks/use-drive-actions.tsx @@ -13,7 +13,7 @@ import { useUserQuota } from 'features/users/hooks/use-user-quota'; * Returns the children of a drive item * @returns */ -export const useDriveActions = () => { +export const useDriveActions = (inPublicSharing?: boolean) => { const companyId = useRouterCompany(); const sharedFilter = useRecoilValue(SharedWithMeFilterState); const sortItem = useRecoilValue(DriveItemSort); @@ -142,7 +142,7 @@ export const useDriveActions = () => { try { await DriveApiClient.update(companyId, id, update); await refresh(id || '', true); - await refresh(parentId || '', true); + if (!inPublicSharing) await refresh(parentId || '', true); if (update?.parent_id !== parentId) await refresh(update?.parent_id || '', true); } catch (e) { ToasterService.error(Languages.t('hooks.use-drive-actions.unable_update_file')); diff --git a/tdrive/frontend/src/app/views/client/body/drive/browser.tsx b/tdrive/frontend/src/app/views/client/body/drive/browser.tsx index 933494985..ac223b9b1 100644 --- a/tdrive/frontend/src/app/views/client/body/drive/browser.tsx +++ b/tdrive/frontend/src/app/views/client/body/drive/browser.tsx @@ -160,7 +160,7 @@ export default memo( const selectedCount = Object.values(checked).filter(v => v).length; - const onBuildContextMenu = useOnBuildContextMenu(children, initialParentId); + const onBuildContextMenu = useOnBuildContextMenu(children, initialParentId, inPublicSharing); const onBuildSortContextMenu = useOnBuildSortContextMenu(); const handleDragOver = (event: { preventDefault: () => void }) => { diff --git a/tdrive/frontend/src/app/views/client/body/drive/context-menu.tsx b/tdrive/frontend/src/app/views/client/body/drive/context-menu.tsx index 912565047..97ebe6b1e 100644 --- a/tdrive/frontend/src/app/views/client/body/drive/context-menu.tsx +++ b/tdrive/frontend/src/app/views/client/body/drive/context-menu.tsx @@ -31,7 +31,11 @@ import { hasAnyPublicLinkAccess } from '@features/files/utils/access-info-helper /** * This will build the context menu in different contexts */ -export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: string) => { +export const useOnBuildContextMenu = ( + children: DriveItem[], + initialParentId?: string, + inPublicSharing?: boolean, +) => { const [checkedIds, setChecked] = useRecoilState(DriveItemSelectedList); const checked = children.filter(c => checkedIds[c.id]); @@ -55,7 +59,7 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s const company = useRouterCompany(); function getIdsFromArray(arr: DriveItem[]): string[] { - return arr.map((obj) => obj.id); + return arr.map(obj => obj.id); } return useCallback( @@ -63,7 +67,7 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s if (!parent || !parent.access) return []; try { - const inTrash = parent.path?.[0]?.id.includes('trash') || viewId?.includes("trash"); + const inTrash = parent.path?.[0]?.id.includes('trash') || viewId?.includes('trash'); const isPersonal = item?.scope === 'personal'; const selectedCount = checked.length; @@ -144,7 +148,7 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s icon: 'file-edit-alt', text: Languages.t('components.item_context_menu.rename'), hide: access === 'read' || inTrash, - onClick: () => setPropertiesModalState({ open: true, id: item.id }), + onClick: () => setPropertiesModalState({ open: true, id: item.id, inPublicSharing }), }, { type: 'menu', @@ -307,10 +311,12 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s if (parent.children && parent.children.length > 0) { downloadZip([parent.item!.id]); } else if (parent.item) { - console.log("Download folder itself"); + console.log('Download folder itself'); download(parent.item.id); } else { - console.error("Very strange, everything is null, you are trying to download undefined"); + console.error( + 'Very strange, everything is null, you are trying to download undefined', + ); } }, }, @@ -325,13 +331,13 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s ); }, }, - { type: 'separator', hide: parent.item!.id != 'root', }, + { type: 'separator', hide: parent.item!.id != 'root' }, { type: 'menu', text: Languages.t('components.item_context_menu.manage_users'), hide: parent.item!.id != 'root', onClick: () => setUsersModalState({ open: true }), - } + }, ]; if (menu.length && newMenuActions.filter(a => !a.hide).length) { menu = [...menu, { type: 'separator' }]; diff --git a/tdrive/frontend/src/app/views/client/body/drive/modals/properties/index.tsx b/tdrive/frontend/src/app/views/client/body/drive/modals/properties/index.tsx index e3c75e8b6..41a0bdcdd 100644 --- a/tdrive/frontend/src/app/views/client/body/drive/modals/properties/index.tsx +++ b/tdrive/frontend/src/app/views/client/body/drive/modals/properties/index.tsx @@ -11,6 +11,7 @@ import Languages from '@features/global/services/languages-service'; export type PropertiesModalType = { open: boolean; id: string; + inPublicSharing?: boolean; }; export const PropertiesModalAtom = atom({ @@ -18,6 +19,7 @@ export const PropertiesModalAtom = atom({ default: { open: false, id: '', + inPublicSharing: false, }, }); @@ -27,15 +29,19 @@ export const PropertiesModal = () => { return ( setState({ ...state, open: false })}> {!!state.id && ( - setState({ ...state, open: false })} /> + setState({ ...state, open: false })} + inPublicSharing={state.inPublicSharing} + /> )} ); }; -const PropertiesModalContent = ({ id, onClose }: { id: string; onClose: () => void }) => { +const PropertiesModalContent = ({ id, onClose, inPublicSharing }: { id: string; onClose: () => void, inPublicSharing?: boolean }) => { const { item, refresh } = useDriveItem(id); - const { update } = useDriveActions(); + const { update } = useDriveActions(inPublicSharing); const [loading, setLoading] = useState(false); const [name, setName] = useState(''); diff --git a/tdrive/frontend/src/app/views/client/body/drive/shared.tsx b/tdrive/frontend/src/app/views/client/body/drive/shared.tsx index 4fdecc632..df3c35294 100755 --- a/tdrive/frontend/src/app/views/client/body/drive/shared.tsx +++ b/tdrive/frontend/src/app/views/client/body/drive/shared.tsx @@ -82,7 +82,7 @@ export default () => {
- +