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.