Skip to content

Commit cf268f6

Browse files
committed
refactor: update Multiline component and add markdown function
- Added a new `markdown` function to the Multiline component for rendering raw HTML. - Made the `value` attribute required in the Multiline component for better validation.
1 parent f8c1ba7 commit cf268f6

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

lib/algora_web/components/core_components.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ defmodule AlgoraWeb.CoreComponents do
2121
alias AlgoraWeb.Components.UI.DropdownMenu
2222
alias AlgoraWeb.Components.UI.HoverCard
2323
alias AlgoraWeb.Components.UI.Menu
24+
alias AlgoraWeb.Components.UI.Multiline
2425
alias AlgoraWeb.Components.UI.Popover
2526
alias AlgoraWeb.Components.UI.RadioGroup
2627
alias AlgoraWeb.Components.UI.Select
@@ -1379,13 +1380,14 @@ defmodule AlgoraWeb.CoreComponents do
13791380
defdelegate hover_card_content(assigns), to: HoverCard
13801381
defdelegate hover_card_trigger(assigns), to: HoverCard
13811382
defdelegate hover_card(assigns), to: HoverCard
1383+
defdelegate markdown(assigns), to: Multiline
13821384
defdelegate menu_group(assigns), to: Menu
13831385
defdelegate menu_item(assigns), to: Menu
13841386
defdelegate menu_label(assigns), to: Menu
13851387
defdelegate menu_separator(assigns), to: Menu
13861388
defdelegate menu_shortcut(assigns), to: Menu
13871389
defdelegate menu(assigns), to: Menu
1388-
defdelegate multiline(assigns), to: AlgoraWeb.Components.UI.Multiline
1390+
defdelegate multiline(assigns), to: Multiline
13891391
defdelegate popover_content(assigns), to: Popover
13901392
defdelegate popover_trigger(assigns), to: Popover
13911393
defdelegate popover(assigns), to: Popover

lib/algora_web/components/ui/multiline.ex

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,21 @@ defmodule AlgoraWeb.Components.UI.Multiline do
22
@moduledoc false
33
use AlgoraWeb.Component
44

5-
attr :value, :string
5+
attr :value, :string, required: true
66
attr :class, :string, default: nil
77

88
def multiline(assigns) do
99
~H"""
1010
<div class={classes(["whitespace-pre-line", @class])}>{@value}</div>
1111
"""
1212
end
13+
14+
attr :value, :string, required: true
15+
attr :class, :string, default: nil
16+
17+
def markdown(assigns) do
18+
~H"""
19+
<div class={classes(["whitespace-normal", @class])}>{Phoenix.HTML.raw(@value)}</div>
20+
"""
21+
end
1322
end

0 commit comments

Comments
 (0)