BUG: Can't add placeholders drop down to text field drop down options with CKEditor enabled
Question
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Chrome
Reproducible demo link
https://codepen.io/darrenbawag/pen/JjWBLrp
Describe the bug
How to reproduce the bug?
- Open this link https://codepen.io/darrenbawag/pen/JjWBLrp and try to show the placeholder dropdown to toolbar of CKEditor using this code but this does show the drop down only when we don't add the grape grapesjs-plugin-ckeditor to configuration.
icon: `<select class="gjs-field">
<option id="defaultPlaceholder">Placeholder</option>
<option value="[[salutation]]">Salutation</option>
<option value="[[firstname]]">Firstname</option>
<option value="[[lastname]]">Lastname</option>
</select>`,
// Bind the 'result' on 'change' listener
event: "change",
result: (
rte: { exec: (arg0: string, arg1: unknown) => unknown },
action: { btn: { firstChild: { value: unknown } } }
) => rte.exec("fontSize", action.btn.firstChild.value),
// Callback on any input change (mousedown, keydown, etc..)
update: (
rte: { insertHTML: (arg0: unknown) => void },
action: { btn: { children: { selectedOptions: { value: unknown }[] }[] } }
) => {
rte.insertHTML(action.btn.children[0].selectedOptions[0].value);
},
});```
2. ...
**What is the expected behavior?**
GrapeJS ckeditor should provide way to add custom placeholders dropdowns,
**What is the current behavior?**
I can not custom drop down placeholder to the toolbar options when I use grape js ckeditor or custom plugin.
If is necessary to execute some code in order to reproduce the bug, paste it here below:
This code adds the drop down to default RichTextEditor toolbar but does not adds drop down on CKeditor toolbar options
```js
rte.add("fontSize", {
icon: `<select class="gjs-field">
<option id="defaultPlaceholder">Placeholder</option>
<option value="[[salutation]]">Salutation</option>
<option value="[[firstname]]">Firstname</option>
<option value="[[lastname]]">Lastname</option>
</select>`,
// Bind the 'result' on 'change' listener
event: "change",
result: (
rte: { exec: (arg0: string, arg1: unknown) => unknown },
action: { btn: { firstChild: { value: unknown } } }
) => rte.exec("fontSize", action.btn.firstChild.value),
// Callback on any input change (mousedown, keydown, etc..)
update: (
rte: { insertHTML: (arg0: unknown) => void },
action: { btn: { children: { selectedOptions: { value: unknown }[] }[] } }
) => {
rte.insertHTML(action.btn.children[0].selectedOptions[0].value);
},
});
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (2)
cc: @jcamejo @artf
Those actions are only available for the built-in RTE, if you replace it with a custom RTE like CKEditor you don't see them. You have to use CKEditor itself for your custom logic.
Related Questions and Answers
Continue research with similar issue discussions.
Issue #6019
BUG: unable to hide rte in latest versions
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Reproducible demo link https://code...
Issue #6590
BUG: Able to access/delete/drag the locked components in layermanager
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? chrome Reproducible demo link https://code...
Issue #6485
BUG: showSelectionPalette doesnt work with custom color picker
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Reproducible demo link https://code...
Issue #6263
BUG: Duplicated links are added using rte
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? ChromeReproducible demo link https://codepen...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.