Skip to content

Conversation

RasmuS2024
Copy link
Collaborator

@RasmuS2024 RasmuS2024 commented Sep 29, 2025

Pull request details

RU

  1. В CommenRequest добавил константу MAX_CONTENT_LENGTH = 500.
  2. Поля ввода комментария, редактирования комментария и ответа на комментарий ограничено 500 символами, значение берется из константы.
  3. Изменил label полей ввода комментария, редактирования комментария и ответа на комментарий, где выводится максимальное количество символов ( в локали передается :max, который в шаблонах берется из константы).

EN

  1. Added the constant MAX_CONTENT_LENGTH = 500 to CommenRequest.
  2. The comment input, comment editing, and comment reply fields are limited to 500 characters; the value is taken from the constant.
  3. Changed the label for the comment input, comment editing, and comment reply fields to display the maximum number of characters (in the locale, :max is passed, which is taken from the constant in templates).

Issues fixed

#1741

@RasmuS2024 RasmuS2024 changed the title 1741/feature/comment character limit #1741 feature: comment character limit fixed Sep 29, 2025
@RasmuS2024 RasmuS2024 changed the title #1741 feature: comment character limit fixed #1741 comment text area character limit fixed Sep 29, 2025
@RasmuS2024 RasmuS2024 changed the title #1741 comment text area character limit fixed #1741 comment text area character limit fixed (500 chars) Sep 29, 2025
</ul>
@auth
@include('components.comment._form')
@include('components.comment._form', ['maxLength' => \App\Http\Requests\CommentRequest::MAX_CONTENT_LENGTH])
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай эту константу использовать прямо внутри формы, т.е. не передавать снаружи, а обращаться к ней в компоненте.
Тк форма комментария и логика они неразрывно связаны. Ну и так код будет почище. То, что относится к комментам, будет внутри.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай эту константу использовать прямо внутри формы, т.е. не передавать снаружи, а обращаться к ней в компоненте. Тк форма комментария и логика они неразрывно связаны. Ну и так код будет почище. То, что относится к комментам, будет внутри.

Поправил

@RasmuS2024 RasmuS2024 force-pushed the 1741/feature/comment-character-limit branch from 0df6ddb to 537e493 Compare September 30, 2025 19:29
*/
use App\Helpers\MarkdownHelper;
if (!defined('MAX_CONTENT_LENGTH')) {
define('MAX_CONTENT_LENGTH', 500);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не, у тебя до этого верно было что константабыла в реквесте определена. Ведь получается, что у нас константа 500, которая обозачает длину коммента, расползается по двум местам.

тут как будто бы нет лучшего решения, но определять константы внутри вью - зло.

До этого верный путь был - константа определена в реквесте, и использована во вью. Просто не нужно ее прокидывать снаружи (из другой вью) в этот компонент, а прямо тут обращаться к контснанте, как щас делаешь.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошо, делаю.

Copy link
Collaborator Author

@RasmuS2024 RasmuS2024 Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fey Не понял как обращаться к константе реквеста из вью. Можно ли сделать константу в config\comment ? а она будет глобально доступна. Для Laravel я так понял это лучший вариант.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fey Не понял как обращаться к константе реквеста из вью. Можно ли сделать константу в config\comment ? а она будет глобально доступна. Для Laravel я так понял это лучший вариант.

А у тебя ведь было. \App\Http\Requests\CommentRequest::MAX_CONTENT_LENGTH - в принципе нам так допустимо. Почему? Потому что это не настройка уровня приложения прям ,чтобы в конфиг уносить. Это локальная штука конкретно к комментам. Это может быть внутри реквеста, внутри ДТО, или модели, ведь мы на уровне предметной области задаем бизнес-правило "комментарий не может быть больше 500 символов".
Константа не будет магической, и ее можно использовать во вью, реквесте, в переводах.

@if ($comment->isReply())
<div class="border my-2">
<div class="small text-muted ml-2">{{ $comment->parent->content }}</div>
<div class="small text-muted ml-2" style="overflow-wrap: break-word;">{{ $comment->parent->content }}</div>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот это как будто бы лишнее изменение. Для чего оно?
Во первых это не решает нашу текущую задачу (показать лимит сообщения), во вторых это инлайн-стиль, который мы избегаем. Скорее всего для бутстрапа есть нужный класс-утилита. Используй его. Если нет - определени кастом.
Похожа проблема где-то уже была, поэтому можешь поискать по вьюхам.

Copy link
Collaborator Author

@RasmuS2024 RasmuS2024 Oct 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я понял, исправлю. Это решает проблему, когда отвечаешь на комментарий, ответ показывается нормально с переносами, а сам исходный коммент показывается в другом стиле и длинные слова не переносятся. Вот, нашел: <div class="small text-muted ml-2 text-break">.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

хм, верно понял, что break-word решает это, а text-break - нет?

@RasmuS2024
Copy link
Collaborator Author

Что-то пошло не так...

@RasmuS2024 RasmuS2024 force-pushed the 1741/feature/comment-character-limit branch from 7dbbe8b to 55413af Compare October 1, 2025 22:23
use App\Helpers\MarkdownHelper;
if (!defined('MAX_CONTENT_LENGTH')) {
define('MAX_CONTENT_LENGTH', 500);
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RasmuS2024 константа вернулась/осталась)

В config/comment.php у тебя определенеа длина коммента.

А почему решил через конфиг это делать? Мне кажется через константу в CreateCommentRequest кмк вполне норм было. Конфиг возможно стоит оставить для более системных штук. А так, если константа будет в реквесте, то будет +- локализовано это (т.е. не ползет по остальному риложению).

Еще вариант - как раз использовать DTO, когда ты из реквеста (тела запроса) создаешь ридонли класс типа CommentData, и переменная тоже там может быть.

Можно еще прям в модель это впиндюрить. Если у нас "бизнесовое" требовани ограничить длину коммента, то это справедливо туда положить.

@if ($comment->isReply())
<div class="border my-2">
<div class="small text-muted ml-2">{{ $comment->parent->content }}</div>
<div class="small text-muted ml-2 text-break">{{ $comment->parent->content }}</div>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот тут в итоге это изменение - для чего?)

Т.е. мы тут фиксим и верстку и вывод сообщения о длине коммента? Я думаю, лучше разделить и делать это разными ПРами, тк по смыслам это именно разные вещи. И если что-то пойдет не так, то будет легче откатить одно из изменений.

@RasmuS2024 RasmuS2024 force-pushed the 1741/feature/comment-character-limit branch from 55413af to f576f79 Compare October 4, 2025 13:36
@RasmuS2024 RasmuS2024 force-pushed the 1741/feature/comment-character-limit branch from f576f79 to f41f9ce Compare October 4, 2025 14:36
@RasmuS2024
Copy link
Collaborator Author

RasmuS2024 commented Oct 4, 2025

@ddm14159 подправил, но правильно ли? Лишние правки не относящиеся к данному ищщусу убрал.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants