logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://anongit.hacktivis.me/git/pleroma-fe.git/

reports.js (1635B)


  1. import { defineStore } from 'pinia'
  2. import filter from 'lodash/filter'
  3. import { useInterfaceStore } from 'src/stores/interface'
  4. export const useReportsStore = defineStore('reports', {
  5. state: () => ({
  6. reportModal: {
  7. userId: null,
  8. statuses: [],
  9. preTickedIds: [],
  10. activated: false
  11. },
  12. reports: {}
  13. }),
  14. actions: {
  15. openUserReportingModal ({ userId, statusIds = [] }) {
  16. const preTickedStatuses = statusIds.map(id => window.vuex.state.statuses.allStatusesObject[id])
  17. const preTickedIds = statusIds
  18. const statuses = preTickedStatuses.concat(
  19. filter(window.vuex.state.statuses.allStatuses,
  20. status => status.user.id === userId && !preTickedIds.includes(status.id)
  21. )
  22. )
  23. this.reportModal.userId = userId
  24. this.reportModal.statuses = statuses
  25. this.reportModal.preTickedIds = preTickedIds
  26. this.reportModal.activated = true
  27. },
  28. closeUserReportingModal () {
  29. this.reportModal.activated = false
  30. },
  31. setReportState ({ id, state }) {
  32. const oldState = window.vuex.state.reports.reports[id].state
  33. this.reports[id].state = state
  34. window.vuex.state.api.backendInteractor.setReportState({ id, state }).catch(e => {
  35. console.error('Failed to set report state', e)
  36. useInterfaceStore().pushGlobalNotice({
  37. level: 'error',
  38. messageKey: 'general.generic_error_message',
  39. messageArgs: [e.message],
  40. timeout: 5000
  41. })
  42. this.reports[id].state = oldState
  43. })
  44. },
  45. addReport (report) {
  46. this.reports[report.id] = report
  47. }
  48. }
  49. })