add ability to delete a status
This commit is contained in:
		
							parent
							
								
									ffa672382d
								
							
						
					
					
						commit
						b8d1ccb339
					
				
					 4 changed files with 36 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -29,5 +29,6 @@ module.exports = [
 | 
			
		|||
  {id: 'fa-camera', src: 'node_modules/font-awesome-svg-png/white/svg/camera.svg', title: 'Add media'},
 | 
			
		||||
  {id: 'fa-smile', src: 'node_modules/font-awesome-svg-png/white/svg/smile-o.svg', title: 'Custom emoji'},
 | 
			
		||||
  {id: 'fa-exclamation-triangle', src: 'node_modules/font-awesome-svg-png/white/svg/exclamation-triangle.svg', title: 'Content warning'},
 | 
			
		||||
  {id: 'fa-check', src: 'node_modules/font-awesome-svg-png/white/svg/check.svg', title: 'Check'}
 | 
			
		||||
  {id: 'fa-check', src: 'node_modules/font-awesome-svg-png/white/svg/check.svg', title: 'Check'},
 | 
			
		||||
  {id: 'fa-trash', src: 'node_modules/font-awesome-svg-png/white/svg/trash-o.svg', title: 'Delete'}
 | 
			
		||||
]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								routes/_actions/delete.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								routes/_actions/delete.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
import { store } from '../_store/store'
 | 
			
		||||
import { deleteStatus } from '../_api/delete'
 | 
			
		||||
import { toast } from '../_utils/toast'
 | 
			
		||||
 | 
			
		||||
export async function doDeleteStatus (statusId) {
 | 
			
		||||
  let instanceName = store.get('currentInstance')
 | 
			
		||||
  let accessToken = store.get('accessToken')
 | 
			
		||||
  try {
 | 
			
		||||
    await deleteStatus(instanceName, accessToken, statusId)
 | 
			
		||||
    toast.say('Status deleted.')
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    console.error(e)
 | 
			
		||||
    toast.say('Unable to delete status: ' + (e.message || ''))
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -6,11 +6,14 @@ import ModalDialog from './ModalDialog.html'
 | 
			
		|||
import { store } from '../../_store/store'
 | 
			
		||||
import GenericDialogList from './GenericDialogList.html'
 | 
			
		||||
import { setAccountFollowed } from '../../_actions/follow'
 | 
			
		||||
import { doDeleteStatus } from '../../_actions/delete'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  computed: {
 | 
			
		||||
    relationship: ($currentAccountRelationship) => $currentAccountRelationship,
 | 
			
		||||
    account: ($currentAccountProfile) => $currentAccountProfile,
 | 
			
		||||
    verifyCredentials: ($currentVerifyCredentials) => $currentVerifyCredentials,
 | 
			
		||||
    verifyCredentialsId: (verifyCredentials) => verifyCredentials.id,
 | 
			
		||||
    following: (relationship) => relationship && !!relationship.following,
 | 
			
		||||
    accountName: (account) => account && (account.display_name || account.acct),
 | 
			
		||||
    accountId: (account) => account && account.id,
 | 
			
		||||
| 
						 | 
				
			
			@ -20,15 +23,22 @@ export default {
 | 
			
		|||
      }
 | 
			
		||||
      return following ? `Unfollow ${accountName}` : `Follow ${accountName}`
 | 
			
		||||
    },
 | 
			
		||||
    items: (followLabel, following) => {
 | 
			
		||||
      return [
 | 
			
		||||
    items: (followLabel, following, accountId, verifyCredentialsId) => (
 | 
			
		||||
      [
 | 
			
		||||
        accountId !== verifyCredentialsId &&
 | 
			
		||||
        {
 | 
			
		||||
          key: 'follow',
 | 
			
		||||
          label: followLabel,
 | 
			
		||||
          icon: following ? '#fa-user-times' : '#fa-user-plus'
 | 
			
		||||
        },
 | 
			
		||||
        accountId === verifyCredentialsId &&
 | 
			
		||||
        {
 | 
			
		||||
          key: 'delete',
 | 
			
		||||
          label: 'Delete',
 | 
			
		||||
          icon: '#fa-trash'
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
      ].filter(Boolean)
 | 
			
		||||
    )
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    ModalDialog,
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +55,10 @@ export default {
 | 
			
		|||
        let following = this.get('following')
 | 
			
		||||
        await setAccountFollowed(accountId, !following, true)
 | 
			
		||||
        this.set({closed: true})
 | 
			
		||||
      } else if (item.key === 'delete') {
 | 
			
		||||
        let statusId = this.get('statusId')
 | 
			
		||||
        await doDeleteStatus(statusId)
 | 
			
		||||
        this.set({closed: true})
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,6 +95,7 @@ body.offline,body.theme-hotpants.offline,body.theme-majesty.offline,body.theme-o
 | 
			
		|||
<symbol id="fa-smile" viewBox="0 0 1792 1792"><title>Custom emoji</title><path d="M1262 1075q-37 121-138 195t-228 74-228-74-138-195q-8-25 4-48.5t38-31.5q25-8 48.5 4t31.5 38q25 80 92.5 129.5T896 1216t151.5-49.5T1140 1037q8-26 32-38t49-4 37 31.5 4 48.5zM768 640q0 53-37.5 90.5T640 768t-90.5-37.5T512 640t37.5-90.5T640 512t90.5 37.5T768 640zm512 0q0 53-37.5 90.5T1152 768t-90.5-37.5T1024 640t37.5-90.5T1152 512t90.5 37.5T1280 640zm256 256q0-130-51-248.5t-136.5-204-204-136.5T896 256t-248.5 51-204 136.5-136.5 204T256 896t51 248.5 136.5 204 204 136.5 248.5 51 248.5-51 204-136.5 136.5-204 51-248.5zm128 0q0 209-103 385.5T1281.5 1561 896 1664t-385.5-103T231 1281.5 128 896t103-385.5T510.5 231 896 128t385.5 103T1561 510.5 1664 896z"></path></symbol>
 | 
			
		||||
<symbol id="fa-exclamation-triangle" viewBox="0 0 1792 1792"><title>Content warning</title><path d="M1024 1375v-190q0-14-9.5-23.5T992 1152H800q-13 0-22.5 9.5T768 1185v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11H786q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17H128q-34 0-63.5-17T18 1601q-37-63-2-126L784 67q17-31 47-49t65-18 65 18 47 49z"></path></symbol>
 | 
			
		||||
<symbol id="fa-check" viewBox="0 0 1792 1792"><title>Check</title><path d="M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z"></path></symbol>
 | 
			
		||||
<symbol id="fa-trash" viewBox="0 0 1792 1792"><title>Delete</title><path d="M704 736v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V736q0-14 9-23t23-9h64q14 0 23 9t9 23zm256 0v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V736q0-14 9-23t23-9h64q14 0 23 9t9 23zm256 0v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V736q0-14 9-23t23-9h64q14 0 23 9t9 23zm128 724V512H448v948q0 22 7 40.5t14.5 27 10.5 8.5h832q3 0 10.5-8.5t14.5-27 7-40.5zM672 384h448l-48-117q-7-9-17-11H738q-10 2-17 11zm928 32v64q0 14-9 23t-23 9h-96v948q0 83-47 143.5t-113 60.5H480q-66 0-113-58.5T320 1464V512h-96q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h309l70-167q15-37 54-63t79-26h320q40 0 79 26t54 63l70 167h309q14 0 23 9t9 23z"></path></symbol>
 | 
			
		||||
</svg><!-- end insert svg here -->
 | 
			
		||||
  </svg>
 | 
			
		||||
	<!-- The application will be rendered inside this element,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue