forked from cybrespace/pinafore
		
	use async clipboard API (#499)
This commit is contained in:
		
							parent
							
								
									270df188cb
								
							
						
					
					
						commit
						d49af06fbd
					
				
					 3 changed files with 28 additions and 11 deletions
				
			
		
							
								
								
									
										17
									
								
								routes/_actions/copyText.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								routes/_actions/copyText.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | |||
| import { importShowCopyDialog } from '../_components/dialog/asyncDialogs' | ||||
| import { toast } from '../_utils/toast' | ||||
| 
 | ||||
| export async function copyText (text) { | ||||
|   if (navigator.clipboard) { // not supported in all browsers
 | ||||
|     try { | ||||
|       await navigator.clipboard.writeText(text) | ||||
|       toast.say('Copied to clipboard') | ||||
|       return | ||||
|     } catch (e) { | ||||
|       console.error(e) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   let showCopyDialog = await importShowCopyDialog() | ||||
|   showCopyDialog(text) | ||||
| } | ||||
|  | @ -10,7 +10,7 @@ | |||
| import ModalDialog from './ModalDialog.html' | ||||
| import { store } from '../../../_store/store' | ||||
| import GenericDialogList from './GenericDialogList.html' | ||||
| import { importShowComposeDialog, importShowCopyDialog } from '../asyncDialogs' | ||||
| import { importShowComposeDialog } from '../asyncDialogs' | ||||
| import { createDialogId } from '../helpers/createDialogId' | ||||
| import { show } from '../helpers/showDialog' | ||||
| import { close } from '../helpers/closeDialog' | ||||
|  | @ -20,6 +20,7 @@ import { setAccountMuted } from '../../../_actions/mute' | |||
| import { setAccountFollowed } from '../../../_actions/follow' | ||||
| import { setShowReblogs } from '../../../_actions/setShowReblogs' | ||||
| import { setDomainBlocked } from '../../../_actions/setDomainBlocked' | ||||
| import { copyText } from '../../../_actions/copyText' | ||||
| 
 | ||||
| export default { | ||||
|   oncreate, | ||||
|  | @ -175,8 +176,8 @@ export default { | |||
|     async onCopyClicked () { | ||||
|       let { account } = this.get() | ||||
|       let { url } = account | ||||
|       let showCopyDialog = await importShowCopyDialog() | ||||
|       showCopyDialog(url) | ||||
|       this.close() | ||||
|       await copyText(url) | ||||
|     } | ||||
|   }, | ||||
|   components: { | ||||
|  |  | |||
|  | @ -18,8 +18,8 @@ import { oncreate } from '../helpers/onCreateDialog' | |||
| import { setAccountBlocked } from '../../../_actions/block' | ||||
| import { setAccountMuted } from '../../../_actions/mute' | ||||
| import { setStatusPinnedOrUnpinned } from '../../../_actions/pin' | ||||
| import { importShowCopyDialog } from '../asyncDialogs' | ||||
| import { setConversationMuted } from '../../../_actions/muteConversation' | ||||
| import { copyText } from '../../../_actions/copyText' | ||||
| 
 | ||||
| export default { | ||||
|   oncreate, | ||||
|  | @ -162,17 +162,16 @@ export default { | |||
|       this.close() | ||||
|       await setAccountMuted(accountId, !muting, true) | ||||
|     }, | ||||
|     async onCopyClicked () { | ||||
|       let { status } = this.get() | ||||
|       let { url } = status | ||||
|       let showCopyDialog = await importShowCopyDialog() | ||||
|       this.close() | ||||
|       showCopyDialog(url) | ||||
|     }, | ||||
|     async onMuteConversationClicked () { | ||||
|       let { statusId, mutingConversation } = this.get() | ||||
|       this.close() | ||||
|       await setConversationMuted(statusId, !mutingConversation, true) | ||||
|     }, | ||||
|     async onCopyClicked () { | ||||
|       let { status } = this.get() | ||||
|       let { url } = status | ||||
|       await copyText(url) | ||||
|       this.close() | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue