From dec0d91468c63a340b1f58471a869f0cfe696b6e Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 16 Apr 2024 12:55:50 +0200 Subject: fix(files): Focus filename input in new-node dialog when opened Signed-off-by: Ferdinand Thiessen --- apps/files/src/components/NewNodeDialog.vue | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'apps/files/src') diff --git a/apps/files/src/components/NewNodeDialog.vue b/apps/files/src/components/NewNodeDialog.vue index 38337ddf4b8..5947334f11b 100644 --- a/apps/files/src/components/NewNodeDialog.vue +++ b/apps/files/src/components/NewNodeDialog.vue @@ -128,14 +128,31 @@ export default defineComponent({ defaultName() { this.localDefaultName = this.defaultName || t('files', 'New folder') }, + + /** + * Ensure the input is focussed even if the dialog is already mounted but not open + */ + open() { + this.$nextTick(() => this.focusInput()) + }, }, mounted() { // on mounted lets use the unique name this.localDefaultName = this.uniqueName - this.$nextTick(() => (this.$refs.input as unknown as ICanFocus)?.focus?.()) + this.$nextTick(() => this.focusInput()) }, methods: { t, + + /** + * Focus the filename input field + */ + focusInput() { + if (this.open) { + this.$nextTick(() => (this.$refs.input as unknown as ICanFocus)?.focus?.()) + } + }, + onCreate() { this.$emit('close', this.localDefaultName) }, -- cgit v1.2.3