Compare commits

...

3 Commits

Author SHA1 Message Date
67a9ecf6c6 Merge branch 'master' into notify-initialization-fix 2025-09-19 03:56:24 -04:00
823fa51275 Merge pull request 'feat(NewActivityView): enhance "See all" links to mark offers as read before navigation' (#198) from new-activity-mark-read into master
Reviewed-on: #198
2025-09-19 03:14:23 -04:00
Jose Olarte III
b1fcb49e7c fix: initialize notification helpers in lifecycle methods
- Fix 't is not a function' error during image upload by properly initializing notification helpers
- Move notification helper initialization from class-level to lifecycle methods (created/mounted)
- Affected components: ImageMethodDialog, SeedBackupView, QuickActionBvcBeginView, HelpNotificationsView
- Ensures $notify is available when createNotifyHelpers() is called
- Resolves notification errors in image upload functionality
2025-09-18 21:42:15 +08:00
4 changed files with 16 additions and 4 deletions

View File

@@ -293,7 +293,7 @@ const inputImageFileNameRef = ref<Blob>();
export default class ImageMethodDialog extends Vue { export default class ImageMethodDialog extends Vue {
$notify!: NotifyFunction; $notify!: NotifyFunction;
$router!: Router; $router!: Router;
notify = createNotifyHelpers(this.$notify); notify!: ReturnType<typeof createNotifyHelpers>;
/** Active DID for user authentication */ /** Active DID for user authentication */
activeDid = ""; activeDid = "";
@@ -498,6 +498,9 @@ export default class ImageMethodDialog extends Vue {
* @throws {Error} When settings retrieval fails * @throws {Error} When settings retrieval fails
*/ */
async mounted() { async mounted() {
// Initialize notification helpers
this.notify = createNotifyHelpers(this.$notify);
try { try {
// Get activeDid from active_identity table (single source of truth) // Get activeDid from active_identity table (single source of truth)
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any

View File

@@ -394,7 +394,7 @@ export default class HelpNotificationsView extends Vue {
notifyingReminderTime = ""; notifyingReminderTime = "";
// Notification helper system // Notification helper system
notify = createNotifyHelpers(this.$notify); notify!: ReturnType<typeof createNotifyHelpers>;
/** /**
* Computed property for consistent button styling * Computed property for consistent button styling
@@ -430,6 +430,9 @@ export default class HelpNotificationsView extends Vue {
* Handles errors gracefully with proper logging without exposing sensitive data. * Handles errors gracefully with proper logging without exposing sensitive data.
*/ */
async mounted() { async mounted() {
// Initialize notification helpers
this.notify = createNotifyHelpers(this.$notify);
try { try {
const registration = await navigator.serviceWorker?.ready; const registration = await navigator.serviceWorker?.ready;
const fullSub = await registration?.pushManager.getSubscription(); const fullSub = await registration?.pushManager.getSubscription();

View File

@@ -99,7 +99,7 @@ export default class QuickActionBvcBeginView extends Vue {
$router!: Router; $router!: Router;
// Notification helper system // Notification helper system
private notify = createNotifyHelpers(this.$notify); private notify!: ReturnType<typeof createNotifyHelpers>;
attended = true; attended = true;
gaveTime = true; gaveTime = true;
@@ -111,6 +111,9 @@ export default class QuickActionBvcBeginView extends Vue {
* Uses America/Denver timezone for Bountiful location * Uses America/Denver timezone for Bountiful location
*/ */
async mounted() { async mounted() {
// Initialize notification helpers
this.notify = createNotifyHelpers(this.$notify);
logger.debug( logger.debug(
"[QuickActionBvcBeginView] Mounted - calculating meeting date", "[QuickActionBvcBeginView] Mounted - calculating meeting date",
); );

View File

@@ -162,7 +162,7 @@ export default class SeedBackupView extends Vue {
showSeed = false; showSeed = false;
// Notification helper system // Notification helper system
notify = createNotifyHelpers(this.$notify); notify!: ReturnType<typeof createNotifyHelpers>;
/** /**
* Computed property for consistent copy feedback styling * Computed property for consistent copy feedback styling
@@ -204,6 +204,9 @@ export default class SeedBackupView extends Vue {
* Handles errors gracefully with user notifications. * Handles errors gracefully with user notifications.
*/ */
async created() { async created() {
// Initialize notification helpers
this.notify = createNotifyHelpers(this.$notify);
try { try {
let activeDid = ""; let activeDid = "";