misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
9.95k stars 1.35k forks source link

右上の残り字数カウンタが0なのにInvalid Param.エラーが出て投稿できないケースがある #14410

Closed kyoka-h closed 1 month ago

kyoka-h commented 2 months ago

💡 Summary

先頭が改行またはブランクで始まる3001字の文章を入力した際、右上に表示される残り字数カウンタの表示が0と表示されてしまうため、ユーザは3000字ちょうどだと誤認して投稿しようとするが、実際は1字オーバーのため「Invalid Param.」のエラーポップアップが出て投稿できない。

🥰 Expected Behavior

先頭が改行またはブランクであっても、先頭の改行またはブランクを含めた字数でカウントする。 (先頭が改行またはブランクで始まる3001字の文章を入力した際は、右上の残り字数カウンタは「-1」と表示されてほしい) または、投稿時に先頭の改行およびブランクがtrimされる挙動を正とするならば、postDataにはtrim後の文字列をセットして「Invalid Param.」エラーになることなく正常に投稿できるようにする。

🤬 Actual Behavior

MkPostForm.vueのtextLengthは入力内容をtrim()した後のlengthを返しているが、Post関数ではtrim前の入力内容をそのままpostDataに設定しているため、残り字数カウンタと実際の残り字数に差異が生じている。

📝 Steps to Reproduce

MkPostForm.vueのtextLengthを入力内容をtrim()せずにlengthを返すようにする。 またはPost関数で入力内容をtrim()してからpostDataに設定するようにする。

💻 Frontend Environment

* Model and OS of the device(s): Windows11
* Browser: FireFox 129.0.1
* Server URL: misskey.io、kasei.ski、dosei.fun
* Misskey: 2024.5.0(misskey.io, kasei.ski), 2024.7.0(dosei.fun)

🛰 Backend Environment (for server admin)

* Installation Method or Hosting Service:
* Misskey:
* Node:
* PostgreSQL:
* Redis:
* OS and Architecture:

Do you want to address this bug yourself?

KisaragiEffective commented 1 month ago

2024.8.0でも再現

KisaragiEffective commented 1 month ago

permalink: https://github.com/misskey-dev/misskey/blob/44f62160cb4b876f415b48b0574592f87bea9b3d/packages/frontend/src/components/MkPostForm.vue#L248