From 2490053dd5ca651c81a720c16e9332d7779da3f1 Mon Sep 17 00:00:00 2001 From: Ilya Artamonov Date: Sat, 15 Jul 2023 22:06:26 +0300 Subject: [PATCH] refactor: Some improvements for File input component --- .../fileInput/examples/FileInpDefault.vue | 3 +- .../fileInput/examples/FileInpDropZone.vue | 6 +- .../fileInput/examples/FileInpHelper.vue | 4 +- .../fileInput/examples/FileInpSize.vue | 11 +-- .../fileInput/examples/MultipleFile.vue | 30 +++---- src/components/FileInput/FileInput.vue | 85 ++++++++++++------- .../composables/useFileInputClasses.ts | 26 +++--- 7 files changed, 91 insertions(+), 74 deletions(-) diff --git a/docs/components/fileInput/examples/FileInpDefault.vue b/docs/components/fileInput/examples/FileInpDefault.vue index 75c04713..38d661e0 100644 --- a/docs/components/fileInput/examples/FileInpDefault.vue +++ b/docs/components/fileInput/examples/FileInpDefault.vue @@ -8,6 +8,5 @@ import FileInput from '../../../../src/components/FileInput/FileInput.vue' import { ref } from 'vue' -const file = ref() - +const file = ref(null) diff --git a/docs/components/fileInput/examples/FileInpDropZone.vue b/docs/components/fileInput/examples/FileInpDropZone.vue index ca08d6de..4b1c8d67 100644 --- a/docs/components/fileInput/examples/FileInpDropZone.vue +++ b/docs/components/fileInput/examples/FileInpDropZone.vue @@ -1,8 +1,6 @@ @@ -10,5 +8,5 @@ import FileInput from '../../../../src/components/FileInput/FileInput.vue' import { ref } from 'vue' -const file = ref('') +const file = ref(null) diff --git a/docs/components/fileInput/examples/FileInpHelper.vue b/docs/components/fileInput/examples/FileInpHelper.vue index 8a013f88..05ce29f2 100644 --- a/docs/components/fileInput/examples/FileInpHelper.vue +++ b/docs/components/fileInput/examples/FileInpHelper.vue @@ -1,7 +1,7 @@ @@ -10,5 +10,5 @@ import FileInput from '../../../../src/components/FileInput/FileInput.vue' import { ref } from 'vue' -const file = ref('') +const file = ref(null) diff --git a/docs/components/fileInput/examples/FileInpSize.vue b/docs/components/fileInput/examples/FileInpSize.vue index beaf07c9..b0fe5c1a 100644 --- a/docs/components/fileInput/examples/FileInpSize.vue +++ b/docs/components/fileInput/examples/FileInpSize.vue @@ -1,12 +1,13 @@ diff --git a/docs/components/fileInput/examples/MultipleFile.vue b/docs/components/fileInput/examples/MultipleFile.vue index 69dd4c4c..d50ac3a9 100644 --- a/docs/components/fileInput/examples/MultipleFile.vue +++ b/docs/components/fileInput/examples/MultipleFile.vue @@ -1,19 +1,17 @@ - - - \ No newline at end of file + + + + diff --git a/src/components/FileInput/FileInput.vue b/src/components/FileInput/FileInput.vue index 7266037e..99456536 100644 --- a/src/components/FileInput/FileInput.vue +++ b/src/components/FileInput/FileInput.vue @@ -3,26 +3,30 @@
-
+
@@ -33,21 +37,35 @@ diff --git a/src/components/FileInput/composables/useFileInputClasses.ts b/src/components/FileInput/composables/useFileInputClasses.ts index 387cdd76..1c1bf596 100644 --- a/src/components/FileInput/composables/useFileInputClasses.ts +++ b/src/components/FileInput/composables/useFileInputClasses.ts @@ -1,20 +1,22 @@ import { simplifyTailwindClasses } from '@/utils/simplifyTailwindClasses' import { computed } from 'vue' -const fileInpDefaultClasses = 'block w-full text-sm text-gray-900 border-[1px] border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400' +const fileInpDefaultClasses = + 'block w-full text-sm text-gray-900 border-[1px] border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400' const fileInpLabelClasses = 'block mb-2 text-sm font-medium text-gray-900 dark:text-white' -const fileInpDropzoneClasses = 'flex flex-col items-center justify-center w-full h-64 border-2 border-gray-300 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600' +const fileInpDropzoneClasses = + 'flex flex-col items-center justify-center w-full h-64 border-2 border-gray-300 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600' const fileDropzoneWrapClasses = 'flex flex-col items-center justify-center pt-5 pb-6' const fileDropzoneDefaultTextClasses = '!-mb-2 text-sm text-gray-500 dark:text-gray-400' export function useFileInputClasses(size: string) { - const fileInpClasses = computed(() => { - return simplifyTailwindClasses(fileInpDefaultClasses, 'text-' + size) - }) + const fileInpClasses = computed(() => { + return simplifyTailwindClasses(fileInpDefaultClasses, 'text-' + size) + }) - const labelClasses = computed(() => { - return fileInpLabelClasses - }) + const labelClasses = computed(() => { + return fileInpLabelClasses + }) const dropzoneLabelClasses = computed(() => { return fileInpDropzoneClasses @@ -28,11 +30,11 @@ export function useFileInputClasses(size: string) { return fileDropzoneDefaultTextClasses }) - return { - fileInpClasses, - labelClasses, + return { + fileInpClasses, + labelClasses, dropzoneLabelClasses, dropzoneWrapClasses, dropzoneTextClasses, - } + } }