mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
import PostMutations from '~/graphql/PostMutations.js'
|
|
|
|
export function postMenuModalsData(truncatedPostName, confirmCallback, cancelCallback = () => {}) {
|
|
return {
|
|
delete: {
|
|
titleIdent: 'delete.contribution.title',
|
|
messageIdent: 'delete.contribution.message',
|
|
messageParams: {
|
|
name: truncatedPostName,
|
|
},
|
|
buttons: {
|
|
confirm: {
|
|
danger: true,
|
|
icon: 'trash',
|
|
textIdent: 'delete.submit',
|
|
callback: confirmCallback,
|
|
},
|
|
cancel: {
|
|
icon: 'close',
|
|
textIdent: 'delete.cancel',
|
|
callback: cancelCallback,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
export function deletePostMutation(postId) {
|
|
return {
|
|
mutation: PostMutations().DeletePost,
|
|
variables: {
|
|
id: postId,
|
|
},
|
|
}
|
|
}
|
|
|
|
export function sortTagsAlphabetically(tags) {
|
|
// Make sure the property is valid.
|
|
if (!tags || !tags.length) return false
|
|
/* Using .slice(0) to make a shallow copy. Otherwise a vue/no-side-effects-in-computed-properties error
|
|
would be thrown because sort() sorts in place. A shallow copy is fine because only first level objects are
|
|
affected by the sort, the original tags object remains unchanged.
|
|
*/
|
|
return tags.slice(0).sort(function (a, b) {
|
|
// Converting to lowercase to make sort case insensitive.
|
|
const tagA = a.id.toLowerCase()
|
|
const tagB = b.id.toLowerCase()
|
|
return tagA < tagB ? -1 : tagA > tagB ? 1 : 0
|
|
})
|
|
}
|