Changelog
11.0.0 (2025-07-09)
BREAKING CHANGES
- Aligned the component with the latest CKEditor 5 release (
v46.0.0), adopting the type import names. Starting from this version, previous CKEditor 5 releases are no longer compatible due to breaking changes in definitions and package structure. See ckeditor/ckeditor5#18583
Features
- Update imports to match CKEditor 5 v46. Closes #602. (commit)
BREAKING CHANGES
- Aligned the component with the latest CKEditor 5 release (
v46.0.0), adopting the type import names. Starting from this version, previous CKEditor 5 releases are no longer compatible due to breaking changes in definitions and package structure. See ckeditor/ckeditor5#18583
Features
- Update imports to match CKEditor 5 v46. Closes #602. (commit)
10.0.0 (2025-06-25)
BREAKING CHANGES
- Upgraded the minimal version of Node.js to 20.0.0 due to the end of LTS.
Bug fixes
- Ensured
onError callback is invoked correctly when disableWatchdog is true or during watchdog initialization failure. (commit)
- Prevented editor crash when the
disabled prop changes during initialization. (commit)
Other changes
- Upgraded the minimal version of Node.js to 20.0.0 due to the end of LTS. (commit)
BREAKING CHANGES
- Upgraded the minimal version of Node.js to 20.0.0 due to the end of LTS.
Bug fixes
- Ensured
onError callback is invoked correctly when disableWatchdog is true or during watchdog initialization failure. (commit)
- Prevented editor crash when the
disabled prop changes during initialization. (commit)
Other changes
- Upgraded the minimal version of Node.js to 20.0.0 due to the end of LTS. (commit)
9.5.0 (2025-02-13)
Bug fixes
- The
[data] property is now available in Next.js-related integrations. Closes #567. (commit)
Other changes
- Removed the
prop-types package from dependencies. (commit)
Bug fixes
- The
[data] property is now available in Next.js-related integrations. Closes #567. (commit)
Other changes
- Removed the
prop-types package from dependencies. (commit)
9.4.0 (2024-11-25)
Features
Bug fixes
- Call
onChangeInitializedEditors on startup of CKEditorContext if there are ready editors. (commit)
Features
Bug fixes
- Call
onChangeInitializedEditors on startup of CKEditorContext if there are ready editors. (commit)
9.3.1 (2024-10-16)
Bug fixes
- Behavior of
useCKEditorCloud hook is now consistent with Vite and Next runtimes while changing properties. (commit)
- Prevent potential crashes of
useMultiRootEditor during the initialization phase when setting the new state of the multi-root editor with an attached watchdog. Closes #542. (commit)
- Update roots with modified content only. (commit)
9.3.0 (2024-09-26)
Features
- Experimental: Better error messages in
useCKEditorCloud. It now detects existing editor installations and gives migration info from NPM to CDN. (commit)
Other changes
- Remove
ckeditor5-premium-features from peerDependencies. (commit)
9.2.0 (2024-09-19)
Features
- Experimental: Improve result type of
useCKEditorCloud to make CKEditorPremiumFeatures and CKBox non-nullable when proper configuration is passed. (commit)
Other changes
- Experimental: Rename the
languages configuration property to translations in useCKEditorCloud. (commit)
9.1.0 (2024-09-05)
We added an onChangeInitializedEditors callback to CKEditorContext component to allow tracking newly initialized editors within the JSX React tree.
Example
<CKEditorContext
context={ ClassicEditor.Context }
contextWatchdog={ ClassicEditor.ContextWatchdog }
onChangeInitializedEditors={ editors => {
console.log( editors );
}}
>
<CKEditor
editor={ ClassicEditor }
data="<h2>Editor</h2>"
contextItemMetadata={{
name: 'editor1',
user: { id: '2' }
}}
/>
<CKEditor
editor={ ClassicEditor }
data="<h2>Another Editor</h2><p>... in a common Context</p>"
contextItemMetadata={{
name: 'editor2'
}}
/>
</CKEditorContext>
onChangeInitializedEditors will be called twice in the example above:
- First log:
{ editor1: ... }
- Second log:
{ editor1: ..., editor2: ... }
⚠️ Order of initialization is not guaranteed. editor2 might be initialized before editor1.
Features
- Add an
onChangeInitializedEditors callback to CKEditorContext to allow tracking of newly initialized editors within the JSX React tree. Closes #513. (commit)
- Experimental: Added
useCKEditorCloud hook for managing asynchronous loading of CKEditor from a CDN. (commit)
- Experimental: Added
withCKEditorCloud HOC to simplify CKEditor integration with CDN in React components. (commit)
Bug fixes
- Image upload should be now possible in demos. (commit)
- Indent button is no longer disabled in manual demos. (commit)
- Manual demos should point to existing documentation links. (commit)
9.0.0 (2024-08-07)
We are excited to announce a new major release of the React integration.
In this release, we have introduced the following breaking changes that should make using the integration more intuitive and easier.
- ESM-first: Besides the UMD build, the integration is now available in ESM format. In most projects, the new ESM build should be automatically prioritized by bundlers and other tools.
- Support for React 19: We improved support for using the integration in React 19. As a result, the
<CKEditorContext> component and the useMultiRootEditor hook should no longer throw errors.
- New name of the global variable: The name of the global variable used in the UMD build changed from
CKEditor to CKEDITOR_REACT.
BREAKING CHANGES
- Change the global name used in the UMD build from
CKEditor to CKEDITOR_REACT.
Bug fixes
- Adjusted
CKEditorContext format to prevent race conditions in the CKEditor component. (commit)
- Change JSX runtime to
classic so that react-jsx-runtime is not bundled. (commit)
- Change the global name used in the UMD build from
CKEditor to CKEDITOR_REACT to match the new convention. See ckeditor/ckeditor5#16736. (commit)
Other changes
- Added support for React 19. (commit)
- Updated yarn.lock to fix dependabot alert. (commit)
BREAKING CHANGES
- Change the global name used in the UMD build from
CKEditor to CKEDITOR_REACT.
Bug fixes
- Change JSX runtime to
classic so that react-jsx-runtime is not bundled. (commit)
- Change the global name used in the UMD build from
CKEditor to CKEDITOR_REACT to match the new convention. See ckeditor/ckeditor5#16736. (commit)
We are excited to announce the alpha release of the next major version of the React integration.
In this release, we have introduced the following breaking changes that should make using the integration more intuitive and easier.
- ESM-first: Besides the UMD build, the integration is now available in ESM format. In most projects, the new ESM build should be automatically prioritized by bundlers and other tools.
- Support for React 19: We improved support for using the integration in React 19. As a result, the
<CKEditorContext> component and the useMultiRootEditor hook should no longer throw errors.
BREAKING CHANGES
Bug fixes
- Adjusted
CKEditorContext format to prevent race conditions in the CKEditor component. (commit)
Other changes
- Added support for React 19. (commit)
8.0.0 (2024-06-26)
We are excited to announce the next major version of the React integration.
This release is intended to allow the integration to work with the latest version of new installation methods.
We are happy to announce the alpha release of the next major version of the React integration.
This release is intended to allow the integration to work with existing and new installation methods announced in this post.
Please refer to our nightly documentation build for the installation instructions.
BREAKING CHANGES
- Add a new required
contextWatchdog prop to the <CKEditorContext> component.
Features
- Change the implementation to only depend on types from the
ckeditor5 package and not runtime code to make the integration work with existing and new installation methods. (commit)
7.0.0 (2024-05-20)
Bug fixes
- The quick re-rendering, especially in
React.StrictMode, will no longer cause the editor errors. Closes #442, #469, #471, #476. (commit)
6.3.0 (2024-04-25)
Features
Bug fixes
- The toolbar element will be rendered correctly after changing the reference (in the rerendering process). Closes #434. (commit)
- Sources of peer dependencies of the
@ckeditor/ckeditor5-react package are no longer built-in when preparing the dist/ directory. See #470. (commit)
6.2.0 (2023-11-21)
Features
- Introduced the integration with multi-root editor by providing
useMultiRootEditor hook. See the new samples to learn more. Closes #257. (commit)
Other changes
6.1.0 (2023-06-27)
Features
6.0.0 (2023-04-07)
BREAKING CHANGES
- Due to rewriting to TypeScript, the component requires CKEditor 5 typings that are available in version 37 or higher. See ckeditor/ckeditor5#11704.
- Upgraded the minimal versions of Node.js to
16.0.0 due to the end of LTS.
Features
Other changes
- Updated the required version of Node.js to 16. (commit)
- Changed the package entry point file name from
ckeditor.js to index.js. The structure of the dist/ directory looks like src/. (commit)
BREAKING CHANGES
- Due to rewriting to TypeScript, the component requires CKEditor 5 typings that are available in version 37 or higher. See ckeditor/ckeditor5#11704.
- Upgraded the minimal versions of Node.js to
16.0.0 due to the end of LTS.
Features
Other changes
- Updated the required version of Node.js to 16. (commit)
- Changed the package entry point file name from
ckeditor.js to index.js. The structure of the dist/ directory looks like src/. (commit)
5.1.0 (2023-02-23)
Features
- Added the
watchdogConfig property that allows defining configuration for the Watchdog feature. Closes #360. (commit)
5.0.6 (2023-01-09)
Bug fixes
- Fixed destroy process of a single editor instance working within Context. Closes #354. (commit)
5.0.5 (2022-12-22)
Bug fixes
- Addes a missing postinstall script to published files. (commit)
5.0.4 (2022-12-22)
Bug fixes
- The
<CKEditor> component does not emit an error when destroying the context feature. Closes #349, #339. (commit)
5.0.3 (2022-11-23)
Bug fixes
5.0.2 (2022-05-26)
Other changes
5.0.1 (2022-05-18)
Bug fixes
- Fixed component double rendering in StrictMode. Closes #294. (commit)
5.0.0 (2022-04-12)
BREAKING CHANGES
- Due to introducing the lock mechanism for the
Editor#isReadOnly property, the <CKEditor> component uses the new way of enabling the read-only mode in the editor. The component requires an instance of CKEditor 5 in version 34 or higher. See ckeditor/ckeditor5#10496.
Other changes
- Aligned the
<CKEditor> component API to use the new lock mechanism when enabling/disabling the read-only mode. (commit)
4.0.1 (2022-04-01)
Other changes
4.0.0 (2022-02-09)
BREAKING CHANGES
- Upgraded the minimal versions of Node.js to
14.0.0 due to the end of LTS.
Bug fixes
- Use
async/await in CKEditorContext#_destroyContext() to handle context destruction properly. Closes #283. (commit)
Other changes
3.0.3 (2021-10-05)
Internal changes only (updated dependencies, documentation, etc.).
3.0.2 (2021-03-08)
Bug fixes
- Make sure that the watchdog instance exists before destroying itself. Closes #197. (commit)
3.0.1 (2021-02-09)
Other changes
- Added
React@^17 as allowed version in peerDependencies. (commit)
3.0.0 (2020-10-28)
BREAKING CHANGES
- The
onInit property was renamed to onReady and can be called multiple times (after the initialization and after the component is ready when an error occurred).
The entry point of the package has changed. The default import was removed since the package provides more than a single component now. Use
import { CKEditor } from '@ckeditor/ckeditor5-react';
instead of
import CKEditor from '@ckeditor/ckeditor5-react';
Features
Both components (<CKEditor> and <CKEditorContext>) will internally use the Watchdog class that restarts the editor or context when an error occurs.
2.1.0 (2020-01-16)
Features
2.0.0 (2019-11-22)
Other changes
BREAKING CHANGE
<CKEditor> React component is now distributed in ES6 instead of ES5. See #105.
1.1.3 (2019-04-01)
Bug fixes
- The
<CKEditor> component will not update anything until it is not ready. Closes #83. (63cb97d)
1.1.2 (2019-03-26)
Bug fixes
- The
<CKEditor> component will not be updated by the React itself. The editor won't freeze if the #data property was specified as a static string. Closes #75. Closes #78. (bdb2ce3)
1.1.1 (2019-02-28)
Bug fixes
- Fixed integration with collaboration features by changing the way how the initial data are passed to an editor instance. Previously the
<ckeditor> component had been using the editor.setData() method which produces invalid results in collaboration. Now the initial data are injected directly into the container on which the editor will be created. Closes #68. (1c93b3e)
Other changes
1.1.0 (2018-11-29)
Features
- Introduced
onFocus and onBlur properties to the <CKEditor> component. Closes #49. (97d05c9)
- Introduced the
disabled property which allows switching the editor to the read-only mode. Closes #53. (6765006)
Bug fixes
- Prevented an infinite loop when the
data property is missing. Closes #39. (e16430a)
1.0.0 (2018-10-09)
Internal changes only (updated dependencies, documentation, etc.).
First developer preview. It contains a ready-to-use <CKEditor> component that allows using CKEditor 5 Builds and CKEditor 5 Framework in React applications.