Fix JavaScript runtime errors for undefined name property access

- Add null checks to prevent "Cannot read properties of undefined (reading 'name')" errors
- Fix ProjectCard, MembersList, ProjectsView, DiscoverView, ProjectViewView components
- Add null validation in DIDView.claimDescription() and ClaimReportCertificateView.drawCanvas()
- Add missing databaseUtil import in MembersList component
- Use meaningful fallback text for undefined names ("Unnamed Project", "Unnamed Member")
- Resolves template rendering crashes when entities lack name properties
This commit is contained in:
Matthew Raymer
2025-07-05 05:38:20 +00:00
parent 1db420a066
commit 91a1618f40
8 changed files with 90 additions and 46 deletions

View File

@@ -406,11 +406,17 @@ export default class DIDView extends Vue {
"SELECT * FROM contacts WHERE did = ?",
[this.viewingDid],
);
this.contactFromDid = databaseUtil.mapQueryResultToValues(
const contacts = databaseUtil.mapQueryResultToValues(
dbContacts,
)[0] as unknown as Contact;
if (this.contactFromDid) {
) as unknown as Contact[];
// Safely check if contact exists before assigning
if (contacts && contacts.length > 0) {
this.contactFromDid = contacts[0];
this.contactYaml = yaml.dump(this.contactFromDid);
} else {
this.contactFromDid = undefined;
this.contactYaml = "";
}
}
@@ -705,6 +711,9 @@ export default class DIDView extends Vue {
* @returns Description string or empty string
*/
claimDescription(claim: GenericVerifiableCredential) {
if (!claim || !claim.claim) {
return "";
}
const claimData = claim.claim as { name?: string; description?: string };
return claimData.name || claimData.description || "";
}