From a06da68e724dc5523e225db786aaa0f126ec9949 Mon Sep 17 00:00:00 2001 From: Yassine Guedidi Date: Sat, 8 Mar 2025 02:19:33 +0100 Subject: [PATCH] Extract Config controller --- assets/controllers/config_controller.js | 16 ++++++++++++++ assets/index.js | 29 ------------------------- assets/js/tools.js | 21 ------------------ package.json | 2 +- templates/Config/index.html.twig | 14 ++++++------ 5 files changed, 24 insertions(+), 58 deletions(-) create mode 100644 assets/controllers/config_controller.js delete mode 100644 assets/js/tools.js diff --git a/assets/controllers/config_controller.js b/assets/controllers/config_controller.js new file mode 100644 index 000000000..804da826a --- /dev/null +++ b/assets/controllers/config_controller.js @@ -0,0 +1,16 @@ +import { Controller } from '@hotwired/stimulus'; + +export default class extends Controller { + static targets = ['previewArticle', 'previewContent', 'font', 'fontSize', 'lineHeight', 'maxWidth']; + + connect() { + this.updatePreview(); + } + + updatePreview() { + this.previewArticleTarget.style.maxWidth = `${this.maxWidthTarget.value}em`; + this.previewContentTarget.style.fontFamily = this.fontTarget.value; + this.previewContentTarget.style.fontSize = `${this.fontSizeTarget.value}em`; + this.previewContentTarget.style.lineHeight = `${this.lineHeightTarget.value}em`; + } +} diff --git a/assets/index.js b/assets/index.js index 92b434abb..2b3e6a976 100755 --- a/assets/index.js +++ b/assets/index.js @@ -17,11 +17,6 @@ import '@fontsource/eb-garamond'; import '@fontsource/montserrat'; import '@fontsource/oswald'; -/* Tools */ -import { - initPreviewText, -} from './js/tools'; - /* Import shortcuts */ import './js/shortcuts/main'; import './js/shortcuts/entry'; @@ -182,7 +177,6 @@ const stickyNav = () => { $(document).ready(() => { stickyNav(); - initPreviewText(); const toggleNav = (toShow, toFocus) => { $('.nav-panel-actions').hide(); @@ -202,29 +196,6 @@ $(document).ready(() => { return false; }); - $('#config_fontsize').on('input', () => { - const value = $('#config_fontsize').val(); - const css = `${value}em`; - $('#preview-content').css('font-size', css); - }); - - $('#config_font').on('change', () => { - const value = $('#config_font').val(); - $('#preview-content').css('font-family', value); - }); - - $('#config_lineHeight').on('input', () => { - const value = $('#config_lineHeight').val(); - const css = `${value}em`; - $('#preview-content').css('line-height', css); - }); - - $('#config_maxWidth').on('input', () => { - const value = $('#config_maxWidth').val(); - const css = `${value}em`; - $('#preview-article').css('max-width', css); - }); - const materialAddForm = $('.nav-panel-add'); materialAddForm.on('submit', () => { materialAddForm.addClass('disabled'); diff --git a/assets/js/tools.js b/assets/js/tools.js deleted file mode 100644 index d7fcd37a2..000000000 --- a/assets/js/tools.js +++ /dev/null @@ -1,21 +0,0 @@ -import $ from 'jquery'; - -function initPreviewText() { - // no display if preview_text not available - if ($('div').is('#preview-article')) { - const defaultFontFamily = $('#config_font').val(); - const defaultFontSize = $('#config_fontsize').val(); - const defaultLineHeight = $('#config_lineHeight').val(); - const defaultMaxWidth = $('#config_maxWidth').val(); - const previewContent = $('#preview-content'); - - previewContent.css('font-family', defaultFontFamily); - previewContent.css('font-size', `${defaultFontSize}em`); - previewContent.css('line-height', `${defaultLineHeight}em`); - $('#preview-article').css('max-width', `${defaultMaxWidth}em`); - } -} - -export { - initPreviewText, -}; diff --git a/package.json b/package.json index 8c294d54a..ff7916697 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "build:dev": "encore dev", "watch": "encore dev --watch", "build:prod": "encore production --progress", - "lint:js": "eslint assets/*.js assets/js/*.js assets/js/**/*.js assets/controllers/*.js", + "lint:js": "eslint assets/*.js assets/js/**/*.js assets/controllers/*.js", "lint:scss": "stylelint assets/scss/*.scss assets/scss/**/*.scss" } } diff --git a/templates/Config/index.html.twig b/templates/Config/index.html.twig index cca500133..51ec63776 100644 --- a/templates/Config/index.html.twig +++ b/templates/Config/index.html.twig @@ -21,7 +21,7 @@ -
+
{{ form_start(form.config) }} {{ form_errors(form.config) }} @@ -121,7 +121,7 @@
{{ form_errors(form.config.font) }} - {{ form_widget(form.config.font) }} + {{ form_widget(form.config.font, {attr: {'data-config-target': 'font', 'data-action': 'config#updatePreview'}}) }} {{ form_label(form.config.font) }}
@@ -132,7 +132,7 @@
{{ form_errors(form.config.lineHeight) }} - {{ form_widget(form.config.lineHeight) }} + {{ form_widget(form.config.lineHeight, {attr: {'data-config-target': 'lineHeight', 'data-action': 'config#updatePreview'}}) }} {{ form_label(form.config.lineHeight, null, {'label_attr': {'class': 'settings-range-label'}}) }}
@@ -145,7 +145,7 @@
{{ form_errors(form.config.fontsize) }} - {{ form_widget(form.config.fontsize) }} + {{ form_widget(form.config.fontsize, {attr: {'data-config-target': 'fontSize', 'data-action': 'config#updatePreview'}}) }} {{ form_label(form.config.fontsize, null, {'label_attr': {'class': 'settings-range-label'}}) }}
@@ -156,7 +156,7 @@
{{ form_errors(form.config.maxWidth) }} - {{ form_widget(form.config.maxWidth) }} + {{ form_widget(form.config.maxWidth, {attr: {'data-config-target': 'maxWidth', 'data-action': 'config#updatePreview'}}) }} {{ form_label(form.config.maxWidth, null, {'label_attr': {'class': 'settings-range-label'}}) }}
@@ -168,8 +168,8 @@
-
-
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.