diff --git a/libsession-util b/libsession-util index 5806b91..3959cd3 160000 --- a/libsession-util +++ b/libsession-util @@ -1 +1 @@ -Subproject commit 5806b9156b2dca4990dc63baed99c02e20139819 +Subproject commit 3959cd3257efe6106417c00c422d814cb5908bfd diff --git a/package.json b/package.json index f30caff..4ef5c1d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "main": "index.js", "name": "libsession_util_nodejs", "description": "Wrappers for the Session Util Library", - "version": "0.4.9", + "version": "0.4.10", "license": "GPL-3.0", "author": { "name": "Oxen Project", diff --git a/src/groups/meta_group_wrapper.cpp b/src/groups/meta_group_wrapper.cpp index 117688b..4c49679 100644 --- a/src/groups/meta_group_wrapper.cpp +++ b/src/groups/meta_group_wrapper.cpp @@ -110,6 +110,7 @@ void MetaGroupWrapper::Init(Napi::Env env, Napi::Object exports) { InstanceMethod( "memberSetNameTruncated", &MetaGroupWrapper::memberSetNameTruncated), InstanceMethod("memberSetInviteSent", &MetaGroupWrapper::memberSetInviteSent), + InstanceMethod("memberSetInviteNotSent", &MetaGroupWrapper::memberSetInviteNotSent), InstanceMethod( "memberSetInviteFailed", &MetaGroupWrapper::memberSetInviteFailed), InstanceMethod( @@ -553,6 +554,20 @@ void MetaGroupWrapper::memberSetInviteSent(const Napi::CallbackInfo& info) { }); } + +void MetaGroupWrapper::memberSetInviteNotSent(const Napi::CallbackInfo& info) { + wrapExceptions(info, [&] { + assertIsString(info[0]); + auto pubkeyHex = toCppString(info[0], "memberSetInviteNotSent"); + + auto m = this->meta_group->members->get(pubkeyHex); + if (m) { + m->set_invite_not_sent(); + this->meta_group->members->set(*m); + } + }); +} + void MetaGroupWrapper::memberSetInviteAccepted(const Napi::CallbackInfo& info) { wrapExceptions(info, [&] { assertInfoLength(info, 1); diff --git a/src/groups/meta_group_wrapper.hpp b/src/groups/meta_group_wrapper.hpp index 28bb8bf..a4848e2 100644 --- a/src/groups/meta_group_wrapper.hpp +++ b/src/groups/meta_group_wrapper.hpp @@ -65,6 +65,7 @@ class MetaGroupWrapper : public Napi::ObjectWrap { void memberSetNameTruncated(const Napi::CallbackInfo& info); void memberSetInviteFailed(const Napi::CallbackInfo& info); void memberSetInviteSent(const Napi::CallbackInfo& info); + void memberSetInviteNotSent(const Napi::CallbackInfo& info); void memberSetInviteAccepted(const Napi::CallbackInfo& info); void memberSetPromoted(const Napi::CallbackInfo& info); void memberSetPromotionSent(const Napi::CallbackInfo& info); diff --git a/types/groups/groupmembers.d.ts b/types/groups/groupmembers.d.ts index 22fbbb5..d4c8c17 100644 --- a/types/groups/groupmembers.d.ts +++ b/types/groups/groupmembers.d.ts @@ -92,6 +92,12 @@ declare module 'libsession_util_nodejs' { * Use this function to mark that you've sent one successfully. **/ memberSetInviteSent: (pubkeyHex: PubkeyType) => void; + + /** + * Reset a member's invite state to not_sent. This will mark it as "sending" on the current device + * and "not sent" on any others. + */ + memberSetInviteNotSent: (pubkeyHex: PubkeyType) => void; /** User has accepted an invitation and is now a regular member of the group */ memberSetInviteAccepted: (pubkeyHex: PubkeyType) => void; diff --git a/types/groups/metagroup.d.ts b/types/groups/metagroup.d.ts index a0f081f..dce0ef0 100644 --- a/types/groups/metagroup.d.ts +++ b/types/groups/metagroup.d.ts @@ -99,6 +99,7 @@ declare module 'libsession_util_nodejs' { public memberSetPromotionSent: MetaGroupWrapper['memberSetPromotionSent']; public memberSetPromotionFailed: MetaGroupWrapper['memberSetPromotionFailed']; public memberSetInviteSent: MetaGroupWrapper['memberSetInviteSent']; + public memberSetInviteNotSent: MetaGroupWrapper['memberSetInviteNotSent']; public memberSetInviteFailed: MetaGroupWrapper['memberSetInviteFailed']; public memberEraseAndRekey: MetaGroupWrapper['memberEraseAndRekey']; public membersMarkPendingRemoval: MetaGroupWrapper['membersMarkPendingRemoval']; @@ -147,6 +148,7 @@ declare module 'libsession_util_nodejs' { | MakeActionCall | MakeActionCall | MakeActionCall + | MakeActionCall | MakeActionCall | MakeActionCall | MakeActionCall