Media Placeholder
Media placeholders to be used as clickable placeholders for various media types (image, video, audio, file).
Installation
npm install @udecode/plate-mediaUsage
How to configuration the backend see Upload.
import {
  AudioPlugin,
  FilePlugin,
  ImagePlugin,
  MediaEmbedPlugin,
  PlaceholderPlugin,
  VideoPlugin,
} from '@udecode/plate-media/react';const plugins = [
  // ...otherPlugins,
  PlaceholderPlugin.configure({
    options: {
      disableEmptyPlaceholder: true,
    },
    render: {
      afterEditable: () => <MediaUploadToast />,
    },
  }),
];const components = {
  // ...otherComponents,
  [PlaceholderPlugin.key]: MediaPlaceholderElement,
};UploadOptions
uploadConfig
Configuration for different file types:
- 
You can use this option to configure upload limits for each file type, including:
- Maximum file count (e.g. 
maxFileCount: 1) - Maximum file size (e.g. 
maxFileSize: '8MB') - Minimum file count (e.g. 
minFileCount: 1) - mediaType: Used for passing to the media-placeholder-elements file to distinguish between different file types and their progress bar styles.
 
default configuration:
uploadConfig: { audio: { maxFileCount: 1, maxFileSize: '8MB', mediaType: AudioPlugin.key, minFileCount: 1, }, blob: { maxFileCount: 1, maxFileSize: '8MB', mediaType: FilePlugin.key, minFileCount: 1, }, image: { maxFileCount: 3, maxFileSize: '4MB', mediaType: ImagePlugin.key, minFileCount: 1, }, pdf: { maxFileCount: 1, maxFileSize: '4MB', mediaType: FilePlugin.key, minFileCount: 1, }, text: { maxFileCount: 1, maxFileSize: '64KB', mediaType: FilePlugin.key, minFileCount: 1, }, video: { maxFileCount: 1, maxFileSize: '16MB', mediaType: VideoPlugin.key, minFileCount: 1, }, },here is all allowed file types (keys for
uploadConfig):export const ALLOWED_FILE_TYPES = [ 'image', 'video', 'audio', 'pdf', 'text', 'blob', ] as const; - Maximum file count (e.g. 
 
disableEmptyPlaceholder
boolean (default: false)
Disable empty placeholder when no file is selected.
disableFileDrop
boolean (default: false)
Whether we can undo to the placeholder after the file upload is complete.
maxFileCount
number (default: 5)
Maximum number of files that can be uploaded at once.
multiple
boolean (default: true)
Whether multiple files can be uploaded in one time.
Examples
Plate UI
Refer to the preview above.
Plate Plus
- Integration with UploadThing
 - Support for various media types: images, videos, audio, and files
 - Use slash commands for quick insertion
 - Image-specific features:
- Better loading animation and image replacement
 - Resize using vertical edge bars
 - Alignment options
 - Caption support
 - Expand/collapse view
 - Easy download
 
 - Video-specific features:
- Lazy load
 - Resize using vertical edge bars
 - Alignment options
 - Caption support
 - View original source
 
 - Audio and file upload support
 - Ability to embed media via URL
 
Plugins
PlaceholderPlugin
Media placeholder element plugin.
Transforms
editor.tf.insert.audioPlaceholder
Inserts an audio placeholder element.
Parameters
Options for the insert nodes transform.
editor.tf.insert.filePlaceholder
Inserts a file placeholder element.
Parameters
Options for the insert nodes transform.
editor.tf.insert.imagePlaceholder
Inserts an image placeholder element.
Parameters
Options for the insert nodes transform.
editor.tf.insert.videoPlaceholder
Inserts a video placeholder element.
Parameters
Options for the insert nodes transform.
Types
TPlaceholderElement
type TPlaceholderElement = TElement & {
  mediaType: string;
};