Socket
Book a DemoInstallSign in
Socket

@cmpsr/markdown-editor

Package Overview
Dependencies
Maintainers
3
Versions
180
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cmpsr/markdown-editor

[![GitHub Actions status](https://github.com/cmpsr/composer/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/cmpsr/composer/actions/workflows/test.yml) [![Chromatic Actions status](https://github.com/cmpsr/composer/actions/workflows

latest
Source
npmnpm
Version
2.0.33
Version published
Weekly downloads
13
-93.05%
Maintainers
3
Weekly downloads
 
Created
Source

Composer logo Composer Markdown Editor

GitHub Actions status Chromatic Actions status Storybook node version

The composer markdown editor is an opinionated React component implemented on top of lexical following and using a bunch of the playground code of the library, adapted to follow our code conventions and simplified to match our specific use case.

Using the library

npm install @cmpsr/components @cmpsr/markdown-editor

The @cmpsr/markdown-editor library requires react, react-dom and @cmpsr/components libraries to be installed in your project.

In order to get the component properly styled it has to be rendered inside a ComposerProvider component. Example of usage:

import React, { FC } from "react";
import { ComposerProvider } from "@cmpsr/components";
import { MarkdownEditor } from "@cmpsr/markdown-editor";

type Props = {
  value?: string;
  onChange?: (v: string) => void;
  placeholder?: string;
};

export const MyEditor: FC<Props> = ({ value, onChange, placeholder }) => (
  <ComposerProvider>
    <MarkdownEditor
      initialValue={value}
      onChange={onChange}
      placeholder={placeholder}
      height="350px"
      width="100%"
    />
  </ComposerProvider>
);

Initial value

This component is not a controlled component, the initialValue will only be set once to the first non falsy value provided, once a value is set subsequent values sent to the component will be ignored. For example in the following code the value set inside the setTimeout will be discarded by the MarkdownEditor and # First value will be used.

export const WithInitialValue = () => {
  const [value, setValue] = useState("# First value");

  useEffect(() => {
    setTimeout(() => {
      setValue("# Second value");
    }, 1000);
  }, []);

  return <MarkdownEditor initialValue={value} />;
};

Releasing your changes

Before creating the pull request you have to generate a changeset for your components, follow the instructions in here.

FAQs

Package last updated on 28 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts