diff options
author | Devlin Junker <devlin.junker@gmail.com> | 2023-09-26 15:54:33 -0700 |
---|---|---|
committer | Devlin Junker <devlin.junker@gmail.com> | 2023-09-26 15:54:33 -0700 |
commit | ba9d512239eb5ed9b80648cfde291d483e6e390e (patch) | |
tree | 5fb8751d6698fb009c5ec03be189e14b7b3b3685 /src | |
parent | 74eb3150e204f79053e6a6a7ad35b0b6f91c3fde (diff) |
tests
Signed-off-by: Devlin Junker <devlin.junker@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/components/ShareItem.vue | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/components/ShareItem.vue b/src/components/ShareItem.vue index c7898330c..195f129be 100644 --- a/src/components/ShareItem.vue +++ b/src/components/ShareItem.vue @@ -56,6 +56,11 @@ import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js' import { ShareService } from '../dataservices/share.service' +type ShareUser = { + shareName: string; + displayName: string; +} + export default Vue.extend({ components: { NcModal, @@ -75,14 +80,25 @@ export default Vue.extend({ users: [], selected: [], searching: false, - } as any + } as { + userName: string; + users: ShareUser[]; + selected: ShareUser[]; + searching: boolean; + debounceSearchUsers?: () => void; + } }, created() { this.debounceSearchUsers = _.debounce(this.searchUsers, 800) }, methods: { - clickUser(user: any) { - const selectedUsers = this.selected.map((val: any) => { return val.shareName }) + /** + * Adds or removes user to selected list + * + * @param user {ShareUser} user that was clicked + */ + clickUser(user: ShareUser) { + const selectedUsers = this.selected.map((val: ShareUser) => { return val.shareName }) if (selectedUsers.includes(user.shareName)) { this.selected.splice(selectedUsers.indexOf(user.shareName), 1) } else { @@ -90,6 +106,9 @@ export default Vue.extend({ } }, + /** + * Searches for Users based on user input to display for sharing + */ async searchUsers() { this.users = [] this.searching = true @@ -105,7 +124,7 @@ export default Vue.extend({ * Shares an item with another use in the same nextcloud instance */ async share() { - await ShareService.share(this.itemId, this.selected.map((val: any) => { return val.shareName })) + await ShareService.share(this.itemId, this.selected.map((val: ShareUser) => { return val.shareName })) this.$emit('close') }, |