Refactor saveMember function to enhance duplicate member handling, allowing updates to existing duplicates and improving error handling for member existence checks.
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 51s

This commit is contained in:
Torsten Schulz (local)
2026-03-29 14:54:18 +02:00
parent bdc9eef707
commit c30911daed

View File

@@ -244,7 +244,7 @@ export async function saveMember(memberData) {
if (memberData.id) { if (memberData.id) {
// Update existing manual member if present. // Update existing manual member if present.
// If the ID belongs to a login-only member shown in the merged list, // If the ID belongs to a login-only member shown in the merged list,
// create a manual overlay with the same ID so editable fields can be stored. // update an existing manual duplicate or create a manual overlay.
const index = members.findIndex(m => m.id === memberData.id) const index = members.findIndex(m => m.id === memberData.id)
const duplicate = findDuplicateMember( const duplicate = findDuplicateMember(
members.filter(m => m.id !== memberData.id), members.filter(m => m.id !== memberData.id),
@@ -253,12 +253,19 @@ export async function saveMember(memberData) {
memberData.geburtsdatum memberData.geburtsdatum
) )
if (duplicate) { if (duplicate && index !== -1) {
throw new Error('Ein Mitglied mit diesem Namen und Geburtsdatum existiert bereits.') throw new Error('Ein Mitglied mit diesem Namen und Geburtsdatum existiert bereits.')
} }
if (index !== -1) { if (index !== -1) {
members[index] = { ...members[index], ...memberData } members[index] = { ...members[index], ...memberData }
} else if (duplicate) {
const duplicateIndex = members.findIndex(m => m.id === duplicate.id)
members[duplicateIndex] = {
...members[duplicateIndex],
...memberData,
id: members[duplicateIndex].id
}
} else { } else {
members.push({ members.push({
...memberData, ...memberData,