Skip to content

Commit 3dc0665

Browse files
committed
fix: add allowCreateNew to filepicker
Signed-off-by: grnd-alt <[email protected]>
1 parent 5a80885 commit 3dc0665

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

lib/components/FilePicker/FilePicker.vue

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<FilePickerBreadcrumbs
2626
v-if="currentView === 'files'"
2727
v-model:path="currentPath"
28-
:show-menu="allowPickDirectory"
28+
:show-menu="allowCreateNew"
2929
@create-node="onCreateFolder" />
3030
<div v-else class="file-picker__view">
3131
<h3>{{ viewHeadline }}</h3>
@@ -99,6 +99,13 @@ const props = withDefaults(defineProps<{
9999
*/
100100
allowPickDirectory?: boolean
101101
102+
/**
103+
* Can new Files/folders be created
104+
*
105+
* @default false
106+
*/
107+
allowCreateNew?: boolean
108+
102109
/**
103110
* Is the navigation disabled
104111
*/
@@ -136,6 +143,7 @@ const props = withDefaults(defineProps<{
136143
path?: string
137144
}>(), {
138145
allowPickDirectory: false,
146+
allowCreateNew: false,
139147
disabledNavigation: false,
140148
filterFn: undefined,
141149
canPickFn: undefined,

lib/filepicker-builder.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export class FilePicker<IsMultiSelect extends boolean> {
3434
private multiSelect: IsMultiSelect
3535
private mimeTypeFilter: string[]
3636
private directoriesAllowed: boolean
37+
private createNewAllowed: boolean
3738
private buttons: IFilePickerButton[] | IFilePickerButtonFactory
3839
private path?: string
3940
private filter?: IFilePickerFilter
@@ -46,6 +47,7 @@ export class FilePicker<IsMultiSelect extends boolean> {
4647
multiSelect: IsMultiSelect,
4748
mimeTypeFilter: string[],
4849
directoriesAllowed: boolean,
50+
createNewAllowed: boolean,
4951
buttons: IFilePickerButton[] | IFilePickerButtonFactory,
5052
path?: string,
5153
filter?: IFilePickerFilter,
@@ -57,6 +59,7 @@ export class FilePicker<IsMultiSelect extends boolean> {
5759
this.multiSelect = multiSelect
5860
this.mimeTypeFilter = mimeTypeFilter
5961
this.directoriesAllowed = directoriesAllowed
62+
this.createNewAllowed = createNewAllowed
6063
this.path = path
6164
this.filter = filter
6265
this.canPick = canPick
@@ -75,6 +78,7 @@ export class FilePicker<IsMultiSelect extends boolean> {
7578

7679
const nodes = await spawnDialog(FilePickerVue, {
7780
allowPickDirectory: this.directoriesAllowed,
81+
allowCreateNew: this.createNewAllowed,
7882
buttons: this.buttons,
7983
name: this.title,
8084
path: this.path,
@@ -114,6 +118,7 @@ export class FilePickerBuilder<IsMultiSelect extends boolean> {
114118
private multiSelect = false
115119
private mimeTypeFilter: string[] = []
116120
private directoriesAllowed = false
121+
private createNewAllowed = false
117122
private path?: string
118123
private filter?: IFilePickerFilter
119124
private canPick?: IFilePickerCanPick
@@ -254,6 +259,16 @@ export class FilePickerBuilder<IsMultiSelect extends boolean> {
254259
return this
255260
}
256261

262+
/**
263+
* Allow to create New folders
264+
*
265+
* @param allow True to allow creating
266+
*/
267+
public allowCreateNew(allow = true) {
268+
this.createNewAllowed = allow
269+
return this
270+
}
271+
257272
/**
258273
* Set starting path of the FilePicker
259274
*
@@ -301,6 +316,7 @@ export class FilePickerBuilder<IsMultiSelect extends boolean> {
301316
this.multiSelect as IsMultiSelect,
302317
this.mimeTypeFilter,
303318
this.directoriesAllowed,
319+
this.createNewAllowed,
304320
this.buttons,
305321
this.path,
306322
this.filter,

0 commit comments

Comments
 (0)