diff --git a/wasm/dm.go b/wasm/dm.go index 27d1e81dfc3fcaac51bdd91d6ace2b262038cb3e..0328a2090604b68eede3109c3fccfbc97a0e53b7 100644 --- a/wasm/dm.go +++ b/wasm/dm.go @@ -322,7 +322,7 @@ func (dmc *DMClient) SendText(_ js.Value, args []js.Value) any { jww.DEBUG.Printf("SendText(%s, %d, %s...)", base64.RawStdEncoding.EncodeToString(partnerPubKeyBytes)[:8], - partnerToken, message[:10]) + partnerToken, truncate(message, 10)) promiseFn := func(resolve, reject func(args ...any) js.Value) { sendReport, err := dmc.api.SendText(partnerPubKeyBytes, @@ -381,7 +381,7 @@ func (dmc *DMClient) SendReply(_ js.Value, args []js.Value) any { base64.RawStdEncoding.EncodeToString(partnerPubKeyBytes)[:8], partnerToken, base64.RawStdEncoding.EncodeToString(replyID), - message[:10]) + truncate(message, 10)) promiseFn := func(resolve, reject func(args ...any) js.Value) { sendReport, err := dmc.api.SendReply(partnerPubKeyBytes, @@ -428,7 +428,7 @@ func (dmc *DMClient) SendReaction(_ js.Value, args []js.Value) any { base64.RawStdEncoding.EncodeToString(partnerPubKeyBytes)[:8], partnerToken, base64.RawStdEncoding.EncodeToString(replyID), - message[:10]) + truncate(message, 10)) promiseFn := func(resolve, reject func(args ...any) js.Value) { sendReport, err := dmc.api.SendReaction(partnerPubKeyBytes, @@ -951,3 +951,12 @@ func (c *DMDbCipher) UnmarshalJSON(_ js.Value, args []js.Value) any { } return nil } + +// truncate truncates the string to length n. If the string is trimmed, then +// ellipses (...) are appended. +func truncate(s string, n int) string { + if len(s)-3 <= n { + return s + } + return s[:n] + "..." +} \ No newline at end of file