diff --git a/wasm/dm.go b/wasm/dm.go index 101ce92bdb36884069e3c71e6bc63074828a0d9d..53d123a26c3f92743f9868e03017e7c1858ca9bb 100644 --- a/wasm/dm.go +++ b/wasm/dm.go @@ -63,6 +63,10 @@ func newDMClientJS(api *bindings.DMClient) map[string]any { "SendReaction": js.FuncOf(cm.SendReaction), "SendSilent": js.FuncOf(cm.SendSilent), "Send": js.FuncOf(cm.Send), + + // User Mute/Unmute + "BlockSender": js.FuncOf(cm.BlockSender), + "UnblockSender": js.FuncOf(cm.UnblockSender), } return dmClientMap @@ -572,6 +576,30 @@ func (dmc *DMClient) GetDatabaseName(js.Value, []js.Value) any { "_speakeasy_dm" } +// BlockSender blocks the provided sender public key from sending DMs +// +// Parameters: +// - args[0] - [ed25519.PublicKey] (Uint8Array) +// +// Returns nothing +func (dmc *DMClient) BlockSender(_ js.Value, args []js.Value) any { + senderKey := utils.CopyBytesToGo(args[0]) + dmc.api.BlockSender(senderKey) + return nil +} + +// UnblockSender unblocks the provided sender public key to allow sending DMs +// +// Parameters: +// - args[0] - [ed25519.PublicKey] (Uint8Array) +// +// Returns nothing +func (dmc *DMClient) UnblockSender(_ js.Value, args []js.Value) any { + senderKey := utils.CopyBytesToGo(args[0]) + dmc.api.UnblockSender(senderKey) + return nil +} + //////////////////////////////////////////////////////////////////////////////// // DM Share URL // ////////////////////////////////////////////////////////////////////////////////