You've already forked AstralRinth
forked from didirus/AstralRinth
681ae5d1d8
* 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>
51 lines
905 B
JavaScript
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,
|
|
}
|
|
}
|