mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									0527e6a5c1
								
							
						
					
					
						commit
						265b668cb4
					
				| @ -0,0 +1,56 @@ | ||||
| const emailRegexp = /([^@;,<>\s]+@[^@;,<>\s]+)/g | ||||
| 
 | ||||
| export default class extends HTMLElement { | ||||
|   connectedCallback () { | ||||
|     if (this.dataset.limit) { | ||||
|       this.textarea.addEventListener('input', () => { | ||||
|         const emails = this.textarea.value.match(emailRegexp) || [] | ||||
| 
 | ||||
|         this.updateCounter(emails.length) | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   updateCounter (count) { | ||||
|     let counter = document.getElementById('emails_counter') | ||||
|     let bulkMessage = document.getElementById('bulk_message') | ||||
| 
 | ||||
|     if (count < 2) { | ||||
|       counter?.remove() | ||||
| 
 | ||||
|       return | ||||
|     } | ||||
| 
 | ||||
|     if ((count + 10) > this.dataset.limit) { | ||||
|       if (!counter) { | ||||
|         counter = document.createElement('span') | ||||
| 
 | ||||
|         counter.id = 'emails_counter' | ||||
|         counter.classList.add('text-xs', 'right-0', 'absolute') | ||||
|         counter.style.bottom = '-15px' | ||||
| 
 | ||||
|         this.textarea.parentNode.append(counter) | ||||
|       } | ||||
| 
 | ||||
|       counter.innerText = `${count} / ${this.dataset.limit}` | ||||
|     } | ||||
| 
 | ||||
|     if (this.dataset.bulkEnabled !== 'true') { | ||||
|       if (!bulkMessage) { | ||||
|         bulkMessage = document.createElement('span') | ||||
| 
 | ||||
|         bulkMessage.id = 'bulk_message' | ||||
|         bulkMessage.classList.add('text-xs', 'left-0', 'absolute') | ||||
|         bulkMessage.style.bottom = '-15px' | ||||
| 
 | ||||
|         this.textarea.parentNode.append(bulkMessage) | ||||
|       } | ||||
| 
 | ||||
|       bulkMessage.innerHTML = '<a class="link" data-turbo="false" href="/upgrade">Upgrade</a> to bulk send multiple recipients' | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   get textarea () { | ||||
|     return this.querySelector('textarea') | ||||
|   } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue