Wysiwyg editor used in Zendesk Help Center
[!IMPORTANT] This custom CKEditor build cannot be used outside of Zendesk Help Center which is properly licensed to use CKEditor 5. For more information see LICENSE.md.
$ yarn add @zendesk/help-center-wysiwyg
The easiest way to initialize the editor is using createEditor
:
import { createEditor } from "@zendesk/help-center-wysiwyg";
const editor = await createEditor(target, {
editorType: "supportRequests", // "comments" | "communityPosts" | "supportRequests"
hasAtMentions: true,
userRole: "admin",
brandId: 123,
baseLocale: "en-us",
});
If you're using react and don't need the editor instance, you can also render the editor using @ckeditor/ckeditor5-react
:
import { render } from "react-dom";
import { CKEditor } from "@ckeditor/ckeditor5-react";
import Editor, { getEditorConfig } from "@zendesk/help-center-wysiwyg";
render(
<CKEditor
editor={Editor}
config={getEditorConfig({
editorType: "comments",
hasAtMentions: true,
userRole: "admin",
brandId: 123,
baseLocale: "en-us",
})}
/>,
target
);
Not available when the editorType
is "supportRequests"
.
Handling notifications can be done by directly accessing the Notification
plugin:
const notifications = editor.plugins.get("Notification");
notifications.on("show", (event, data) => {
const message =
data.message instanceof Error ? data.message.message : data.message;
const { type, title } = data;
// Log to the console or use your own notification dispatcher:
console.log({ type, title, message });
});
There is an example page in [public/index.html] and it can be ran with:
yarn start
You should then be able to access it in your browser:
open http://localhost:8080/
When you're done with your changes, we use changesets to manage release notes. Please run changeset
to autogenerate notes to be appended to your pull request.