Skip to content

Commit 55fdf61

Browse files
committed
fix(settings): Show error messages when creating or renaming a folder fails
Signed-off-by: provokateurin <kate@provokateurin.de>
1 parent cf8c2f5 commit 55fdf61

File tree

1 file changed

+36
-8
lines changed

1 file changed

+36
-8
lines changed

src/settings/App.tsx

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ import AdminGroupSelect from './AdminGroupSelect'
1818
import SubAdminGroupSelect from './SubAdminGroupSelect'
1919
import { loadState } from '@nextcloud/initial-state'
2020
import { t } from '@nextcloud/l10n'
21+
import { isAxiosError } from "@nextcloud/axios";
22+
import { showError } from "@nextcloud/dialogs";
23+
import { getLoggerBuilder } from '@nextcloud/logger'
24+
25+
const logger = getLoggerBuilder()
26+
.setApp('groupfolders')
27+
.detectUser()
28+
.build()
2129

2230
const bytesInOneGibibyte = Math.pow(1024, 3)
2331
const defaultQuotaOptions = {
@@ -96,10 +104,20 @@ export class App extends Component<unknown, AppState> implements OC.Plugin<OC.Se
96104
if (!mountPoint) {
97105
return
98106
}
99-
const folder = await this.api.createFolder(mountPoint)
100-
const folders = this.state.folders
101-
folders.push(folder)
102-
this.setState({ folders, newMountPoint: '' })
107+
try {
108+
const folder = await this.api.createFolder(mountPoint)
109+
const folders = this.state.folders
110+
folders.push(folder)
111+
this.setState({ folders, newMountPoint: '' })
112+
} catch (error) {
113+
logger.error('Error while creating new folder', { error })
114+
115+
if (isAxiosError(error) && error.response.data.message) {
116+
showError(error.response.data.message)
117+
} else {
118+
showError(t('groupfolders', 'Folder could not be created'))
119+
}
120+
}
103121
}
104122

105123
attach = (search: OC.Search.Core) => {
@@ -159,10 +177,20 @@ export class App extends Component<unknown, AppState> implements OC.Plugin<OC.Se
159177
}
160178

161179
async renameFolder(folder: Folder, newName: string) {
162-
await this.api.renameFolder(folder.id, newName)
163-
const folders = this.state.folders
164-
folder.mount_point = newName
165-
this.setState({ folders, editingMountPoint: 0 })
180+
try {
181+
await this.api.renameFolder(folder.id, newName);
182+
const folders = this.state.folders
183+
folder.mount_point = newName
184+
this.setState({folders, editingMountPoint: 0})
185+
} catch (error) {
186+
logger.error('Error while renaming folder', { error })
187+
188+
if (isAxiosError(error) && error.response.data.message) {
189+
showError(error.response.data.message)
190+
} else {
191+
showError(t('groupfolders', 'Folder could not be renamed'))
192+
}
193+
}
166194
}
167195

168196
async setAcl(folder: Folder, acl: boolean) {

0 commit comments

Comments
 (0)