Refactor saveMember function to improve duplicate member handling and streamline member updates. Enhance error messaging for non-existent members and ensure new members are added with default active status.
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 56s
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 56s
This commit is contained in:
@@ -242,24 +242,28 @@ export async function saveMember(memberData) {
|
||||
const members = await readMembers()
|
||||
|
||||
if (memberData.id) {
|
||||
// Update existing
|
||||
// Update existing manual member if present.
|
||||
// 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.
|
||||
const index = members.findIndex(m => m.id === memberData.id)
|
||||
const duplicate = findDuplicateMember(
|
||||
members.filter(m => m.id !== memberData.id),
|
||||
memberData.firstName,
|
||||
memberData.lastName,
|
||||
memberData.geburtsdatum
|
||||
)
|
||||
|
||||
if (duplicate) {
|
||||
throw new Error('Ein Mitglied mit diesem Namen und Geburtsdatum existiert bereits.')
|
||||
}
|
||||
|
||||
if (index !== -1) {
|
||||
// Check for duplicate (excluding current member)
|
||||
const duplicate = findDuplicateMember(
|
||||
members.filter(m => m.id !== memberData.id),
|
||||
memberData.firstName,
|
||||
memberData.lastName,
|
||||
memberData.geburtsdatum
|
||||
)
|
||||
|
||||
if (duplicate) {
|
||||
throw new Error('Ein Mitglied mit diesem Namen und Geburtsdatum existiert bereits.')
|
||||
}
|
||||
|
||||
members[index] = { ...members[index], ...memberData }
|
||||
} else {
|
||||
throw new Error('Mitglied nicht gefunden')
|
||||
members.push({
|
||||
...memberData,
|
||||
active: typeof memberData.active === 'boolean' ? memberData.active : true
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// Add new - check for duplicate first
|
||||
|
||||
Reference in New Issue
Block a user