kopia lustrzana https://github.com/nextcloud/social
				
				
				
			Automaticaly validates the last mention of a post when the user directly
clicks on the "post" button without validating the mention first. Signed-off-by: Cyrille Bollu <cyrpub@bollu.be>pull/731/head
							rodzic
							
								
									503c404445
								
							
						
					
					
						commit
						ddccc7cba1
					
				| 
						 | 
				
			
			@ -783,17 +783,32 @@ export default {
 | 
			
		|||
			// Trick to let vue-contenteditable know that tribute replaced a mention or hashtag
 | 
			
		||||
			this.$refs.composerInput.oninput(event)
 | 
			
		||||
		},
 | 
			
		||||
		createPost(event) {
 | 
			
		||||
		createPost: async function(event) {
 | 
			
		||||
 | 
			
		||||
			let postData = this.getPostData()
 | 
			
		||||
 | 
			
		||||
			// Trick to validate last mention when the user directly clicks on the "post" button without validating it.
 | 
			
		||||
			let regex = /@([-\w]+)$/
 | 
			
		||||
			let lastMention = postData.content.match(regex)
 | 
			
		||||
			if (lastMention) {
 | 
			
		||||
 | 
			
		||||
				// Ask the server for matching accounts, and wait for the results
 | 
			
		||||
				let result = await this.remoteSearchAccounts(lastMention[1])
 | 
			
		||||
 | 
			
		||||
				// Validate the last mention only when it matches a single account
 | 
			
		||||
				if (result.data.result.accounts.length === 1) {
 | 
			
		||||
					postData.content = postData.content.replace(regex, '@' + result.data.result.accounts[0].account)
 | 
			
		||||
					postData.to.push('@' + result.data.result.accounts[0].account)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Abort if the post is a direct message and no valid mentions were found
 | 
			
		||||
			if (this.type === 'direct' && postData.to.length === 0) {
 | 
			
		||||
				OC.Notification.showTemporary(t('social', 'Error while trying to post your message: Could not find any valid recipients.'), { type: 'error' })
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Post toot
 | 
			
		||||
			// Post message
 | 
			
		||||
			this.loading = true
 | 
			
		||||
			this.$store.dispatch('post', postData).then((response) => {
 | 
			
		||||
				this.loading = false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue