diff --git a/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java b/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java index 813d3e8..3ab58a8 100644 --- a/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java +++ b/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java @@ -37,14 +37,17 @@ public final class MessageView extends Div { public MessageView(@NotNull final Message message) { addClassName("message-view"); + add(createTextComponent(message)); + add(createImageComponents(message)); + add(createDateTimeComponent(message)); + } + + @NotNull + private Component createTextComponent(@NotNull final Message message) { final String messageText = Jsoup.parse(message.html()).text(); - add(new Html(String.format("
%s
", + return new Html(String.format("
%s
", messageText.length() > MAX_LENGTH ? truncateMessageText(messageText) : message.html() - ))); - for (final String image : message.images()) { - add(new Image(image, image)); - } - add(createDateTimeComponent(message)); + )); } @NotNull @@ -52,6 +55,13 @@ private String truncateMessageText(@NotNull final String messageText) { return "

" + messageText.substring(0, MAX_LENGTH) + TRUNC_INDICATOR + "

"; } + @NotNull + private Component[] createImageComponents(@NotNull final Message message) { + return message.images().stream() + .map(image -> new Image(image, image)) + .toArray(Image[]::new); + } + @NotNull private Component createDateTimeComponent(@NotNull final Message message) { final var dateTimeComponent = new Div();