@@ -129,6 +129,9 @@ void MetaGroupWrapper::Init(Napi::Env env, Napi::Object exports) {
129129 &MetaGroupWrapper::memberSetPromotionAccepted),
130130 InstanceMethod (
131131 " memberSetProfilePicture" , &MetaGroupWrapper::memberSetProfilePicture),
132+ InstanceMethod (
133+ " memberResetAllSendingState" ,
134+ &MetaGroupWrapper::memberResetAllSendingState),
132135 InstanceMethod (" memberEraseAndRekey" , &MetaGroupWrapper::memberEraseAndRekey),
133136
134137 // keys exposed functions
@@ -340,7 +343,7 @@ Napi::Value MetaGroupWrapper::metaMerge(const Napi::CallbackInfo& info) {
340343 toCppBufferView (itemObject.Get (" data" ), " meta.merge" ));
341344 }
342345
343- if (conf_strs.size ()){
346+ if (conf_strs.size ()) {
344347 auto info_merged = this ->meta_group ->info ->merge (conf_strs);
345348 count_merged += info_merged.size ();
346349 }
@@ -367,7 +370,7 @@ Napi::Value MetaGroupWrapper::metaMerge(const Napi::CallbackInfo& info) {
367370 toCppBufferView (itemObject.Get (" data" ), " meta.merge" ));
368371 }
369372
370- if (conf_strs.size ()){
373+ if (conf_strs.size ()) {
371374 auto member_merged = this ->meta_group ->members ->merge (conf_strs);
372375 count_merged += member_merged.size ();
373376 }
@@ -669,6 +672,20 @@ void MetaGroupWrapper::memberSetProfilePicture(const Napi::CallbackInfo& info) {
669672 });
670673}
671674
675+ Napi::Value MetaGroupWrapper::memberResetAllSendingState (const Napi::CallbackInfo& info) {
676+ return wrapResult (info, [&] {
677+ bool changed = false ;
678+ for (auto & member : *this ->meta_group ->members ) {
679+ auto sending = this ->meta_group ->members ->has_pending_send (member.session_id );
680+ if (sending) {
681+ this ->meta_group ->members ->set_pending_send (member.session_id , false );
682+ changed = true ;
683+ }
684+ }
685+ return changed;
686+ });
687+ }
688+
672689void MetaGroupWrapper::membersMarkPendingRemoval (const Napi::CallbackInfo& info) {
673690 wrapExceptions (info, [&] {
674691 assertInfoLength (info, 2 );
0 commit comments