Skip to content

Commit ee1c289

Browse files
committed
fixup! fixup! fixup! fixup! chore: update @nextcloud/files to 4.0.0
Signed-off-by: skjnldsv <[email protected]>
1 parent d1439a2 commit ee1c289

30 files changed

+1010
-556
lines changed

apps/files/src/actions/deleteAction.spec.ts

Lines changed: 108 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -87,18 +87,38 @@ describe('Delete action conditions tests', () => {
8787
test('Default values', () => {
8888
expect(action).toBeInstanceOf(FileAction)
8989
expect(action.id).toBe('delete')
90-
expect(action.displayName([file], view)).toBe('Delete file')
91-
expect(action.iconSvgInline([], view)).toMatch(/<svg.+<\/svg>/)
90+
expect(action.displayName({
91+
nodes: [file],
92+
view,
93+
folder: {} as Folder,
94+
contents: [],
95+
})).toBe('Delete file')
96+
expect(action.iconSvgInline({
97+
nodes: [file],
98+
view,
99+
folder: {} as Folder,
100+
contents: [],
101+
})).toMatch(/<svg.+<\/svg>/)
92102
expect(action.default).toBeUndefined()
93103
expect(action.order).toBe(100)
94104
})
95105

96106
test('Default folder displayName', () => {
97-
expect(action.displayName([folder], view)).toBe('Delete folder')
107+
expect(action.displayName({
108+
nodes: [folder],
109+
view,
110+
folder: {} as Folder,
111+
contents: [],
112+
})).toBe('Delete folder')
98113
})
99114

100115
test('Default trashbin view displayName', () => {
101-
expect(action.displayName([file], trashbinView)).toBe('Delete permanently')
116+
expect(action.displayName({
117+
nodes: [file],
118+
view: trashbinView,
119+
folder: {} as Folder,
120+
contents: [],
121+
})).toBe('Delete permanently')
102122
})
103123

104124
test('Trashbin disabled displayName', () => {
@@ -107,23 +127,58 @@ describe('Delete action conditions tests', () => {
107127
files: {},
108128
}
109129
})
110-
expect(action.displayName([file], view)).toBe('Delete permanently')
130+
expect(action.displayName({
131+
nodes: [file],
132+
view,
133+
folder: {} as Folder,
134+
contents: [],
135+
})).toBe('Delete permanently')
111136
expect(capabilities.getCapabilities).toBeCalledTimes(1)
112137
})
113138

114139
test('Shared root node displayName', () => {
115-
expect(action.displayName([file2], view)).toBe('Leave this share')
116-
expect(action.displayName([folder2], view)).toBe('Leave this share')
117-
expect(action.displayName([file2, folder2], view)).toBe('Leave these shares')
140+
expect(action.displayName({
141+
nodes: [file2],
142+
view,
143+
folder: {} as Folder,
144+
contents: [],
145+
})).toBe('Leave this share')
146+
expect(action.displayName({
147+
nodes: [folder2],
148+
view,
149+
folder: {} as Folder,
150+
contents: [],
151+
})).toBe('Leave this share')
152+
expect(action.displayName({
153+
nodes: [file2, folder2],
154+
view,
155+
folder: {} as Folder,
156+
contents: [],
157+
})).toBe('Leave these shares')
118158
})
119159

120160
test('External storage root node displayName', () => {
121-
expect(action.displayName([folder3], view)).toBe('Disconnect storage')
122-
expect(action.displayName([folder3, folder3], view)).toBe('Disconnect storages')
161+
expect(action.displayName({
162+
nodes: [folder3],
163+
view,
164+
folder: {} as Folder,
165+
contents: [],
166+
})).toBe('Disconnect storage')
167+
expect(action.displayName({
168+
nodes: [folder3, folder3],
169+
view,
170+
folder: {} as Folder,
171+
contents: [],
172+
})).toBe('Disconnect storages')
123173
})
124174

125175
test('Shared and owned nodes displayName', () => {
126-
expect(action.displayName([file, file2], view)).toBe('Delete and unshare')
176+
expect(action.displayName({
177+
nodes: [file, file2],
178+
view,
179+
folder: {} as Folder,
180+
contents: [],
181+
})).toBe('Delete and unshare')
127182
})
128183
})
129184

@@ -154,7 +209,12 @@ describe('Delete action enabled tests', () => {
154209
})
155210

156211
expect(action.enabled).toBeDefined()
157-
expect(action.enabled!([file], view)).toBe(true)
212+
expect(action.enabled!({
213+
nodes: [file],
214+
view,
215+
folder: {} as Folder,
216+
contents: [],
217+
})).toBe(true)
158218
})
159219

160220
test('Disabled without DELETE permissions', () => {
@@ -167,12 +227,22 @@ describe('Delete action enabled tests', () => {
167227
})
168228

169229
expect(action.enabled).toBeDefined()
170-
expect(action.enabled!([file], view)).toBe(false)
230+
expect(action.enabled!({
231+
nodes: [file],
232+
view,
233+
folder: {} as Folder,
234+
contents: [],
235+
})).toBe(false)
171236
})
172237

173238
test('Disabled without nodes', () => {
174239
expect(action.enabled).toBeDefined()
175-
expect(action.enabled!([], view)).toBe(false)
240+
expect(action.enabled!({
241+
nodes: [],
242+
view,
243+
folder: {} as Folder,
244+
contents: [],
245+
})).toBe(false)
176246
})
177247

178248
test('Disabled if not all nodes can be deleted', () => {
@@ -190,9 +260,24 @@ describe('Delete action enabled tests', () => {
190260
})
191261

192262
expect(action.enabled).toBeDefined()
193-
expect(action.enabled!([folder1], view)).toBe(true)
194-
expect(action.enabled!([folder2], view)).toBe(false)
195-
expect(action.enabled!([folder1, folder2], view)).toBe(false)
263+
expect(action.enabled!({
264+
nodes: [folder1],
265+
view,
266+
folder: {} as Folder,
267+
contents: [],
268+
})).toBe(true)
269+
expect(action.enabled!({
270+
nodes: [folder2],
271+
view,
272+
folder: {} as Folder,
273+
contents: [],
274+
})).toBe(false)
275+
expect(action.enabled!({
276+
nodes: [folder1, folder2],
277+
view,
278+
folder: {} as Folder,
279+
contents: [],
280+
})).toBe(false)
196281
})
197282

198283
test('Disabled if not allowed', () => {
@@ -201,7 +286,12 @@ describe('Delete action enabled tests', () => {
201286
})))
202287

203288
expect(action.enabled).toBeDefined()
204-
expect(action.enabled!([], view)).toBe(false)
289+
expect(action.enabled!({
290+
nodes: [],
291+
view,
292+
folder: {} as Folder,
293+
contents: [],
294+
})).toBe(false)
205295
})
206296
})
207297

apps/files/src/actions/deleteAction.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
5-
6-
import type { Node, View } from '@nextcloud/files'
7-
85
import CloseSvg from '@mdi/svg/svg/close.svg?raw'
96
import NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw'
107
import TrashCanSvg from '@mdi/svg/svg/trash-can-outline.svg?raw'
@@ -26,7 +23,7 @@ export const ACTION_DELETE = 'delete'
2623
export const action = new FileAction({
2724
id: ACTION_DELETE,
2825
displayName,
29-
enabled({ nodes }) => {
26+
iconSvgInline: ({ nodes }) => {
3027
if (canUnshareOnly(nodes)) {
3128
return CloseSvg
3229
}
@@ -38,7 +35,7 @@ export const action = new FileAction({
3835
return TrashCanSvg
3936
},
4037

41-
enabled(nodes: Node[], view: View): boolean {
38+
enabled({ nodes, view }) {
4239
if (view.id === TRASHBIN_VIEW_ID) {
4340
const config = loadState('files_trashbin', 'config', { allow_delete: true })
4441
if (config.allow_delete === false) {
@@ -51,7 +48,7 @@ export const action = new FileAction({
5148
.every((permission) => (permission & Permission.DELETE) !== 0)
5249
},
5350

54-
async exec({ nodes, view }): Promise<boolean | null> {
51+
async exec({ nodes, view }) {
5552
try {
5653
let confirm = true
5754

@@ -74,12 +71,12 @@ export const action = new FileAction({
7471

7572
return true
7673
} catch (error) {
77-
logger.error('Error while deleting a file', { error, source: node.source, node })
74+
logger.error('Error while deleting a file', { error, source: nodes[0].source, node: nodes[0] })
7875
return false
7976
}
8077
},
8178

82-
async execBatch({ nodes, view }): Promise<(boolean | null)[]> {
79+
async execBatch({ nodes, view }) {
8380
let confirm = true
8481

8582
if (shouldAskForConfirmation()) {

apps/files/src/actions/deleteUtils.ts

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,16 @@ import { useUserConfigStore } from '../store/userconfig.ts'
1616

1717
export const isTrashbinEnabled = () => (getCapabilities() as Capabilities)?.files?.undelete === true
1818

19-
/**
20-
*
21-
* @param nodes
22-
*/
2319
export function canUnshareOnly(nodes: Node[]) {
2420
return nodes.every((node) => node.attributes['is-mount-root'] === true
2521
&& node.attributes['mount-type'] === 'shared')
2622
}
2723

28-
/**
29-
*
30-
* @param nodes
31-
*/
3224
export function canDisconnectOnly(nodes: Node[]) {
3325
return nodes.every((node) => node.attributes['is-mount-root'] === true
3426
&& node.attributes['mount-type'] === 'external')
3527
}
3628

37-
/**
38-
*
39-
* @param nodes
40-
*/
4129
export function isMixedUnshareAndDelete(nodes: Node[]) {
4230
if (nodes.length === 1) {
4331
return false
@@ -48,28 +36,15 @@ export function isMixedUnshareAndDelete(nodes: Node[]) {
4836
return hasSharedItems && hasDeleteItems
4937
}
5038

51-
/**
52-
*
53-
* @param nodes
54-
*/
5539
export function isAllFiles(nodes: Node[]) {
5640
return !nodes.some((node) => node.type !== FileType.File)
5741
}
5842

59-
/**
60-
*
61-
* @param nodes
62-
*/
6343
export function isAllFolders(nodes: Node[]) {
6444
return !nodes.some((node) => node.type !== FileType.Folder)
6545
}
6646

67-
/**
68-
*
69-
* @param nodes
70-
* @param view
71-
*/
72-
export function displayName(nodes: Node[], view: View) {
47+
export function displayName({ nodes, view }: { nodes: Node[], view: View }) {
7348
/**
7449
* If those nodes are all the root node of a
7550
* share, we can only unshare them.
@@ -129,19 +104,11 @@ export function displayName(nodes: Node[], view: View) {
129104
return t('files', 'Delete')
130105
}
131106

132-
/**
133-
*
134-
*/
135107
export function shouldAskForConfirmation() {
136108
const userConfig = useUserConfigStore(getPinia())
137109
return userConfig.userConfig.show_dialog_deletion !== false
138110
}
139111

140-
/**
141-
*
142-
* @param nodes
143-
* @param view
144-
*/
145112
export async function askConfirmation(nodes: Node[], view: View) {
146113
const message = view.id === 'trashbin' || !isTrashbinEnabled()
147114
? n('files', 'You are about to permanently delete {count} item', 'You are about to permanently delete {count} items', nodes.length, { count: nodes.length })
@@ -154,7 +121,7 @@ export async function askConfirmation(nodes: Node[], view: View) {
154121
t('files', 'Confirm deletion'),
155122
{
156123
type: window.OC.dialogs.YES_NO_BUTTONS,
157-
confirm: displayName(nodes, view),
124+
confirm: displayName({ nodes, view }),
158125
confirmClasses: 'error',
159126
cancel: t('files', 'Cancel'),
160127
},
@@ -165,10 +132,6 @@ export async function askConfirmation(nodes: Node[], view: View) {
165132
})
166133
}
167134

168-
/**
169-
*
170-
* @param node
171-
*/
172135
export async function deleteNode(node: Node) {
173136
await axios.delete(node.encodedSource)
174137

0 commit comments

Comments
 (0)