From bd713556b54df9a69273f603e60067f4b5ff5fbe Mon Sep 17 00:00:00 2001 From: "Richard T. Carback III" <rick.carback@gmail.com> Date: Tue, 20 Jun 2023 17:52:57 +0000 Subject: [PATCH] Convert blocking functions to promises --- wasm/dm.go | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/wasm/dm.go b/wasm/dm.go index 92f47125..e993aa28 100644 --- a/wasm/dm.go +++ b/wasm/dm.go @@ -397,10 +397,15 @@ func (dmc *DMClient) SetNickname(_ js.Value, args []js.Value) any { // // Parameters: // - args[0] - The partner's [ed25519.PublicKey] key to block (Uint8Array). +// +// Returns a promise that exits upon completion. func (dmc *DMClient) BlockPartner(_ js.Value, args []js.Value) any { partnerPubKey := utils.CopyBytesToGo(args[0]) - dmc.api.BlockPartner(partnerPubKey) - return nil + promiseFn := func(resolve, reject func(args ...any) js.Value) { + dmc.api.BlockPartner(partnerPubKey) + resolve() + } + return utils.CreatePromise(promiseFn) } // UnblockPartner unblocks a blocked partner to allow DM messages. @@ -409,8 +414,11 @@ func (dmc *DMClient) BlockPartner(_ js.Value, args []js.Value) any { // - args[0] - The partner's [ed25519.PublicKey] to unblock (Uint8Array). func (dmc *DMClient) UnblockPartner(_ js.Value, args []js.Value) any { partnerPubKey := utils.CopyBytesToGo(args[0]) - dmc.api.UnblockPartner(partnerPubKey) - return nil + promiseFn := func(resolve, reject func(args ...any) js.Value) { + dmc.api.UnblockPartner(partnerPubKey) + resolve() + } + return utils.CreatePromise(promiseFn) } // IsBlocked indicates if the given partner is blocked. @@ -423,7 +431,11 @@ func (dmc *DMClient) UnblockPartner(_ js.Value, args []js.Value) any { // - boolean func (dmc *DMClient) IsBlocked(_ js.Value, args []js.Value) any { partnerPubKey := utils.CopyBytesToGo(args[0]) - return dmc.api.IsBlocked(partnerPubKey) + promiseFn := func(resolve, reject func(args ...any) js.Value) { + isBlocked := dmc.api.IsBlocked(partnerPubKey) + resolve(isBlocked) + } + return utils.CreatePromise(promiseFn) } // GetBlockedPartners returns all partners who are blocked by this user. @@ -439,7 +451,11 @@ func (dmc *DMClient) IsBlocked(_ js.Value, args []js.Value) any { // "CWDqF1bnhulW2pko+zgmbDZNaKkmNtFdUgY4bTm2DhA=" // ] func (dmc *DMClient) GetBlockedPartners(js.Value, []js.Value) any { - return utils.CopyBytesToJS(dmc.api.GetBlockedPartners()) + promiseFn := func(resolve, reject func(args ...any) js.Value) { + blocked := utils.CopyBytesToJS(dmc.api.GetBlockedPartners()) + resolve(blocked) + } + return utils.CreatePromise(promiseFn) } //////////////////////////////////////////////////////////////////////////////// -- GitLab