Files
AstralRinth/apps/frontend/src/helpers/threads.js
T
Truman Gao 681ae5d1d8 refactor: removing useAsyncData for tanstack query (#5262)
* refactor: most places with useAsyncData replaced with tanstack query

* refactor report list and report view

* refactor organization page to use tanstack query

* fix types

* refactor collection page and include proper loading state

* fix followed projects proper loading state

* fix 404 handling

* fix organization loading and 404 states

* pnpm prepr

* refactor: remove useAsyncData on newsletter button

* refactor: remove useAsyncData on auth globals fetch

* refactor: settings/billing/index.vue to useQuery instead of useAsyncData

* refactor: user page to remove useAsyncData

* pnpm prepr

* fix reports pages

* fix notifications page

* fix billing page cannot read properties of null and prop warnings

* fix refresh causing 404 by removing useBaseFetch and use api-client

* fix stale data after removing organization from project

* pnpm prepr

* fix news erroring in build

* fix: project page loads header only after content

* fix: user page tanstack problems (start on migrating away from useBaseFetch)

* fix: start swapping useBaseFetch usages to api-client

* Revert "fix: start swapping useBaseFetch usages to api-client"

This reverts commit 3df3fab11d535159132b1288dd7cacc38282b553.

* fix: remove debug logging

* fix: lint

---------

Co-authored-by: Calum H. <calum@modrinth.com>
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
2026-03-16 19:10:29 +00:00

51 lines
905 B
JavaScript

export function addReportMessage(thread, report) {
if (!thread || !report) {
return thread
}
const reporterId = report.reporterUser?.id ?? report.reporter
if (!reporterId) {
return thread
}
const members = Array.isArray(thread.members) ? [...thread.members] : []
const messages = Array.isArray(thread.messages) ? [...thread.messages] : []
let changed = false
if (
!members.some((user) => {
return user?.id === reporterId
}) &&
report.reporterUser
) {
members.push(report.reporterUser)
changed = true
}
if (!messages.some((message) => message?.id === 'original')) {
messages.push({
id: 'original',
author_id: reporterId,
body: {
type: 'text',
body: report.body,
private: false,
replying_to: null,
},
created: report.created,
})
changed = true
}
if (!changed) {
return thread
}
return {
...thread,
members,
messages,
}
}