diff --git a/doc/migration-to-wa-sqlite.md b/doc/migration-to-wa-sqlite.md index 2249b0df..dd1fa1eb 100644 --- a/doc/migration-to-wa-sqlite.md +++ b/doc/migration-to-wa-sqlite.md @@ -69,8 +69,8 @@ export async function migrateActiveDid(): Promise { // 3. Update SQLite master settings await updateDefaultSettings({ activeDid: dexieActiveDid }); -} -``` + } + ``` #### Enhanced `migrateSettings()` Function The settings migration now includes activeDid handling: @@ -171,7 +171,7 @@ npm run test:migration ``` ### ActiveDid Testing -```typescript + ```typescript // Test activeDid migration specifically const result = await migrateActiveDid(); expect(result.success).toBe(true); @@ -204,7 +204,7 @@ logger.setLevel('debug'); // Check migration status const comparison = await compareDatabases(); console.log('Settings differences:', comparison.differences.settings); -``` + ``` ## Future Enhancements diff --git a/src/components/FeedFilters.vue b/src/components/FeedFilters.vue index 0748cb8e..23adee98 100644 --- a/src/components/FeedFilters.vue +++ b/src/components/FeedFilters.vue @@ -101,8 +101,6 @@ import { import { Router } from "vue-router"; import * as databaseUtil from "../db/databaseUtil"; -import { MASTER_SETTINGS_KEY } from "../db/tables/settings"; -import { db, retrieveSettingsForActiveAccount } from "../db/index"; @Component({ components: { diff --git a/src/components/GiftedDialog.vue b/src/components/GiftedDialog.vue index bcdf5ede..f08f5b0b 100644 --- a/src/components/GiftedDialog.vue +++ b/src/components/GiftedDialog.vue @@ -96,7 +96,6 @@ import { serverMessageForUser, } from "../libs/endorserServer"; import * as libsUtil from "../libs/util"; -import { db, retrieveSettingsForActiveAccount } from "../db/index"; import { Contact } from "../db/tables/contacts"; import * as databaseUtil from "../db/databaseUtil"; import { retrieveAccountDids } from "../libs/util"; diff --git a/src/components/GiftedPrompts.vue b/src/components/GiftedPrompts.vue index 57840022..ea3fa288 100644 --- a/src/components/GiftedPrompts.vue +++ b/src/components/GiftedPrompts.vue @@ -75,7 +75,6 @@ import { Vue, Component } from "vue-facing-decorator"; import { Router } from "vue-router"; import { AppString, NotificationIface } from "../constants/app"; -import { db } from "../db/index"; import { Contact } from "../db/tables/contacts"; import * as databaseUtil from "../db/databaseUtil"; import { GiverReceiverInputInfo } from "../libs/util"; diff --git a/src/components/ImageMethodDialog.vue b/src/components/ImageMethodDialog.vue index b18e2f29..69d9b860 100644 --- a/src/components/ImageMethodDialog.vue +++ b/src/components/ImageMethodDialog.vue @@ -262,30 +262,21 @@ import { Component, Vue } from "vue-facing-decorator"; import VuePictureCropper, { cropper } from "vue-picture-cropper"; import { Capacitor } from "@capacitor/core"; import { DEFAULT_IMAGE_API_SERVER, NotificationIface } from "../constants/app"; -import { retrieveSettingsForActiveAccount } from "../db/index"; import { accessToken } from "../libs/crypto"; import { logger } from "../utils/logger"; import { PlatformServiceFactory } from "../services/PlatformServiceFactory"; import * as databaseUtil from "../db/databaseUtil"; +import { Prop } from "vue-facing-decorator"; +import { Router } from "vue-router"; const inputImageFileNameRef = ref(); @Component({ components: { VuePictureCropper }, - props: { - isRegistered: { - type: Boolean, - default: true, - }, - defaultCameraMode: { - type: String, - default: "environment", - validator: (value: string) => ["environment", "user"].includes(value), - }, - }, }) export default class ImageMethodDialog extends Vue { $notify!: (notification: NotificationIface, timeout?: number) => void; + $router!: Router; /** Active DID for user authentication */ activeDid = ""; @@ -303,7 +294,7 @@ export default class ImageMethodDialog extends Vue { fileName?: string; /** Callback function to set image URL after upload */ - imageCallback: (imageUrl?: string) => void = () => {}; + imageCallback: (imageUrl: string) => void = () => {}; /** URL for image input */ imageUrl?: string; @@ -351,6 +342,14 @@ export default class ImageMethodDialog extends Vue { cameraStateMessage?: string; error: string | null = null; + // Props + @Prop({ default: true }) isRegistered!: boolean; + @Prop({ + default: "environment", + validator: (value: string) => ["environment", "user"].includes(value), + }) + defaultCameraMode!: string; + /** * Lifecycle hook: Initializes component and retrieves user settings * @throws {Error} When settings retrieval fails @@ -411,7 +410,7 @@ export default class ImageMethodDialog extends Vue { type: file.type, }); this.blob = blob; - this.fileName = file.name; + this.fileName = (file as File).name; this.showRetry = false; } }; @@ -442,7 +441,7 @@ export default class ImageMethodDialog extends Vue { ); } } else { - this.imageCallback(this.imageUrl); + this.imageCallback(this.imageUrl as string); this.close(); } } diff --git a/src/components/MembersList.vue b/src/components/MembersList.vue index c84e52a1..cb5449b3 100644 --- a/src/components/MembersList.vue +++ b/src/components/MembersList.vue @@ -159,11 +159,7 @@ diff --git a/src/views/ClaimAddRawView.vue b/src/views/ClaimAddRawView.vue index 087cd95d..42853bd2 100644 --- a/src/views/ClaimAddRawView.vue +++ b/src/views/ClaimAddRawView.vue @@ -30,12 +30,11 @@ diff --git a/src/views/OfferDetailsView.vue b/src/views/OfferDetailsView.vue index 0bbd11d3..e8fb5afc 100644 --- a/src/views/OfferDetailsView.vue +++ b/src/views/OfferDetailsView.vue @@ -181,7 +181,6 @@ import { RouteLocationNormalizedLoaded, Router } from "vue-router"; import QuickNav from "../components/QuickNav.vue"; import TopMessage from "../components/TopMessage.vue"; import { NotificationIface } from "../constants/app"; -import { db, retrieveSettingsForActiveAccount } from "../db/index"; import { GenericCredWrapper, OfferClaim } from "../interfaces"; import { createAndSubmitOffer, @@ -314,7 +313,9 @@ export default class OfferDetailsView extends Vue { group: "alert", type: "danger", title: "Error", - text: err.message || "There was an error loading the offer details.", + text: + (err as Error)?.message || + "There was an error loading the offer details.", }, 5000, ); diff --git a/src/views/OnboardMeetingListView.vue b/src/views/OnboardMeetingListView.vue index 75c8e868..777674a1 100644 --- a/src/views/OnboardMeetingListView.vue +++ b/src/views/OnboardMeetingListView.vue @@ -90,7 +90,6 @@ import { Router } from "vue-router"; import QuickNav from "../components/QuickNav.vue"; import TopMessage from "../components/TopMessage.vue"; import * as databaseUtil from "../db/databaseUtil"; -import { retrieveSettingsForActiveAccount } from "../db/index"; import { logConsoleAndDb } from "../db/databaseUtil"; import { errorStringForLog, diff --git a/src/views/OnboardMeetingMembersView.vue b/src/views/OnboardMeetingMembersView.vue index b7de0e28..e07e4ecd 100644 --- a/src/views/OnboardMeetingMembersView.vue +++ b/src/views/OnboardMeetingMembersView.vue @@ -123,7 +123,9 @@ export default class OnboardMeetingMembersView extends Vue { const member = response.data?.data; if (!member) { if (!this.firstName) { - this.$refs.userNameDialog.open(this.addMemberToMeeting); + (this.$refs.userNameDialog as UserNameDialog).open( + this.addMemberToMeeting, + ); // addMemberToMeeting sets isLoading to false } else { await this.addMemberToMeeting(this.firstName); @@ -136,7 +138,9 @@ export default class OnboardMeetingMembersView extends Vue { } else { // must be already in the right meeting if (!this.firstName) { - this.$refs.userNameDialog.open(this.updateMemberInMeeting); + (this.$refs.userNameDialog as UserNameDialog).open( + this.updateMemberInMeeting, + ); // updateMemberInMeeting sets isLoading to false } else { await this.updateMemberInMeeting(this.firstName); diff --git a/src/views/OnboardMeetingSetupView.vue b/src/views/OnboardMeetingSetupView.vue index 1d1882b9..bc6c63c7 100644 --- a/src/views/OnboardMeetingSetupView.vue +++ b/src/views/OnboardMeetingSetupView.vue @@ -271,12 +271,12 @@