/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */

import {registerCheckList} from '@lexical/list';
import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext';
import {useEffect} from 'react';

/**
 * Enables check list support, wiring up the keyboard and pointer interactions
 * that toggle the checked state of check list items. Pass
 * `disableTakeFocusOnClick` to stop the editor from taking focus when a
 * checkbox is clicked.
 *
 * This is a legacy plugin. When building an editor with the extension API,
 * configure {@link CheckListExtension} instead.
 *
 * @returns `null`, this plugin renders no DOM of its own.
 */
export function CheckListPlugin({
  disableTakeFocusOnClick = false,
}: {
  disableTakeFocusOnClick?: boolean;
}): null {
  const [editor] = useLexicalComposerContext();

  useEffect(() => {
    return registerCheckList(editor, {disableTakeFocusOnClick});
  }, [editor, disableTakeFocusOnClick]);
  return null;
}
