pleroma-fe/src/components/staff_panel/staff_panel.js

34 lines
966 B
JavaScript
Raw Normal View History

import map from 'lodash/map'
import groupBy from 'lodash/groupBy'
import { mapGetters, mapState } from 'vuex'
2019-11-09 06:21:07 +01:00
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
const StaffPanel = {
created () {
const nicknames = this.$store.state.instance.staffAccounts
nicknames.forEach(nickname => this.$store.dispatch('fetchUserIfMissing', nickname))
},
2019-11-09 06:21:07 +01:00
components: {
BasicUserCard
},
computed: {
groupedStaffAccounts () {
2022-10-17 21:08:52 +02:00
const staffAccounts = map(this.staffAccounts, this.findUserByName).filter(_ => _)
const groupedStaffAccounts = groupBy(staffAccounts, 'role')
return [
2022-07-31 11:35:48 +02:00
{ role: 'admin', users: groupedStaffAccounts.admin },
{ role: 'moderator', users: groupedStaffAccounts.moderator }
].filter(group => group.users)
},
...mapGetters([
2022-10-17 21:08:52 +02:00
'findUserByName'
]),
...mapState({
staffAccounts: state => state.instance.staffAccounts
})
2019-11-09 06:21:07 +01:00
}
}
export default StaffPanel