35 lines
1.7 KiB
JavaScript
35 lines
1.7 KiB
JavaScript
import { mapState } from 'vuex'
|
|
import { get } from 'lodash'
|
|
|
|
const MRFTransparencyPanel = {
|
|
computed: {
|
|
...mapState({
|
|
federationPolicy: state => get(state, 'instance.federationPolicy'),
|
|
mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []),
|
|
quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []),
|
|
acceptInstances: state => get(state, 'instance.federationPolicy.mrf_simple.accept', []),
|
|
rejectInstances: state => get(state, 'instance.federationPolicy.mrf_simple.reject', []),
|
|
ftlRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),
|
|
mediaNsfwInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),
|
|
mediaRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),
|
|
keywordsFtlRemoval: state => get(state, 'instance.federationPolicy.mrf_keyword.federated_timeline_removal', []),
|
|
keywordsReject: state => get(state, 'instance.federationPolicy.mrf_keyword.reject', []),
|
|
keywordsReplace: state => get(state, 'instance.federationPolicy.mrf_keyword.replace', [])
|
|
}),
|
|
hasInstanceSpecificPolicies () {
|
|
return this.quarantineInstances.length ||
|
|
this.acceptInstances.length ||
|
|
this.rejectInstances.length ||
|
|
this.ftlRemovalInstances.length ||
|
|
this.mediaNsfwInstances.length ||
|
|
this.mediaRemovalInstances.length
|
|
},
|
|
hasKeywordPolicies () {
|
|
return this.keywordsFtlRemoval.length ||
|
|
this.keywordsReject.length ||
|
|
this.keywordsReplace.length
|
|
}
|
|
}
|
|
}
|
|
|
|
export default MRFTransparencyPanel
|