pleroma-fe/src/stores/reports.js

57 lines
1.7 KiB
JavaScript
Raw Normal View History

2023-04-06 17:59:12 -06:00
import filter from 'lodash/filter'
2026-01-06 16:23:17 +02:00
import { defineStore } from 'pinia'
2025-02-03 13:02:14 +02:00
import { useInterfaceStore } from 'src/stores/interface'
2023-04-06 17:59:12 -06:00
export const useReportsStore = defineStore('reports', {
state: () => ({
reportModal: {
userId: null,
statuses: [],
preTickedIds: [],
2026-01-06 16:22:52 +02:00
activated: false,
2023-04-06 17:59:12 -06:00
},
2026-01-06 16:22:52 +02:00
reports: {},
2023-04-06 17:59:12 -06:00
}),
actions: {
2026-01-06 16:22:52 +02:00
openUserReportingModal({ userId, statusIds = [] }) {
const preTickedStatuses = statusIds.map(
(id) => window.vuex.state.statuses.allStatusesObject[id],
)
2023-04-06 17:59:12 -06:00
const preTickedIds = statusIds
const statuses = preTickedStatuses.concat(
2026-01-06 16:22:52 +02:00
filter(
window.vuex.state.statuses.allStatuses,
(status) =>
status.user.id === userId && !preTickedIds.includes(status.id),
),
2023-04-06 17:59:12 -06:00
)
this.reportModal.userId = userId
this.reportModal.statuses = statuses
this.reportModal.preTickedIds = preTickedIds
this.reportModal.activated = true
},
2026-01-06 16:22:52 +02:00
closeUserReportingModal() {
2023-04-06 17:59:12 -06:00
this.reportModal.activated = false
},
2026-01-06 16:22:52 +02:00
setReportState({ id, state }) {
2025-03-05 02:32:25 +02:00
const oldState = this.reports[id].state
2023-04-06 17:59:12 -06:00
this.reports[id].state = state
2026-01-06 16:22:52 +02:00
window.vuex.state.api.backendInteractor
.setReportState({ id, state })
.catch((e) => {
console.error('Failed to set report state', e)
useInterfaceStore().pushGlobalNotice({
level: 'error',
messageKey: 'general.generic_error_message',
messageArgs: [e.message],
timeout: 5000,
})
this.reports[id].state = oldState
2023-04-06 17:59:12 -06:00
})
},
2026-01-06 16:22:52 +02:00
addReport(report) {
2023-04-06 17:59:12 -06:00
this.reports[report.id] = report
2026-01-06 16:22:52 +02:00
},
},
2023-04-06 17:59:12 -06:00
})