Add removeInvitation to the invitation screen
This commit is contained in:
@@ -67,6 +67,7 @@ export class AppService extends EventEmitter<AppEventMap> {
|
||||
{
|
||||
onUpdated: (invitation: XOInvitation) => void;
|
||||
onStatusChanged: (status: string) => void;
|
||||
onRemoved: () => void;
|
||||
}
|
||||
>();
|
||||
|
||||
@@ -241,13 +242,25 @@ export class AppService extends EventEmitter<AppEventMap> {
|
||||
invitationIdentifier,
|
||||
});
|
||||
};
|
||||
const onRemoved = () => {
|
||||
this.detachInvitationListeners(invitationIdentifier);
|
||||
this.invitations.splice(this.invitations.indexOf(invitation), 1);
|
||||
this.bumpInvitationRevision(invitationIdentifier);
|
||||
this.emit("invitation-removed", invitation);
|
||||
this.emit("wallet-state-changed", {
|
||||
reason: "invitation-removed",
|
||||
invitationIdentifier: invitationIdentifier,
|
||||
});
|
||||
};
|
||||
|
||||
invitation.on("invitation-updated", onUpdated);
|
||||
invitation.on("invitation-status-changed", onStatusChanged);
|
||||
invitation.on("invitation-removed", onRemoved);
|
||||
|
||||
this.invitationEventCleanup.set(invitationIdentifier, {
|
||||
onUpdated,
|
||||
onStatusChanged,
|
||||
onRemoved,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ export type { ResolvedInvitationData } from "../utils/resolve-invitation-data.js
|
||||
export type InvitationEventMap = {
|
||||
"invitation-updated": XOInvitation;
|
||||
"invitation-status-changed": string;
|
||||
"invitation-removed": void;
|
||||
error: Error;
|
||||
};
|
||||
|
||||
@@ -889,4 +890,21 @@ export class Invitation extends EventEmitter<InvitationEventMap> {
|
||||
|
||||
return totalSats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the invitation from the Local SQLite db as well as the Engine's internal DB
|
||||
* NOTE: This uses methods that are marked "DANGEROUSLY" inside the engine and behaviour may change
|
||||
*/
|
||||
public async delete() {
|
||||
// Remove the invitation from our local db
|
||||
this.storage.remove(this.data.invitationIdentifier);
|
||||
|
||||
// Remove the invitation from the engine's internal db
|
||||
await this.engine.DANGEROUS_deleteStoredInvitation(this.data.invitationIdentifier);
|
||||
|
||||
this.emit("invitation-removed", this.data.invitationIdentifier);
|
||||
|
||||
// Update the status of the invitation
|
||||
await this.updateStatus();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user