Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit 5d13f1d

Browse files
committed
refactor(editor): add spec-type && clean up
1 parent 52e3481 commit 5d13f1d

File tree

3 files changed

+33
-13
lines changed

3 files changed

+33
-13
lines changed

lib/helper/converter/editor_to_html/frags/list.ex

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ defmodule Helper.Converter.EditorToHTML.Frags.List do
99

1010
@class get_in(Class.article(), ["list"])
1111

12-
@spec get_item(:checklist | :unorder_list | :order_list, map) :: T.html()
12+
@spec get_item(:checklist | :unorder_list | :order_list, T.editor_list_item()) :: T.html()
1313
def get_item(:unorder_list, %{
1414
"hideLabel" => hide_label,
1515
"indent" => indent,
@@ -76,6 +76,16 @@ defmodule Helper.Converter.EditorToHTML.Frags.List do
7676
</div>)
7777
end
7878

79+
@spec frag(:label, T.editor_list_label_type(), T.editor_list_indent(), String.t()) :: T.html()
80+
def frag(:label, label_type, indent, label) do
81+
label_class = @class["label"]
82+
label_type_class = @class["label__#{label_type}"]
83+
84+
~s(<div class="#{label_class} #{label_type_class}" data-index="#{indent}">
85+
#{label}
86+
</div>)
87+
end
88+
7989
@spec frag(:unorder_list_prefix) :: T.html()
8090
def frag(:unorder_list_prefix) do
8191
unorder_list_prefix_class = @class["unorder_list_prefix"]
@@ -90,15 +100,6 @@ defmodule Helper.Converter.EditorToHTML.Frags.List do
90100
~s(<div class="#{order_list_prefix_class}">#{prefix_index}</div>)
91101
end
92102

93-
def frag(:label, label_type, indent, label) do
94-
label_class = @class["label"]
95-
label_type_class = @class["label__#{label_type}"]
96-
97-
~s(<div class="#{label_class} #{label_type_class}" data-index="#{indent}">
98-
#{label}
99-
</div>)
100-
end
101-
102103
@spec frag(:checkbox, Boolean.t()) :: T.html()
103104
def frag(:checkbox, checked) when is_boolean(checked) do
104105
checked_svg = svg(:checked)
@@ -123,6 +124,7 @@ defmodule Helper.Converter.EditorToHTML.Frags.List do
123124
</div>)
124125
end
125126

127+
@spec frag(:checkbox, :text, String.t()) :: T.html()
126128
def frag(:checkbox, :text, text) do
127129
text_class = @class["checklist_text"]
128130

lib/helper/types.ex

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,27 @@ defmodule Helper.Types do
3939
}
4040

4141
@typedoc """
42+
valid editor.js's list item indent
43+
"""
44+
@type editor_list_indent :: 0 | 1 | 2 | 3
45+
46+
@typedoc """
47+
valid editor.js's list item label type
48+
"""
49+
@type editor_list_label_type :: :default | :red | :green | :warn
50+
51+
@typedoc """
52+
editor.js's list item for order_list | unorder_list | checklist
53+
"""
54+
@type editor_list_item :: %{
55+
required(:hideLabel) => String.t(),
56+
required(:indent) => editor_list_indent,
57+
required(:label) => String.t(),
58+
required(:labelType) => editor_list_label_type,
59+
required(:text) => String.t(),
60+
prefixIndex: String.t()
61+
}
62+
@typedoc """
4263
html fragment
4364
"""
4465
@type html :: String.t()

test/helper/converter/editor_to_html_test/list_test.exs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.List do
2727
}
2828
end
2929

30-
@tag :wip2
3130
test "basic list parse should work" do
3231
editor_json =
3332
set_items("unorder_list", [
@@ -148,8 +147,6 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.List do
148147
{:ok, editor_string} = Jason.encode(editor_json)
149148
{:ok, converted} = Parser.to_html(editor_string)
150149

151-
IO.inspect(converted, label: "the converted")
152-
153150
checked_class = @class["checklist_checkbox_checked"]
154151
assert Utils.str_occurence(converted, checked_class) == 1
155152
end

0 commit comments

Comments
 (0)