strapi-plugin-ckeditor5
Version:
Replace Strapi default WYSIWYG editor with enhanced build of CKEditor 5
53 lines (42 loc) • 1.05 kB
JavaScript
import React, { useEffect, useState } from "react";
import { useLibrary } from "@strapi/helper-plugin";
import PropTypes from "prop-types";
const MediaLib = ({ isOpen, onChange, onToggle }) => {
const { components } = useLibrary();
const [isDisplayed, setIsDisplayed] = useState(false);
useEffect(() => {
setIsDisplayed(isOpen);
}, [isOpen]);
const Component = components["media-library"];
const handleInputChange = (data) => {
if (data) {
onChange(data);
onToggle();
}
};
const handleClosed = () => {
onToggle();
};
if (Component && isDisplayed) {
return (
<Component
allowedTypes={["images", "videos", "files"]}
isMultiple={false}
onClose={handleClosed}
onSelectAssets={handleInputChange}
/>
);
}
return null;
};
MediaLib.defaultProps = {
isOpen: false,
onChange: () => {},
onToggle: () => {},
};
MediaLib.propTypes = {
isOpen: PropTypes.bool,
onChange: PropTypes.func,
onToggle: PropTypes.func,
};
export default MediaLib;