Complete ProjectsView.vue Triple Migration Pattern with literal extraction

Apply full database migration (databaseUtil → PlatformServiceMixin), replace
raw SQL with service methods, migrate 3 notifications to helper methods.
Preserve 1 complex modal for advanced routing features while extracting
all literal strings to NOTIFY_CAMERA_SHARE_METHOD constant.

Add computed properties (offerTabClasses, projectTabClasses) to streamline
template logic and comprehensive JSDoc documentation for all methods.
Update migration templates to mandate literal extraction from complex modals.

ProjectsView.vue now appropriately incomplete: helper methods for simple
notifications, raw $notify preserved only where advanced features required.
This commit is contained in:
Matthew Raymer
2025-07-07 08:00:25 +00:00
parent 11e11cda26
commit d8fbed3873
6 changed files with 328 additions and 114 deletions

View File

@@ -49,11 +49,7 @@
<div v-if="hasFirstLocation" class="mt-4">
<h2 class="text-lg font-semibold">Location</h2>
<div class="h-96 mt-2 w-full">
<l-map
ref="profileMap"
:center="firstLocationCoords"
:zoom="mapZoom"
>
<l-map ref="profileMap" :center="firstLocationCoords" :zoom="mapZoom">
<l-tile-layer
:url="tileLayerUrl"
layer-type="base"
@@ -248,7 +244,7 @@ export default class UserProfileView extends Vue {
.copy(deepLink)
.then(() => {
this.notify.copied("profile link", TIMEOUTS.STANDARD);
});
});
}
/**
@@ -260,7 +256,12 @@ export default class UserProfileView extends Vue {
* @returns Formatted display name for the profile owner
*/
get profileDisplayName() {
return this.didInfo(this.profile?.issuerDid, this.activeDid, this.allMyDids, this.allContacts);
return this.didInfo(
this.profile?.issuerDid,
this.activeDid,
this.allMyDids,
this.allContacts,
);
}
/**