Этот коммит содержится в:
Mattia Roccoberton
2025-04-13 16:30:58 +02:00
родитель 6946b78e4c
Коммит 8cac91f299
4 изменённых файлов: 100 добавлений и 93 удалений

Просмотреть файл

@@ -2,45 +2,34 @@
module Shared
class QuillEditor < HtmlEditor
SELECTOR = '.ql-container'
TOOLBAR_SELECTOR = '.ql-toolbar'
attr_reader :editor_selector, :toolbar_selector
attr_reader :toolbar, :toolbar_selector
def initialize(selector: SELECTOR, toolbar_selector: TOOLBAR_SELECTOR)
super(selector: selector)
@toolbar = find(toolbar_selector)
@toolbar_selector = toolbar_selector
def initialize(container)
@editor_selector = "#{container} .ql-container"
@toolbar_selector = "#{container} .ql-toolbar"
super(selector: editor_selector)
end
def content = content_element['innerHTML']
def content_element
@content_element ||= find("#{selector} .ql-editor")
end
def control_selector(control)
case control&.to_sym
when :bold then "#{toolbar_selector} button.ql-bold"
when :italic then "#{toolbar_selector} button.ql-italic"
when :underline then "#{toolbar_selector} button.ql-underline"
when :link then "#{toolbar_selector} button.ql-link"
else raise "Invalid control #{control}"
end
end
def toggle_bold
find(control_selector(:bold)).click
find("#{toolbar_selector} button.ql-bold").click
end
def toggle_italic
find(control_selector(:italic)).click
find("#{toolbar_selector} button.ql-italic").click
end
def toggle_underline
find(control_selector(:underline)).click
find("#{toolbar_selector} button.ql-underline").click
end
def toggle_link
find(control_selector(:link)).click
find("#{toolbar_selector} button.ql-link").click
end
end
end