fix: attribution scanning details (#6651)

* key override file sources on file path, allow deleting groups

* dont scan modrinth files

* delete attr group button

* return what override files already exist on platform

* intl:extract

* uppercase queries

* fix dupe migration key
This commit is contained in:
aecsocket
2026-07-12 09:04:54 +00:00
committed by GitHub
parent 1741d12b7b
commit e1556a8ee3
15 changed files with 346 additions and 106 deletions
@@ -9,6 +9,7 @@ import {
ReportIcon,
ScaleIcon,
SpinnerIcon,
TrashIcon,
VersionIcon,
XCircleIcon,
XIcon,
@@ -135,6 +136,10 @@ const messages = defineMessages({
id: 'external-files.permissions-card.add-files-to-group',
defaultMessage: 'Add files...',
},
removeGroup: {
id: 'external-files.permissions-card.remove-group',
defaultMessage: 'Remove group',
},
moderationReasonLabel: {
id: 'external-files.permissions-card.moderation-reason',
defaultMessage: 'Reason',
@@ -248,6 +253,26 @@ const splitFileMutation = useMutation({
},
})
const deleteGroupMutation = useMutation({
mutationFn: () => client.labrinth.attribution_internal.deleteGroup(props.group.id),
onSuccess: async () => {
await queryClient.invalidateQueries({ queryKey: ['project-attribution', props.projectId] })
emit('updated')
},
onError: (error: Error) => {
addNotification({
type: 'error',
title: formatMessage(
defineMessage({
id: 'external-files.permissions-card.remove-group-error.title',
defaultMessage: 'Could not remove group',
}),
),
text: error.message,
})
},
})
function startEditingAttribution() {
editingMode.value = 'attribution'
collapsed.value = false
@@ -280,6 +305,10 @@ function handleConfirmAddFiles(sha1s: string[]) {
assignFilesMutation.mutate(sha1s)
}
function handleDeleteGroup() {
deleteGroupMutation.mutate()
}
async function handleAddFilesToGroup(event: MouseEvent) {
try {
const groups = await queryClient.ensureQueryData({
@@ -782,6 +811,18 @@ const visibleQuickReplies = computed<OverflowMenuOption[]>(() => {
@cancel="stopEditing"
/>
</div>
<div v-if="isModerator" class="flex justify-end pt-2">
<ButtonStyled color="red" type="outlined">
<button :disabled="deleteGroupMutation.isPending.value" @click="handleDeleteGroup">
<SpinnerIcon
v-if="deleteGroupMutation.isPending.value"
class="size-4 shrink-0 animate-spin"
/>
<TrashIcon v-else class="size-4 shrink-0" />
{{ formatMessage(messages.removeGroup) }}
</button>
</ButtonStyled>
</div>
</div>
</Collapsible>
<AddFilesToAttributionGroupModal
+6
View File
@@ -1142,6 +1142,12 @@
"external-files.permissions-card.reason.special-permission.description": {
"defaultMessage": "You have obtained special permission to redistribute this work in your modpack."
},
"external-files.permissions-card.remove-group": {
"defaultMessage": "Remove group"
},
"external-files.permissions-card.remove-group-error.title": {
"defaultMessage": "Could not remove group"
},
"external-files.permissions-card.split-file": {
"defaultMessage": "Remove from group"
},