|
92 | 92 |
|
93 | 93 | async function createFreshData(): Promise<void> { |
94 | 94 | importData = { |
| 95 | + $schema: `${page.url.origin}/api/schemas/import`, |
95 | 96 | title: '', |
96 | 97 | id: nanoid(), |
97 | 98 | committees: [], |
|
100 | 101 | id: nanoid(), |
101 | 102 | representationType: 'DELEGATION', |
102 | 103 | alpha3Code: nation.cca3.toLowerCase(), |
103 | | - alpha2Code: nation.cca3.toLowerCase(), |
| 104 | + alpha2Code: nation.cca2.toLowerCase(), |
104 | 105 | regionalGroup: transformRegionalGroup(nation.unRegionalGroup) |
105 | 106 | })), |
106 | 107 | conferenceMembers: [], |
|
168 | 169 | representationType: type, |
169 | 170 | id: repId |
170 | 171 | }); |
| 172 | + if (importData?.conferenceMembers === undefined) { |
| 173 | + importData!.conferenceMembers = []; |
| 174 | + } |
171 | 175 | importData?.conferenceMembers.push({ |
172 | 176 | id: nanoid(), |
173 | 177 | representationId: repId |
|
193 | 197 | id: repId |
194 | 198 | }); |
195 | 199 | } |
| 200 | + if (importData?.committeeMembers === undefined) { |
| 201 | + importData!.committeeMembers = []; |
| 202 | + } |
196 | 203 | importData?.committeeMembers.push({ |
197 | 204 | id: nanoid(), |
198 | 205 | committeeId: committeeId, |
|
265 | 272 | {@const agendaItems = importData.agendaItems.filter( |
266 | 273 | (item) => item.committeeId === committee.id |
267 | 274 | )} |
268 | | - {@const committeeMembers = importData.committeeMembers.filter( |
| 275 | + {@const committeeMembers = importData.committeeMembers?.filter( |
269 | 276 | (member) => member.committeeId === committee.id |
270 | 277 | )} |
271 | 278 |
|
|
344 | 351 | class="btn btn-error btn-sm btn-circle absolute top-1/2 right-1/2 z-40 translate-x-1/2 -translate-y-1/2 opacity-0 transition-all duration-300 group-hover:opacity-100" |
345 | 352 | aria-label="Remove committee member" |
346 | 353 | onclick={() => { |
347 | | - importData!.committeeMembers = importData!.committeeMembers.filter( |
| 354 | + importData!.committeeMembers = importData!.committeeMembers?.filter( |
348 | 355 | (i) => i.id !== member.id |
349 | 356 | ); |
350 | 357 | }} |
|
374 | 381 | importData!.agendaItems = importData!.agendaItems.filter( |
375 | 382 | (i) => i.committeeId !== committee.id |
376 | 383 | ); |
377 | | - importData!.committeeMembers = importData!.committeeMembers.filter( |
| 384 | + importData!.committeeMembers = importData!.committeeMembers?.filter( |
378 | 385 | (i) => i.committeeId !== committee.id |
379 | 386 | ); |
380 | 387 | }} |
|
394 | 401 | <fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4"> |
395 | 402 | <legend class="fieldset-legend">{m.nonStateActors()}</legend> |
396 | 403 | {#each importData.representations.filter((x) => x.representationType === 'NSA') as rep} |
397 | | - {@const conferenceMembers = importData.conferenceMembers.filter( |
| 404 | + {@const conferenceMembers = importData.conferenceMembers?.filter( |
398 | 405 | (member) => member.representationId === rep.id |
399 | 406 | )} |
400 | 407 | <div class="join"> |
|
413 | 420 | bind:value={rep.name} |
414 | 421 | placeholder={m.nonStateActor()} |
415 | 422 | /> |
416 | | - <div class="btn join-item {conferenceMembers.length === 0 ? 'btn-error' : ''}"> |
| 423 | + <div class="btn join-item {conferenceMembers?.length === 0 ? 'btn-error' : ''}"> |
417 | 424 | <i class="fas fa-users"></i> |
418 | | - <span class="ml-2">{conferenceMembers.length}</span> |
| 425 | + <span class="ml-2">{conferenceMembers?.length}</span> |
419 | 426 | </div> |
420 | 427 | <button |
421 | 428 | class="btn join-item" |
|
424 | 431 | importData!.representations = importData!.representations.filter( |
425 | 432 | (i) => i.id !== rep.id |
426 | 433 | ); |
427 | | - importData!.conferenceMembers = importData!.conferenceMembers.filter( |
| 434 | + importData!.conferenceMembers = importData!.conferenceMembers?.filter( |
428 | 435 | (i) => i.representationId !== rep.id |
429 | 436 | ); |
430 | 437 | }} |
|
446 | 453 | <fieldset class="fieldset bg-base-100 border-base-300 rounded-box border p-4"> |
447 | 454 | <legend class="fieldset-legend">{m.unActors()}</legend> |
448 | 455 | {#each importData.representations.filter((x) => x.representationType === 'UN') as rep} |
449 | | - {@const conferenceMembers = importData.conferenceMembers.filter( |
| 456 | + {@const conferenceMembers = importData.conferenceMembers?.filter( |
450 | 457 | (member) => member.representationId === rep.id |
451 | 458 | )} |
452 | 459 | <div class="join"> |
|
467 | 474 | importData!.representations = importData!.representations.filter( |
468 | 475 | (i) => i.id !== rep.id |
469 | 476 | ); |
470 | | - importData!.conferenceMembers = importData!.conferenceMembers.filter( |
| 477 | + importData!.conferenceMembers = importData!.conferenceMembers?.filter( |
471 | 478 | (i) => i.representationId !== rep.id |
472 | 479 | ); |
473 | 480 | }} |
|
0 commit comments