import { useCommands, useActive } from "@remirror/react";
export const LinkButton = () => {
const { focus } = useCommands();
const active = useActive();
return (
);
};
// import type { ChangeEvent, HTMLProps, KeyboardEvent } from 'react';
// import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
// import { createMarkPositioner, LinkExtension, ShortcutHandlerProps } from 'remirror/extensions';
// import {
// CommandButton,
// EditorComponent,
// FloatingToolbar,
// FloatingWrapper,
// Remirror,
// ThemeProvider,
// useActive,
// useAttrs,
// useChainedCommands,
// useCurrentSelection,
// useExtensionEvent,
// useRemirror,
// useUpdateReason,
// } from '@remirror/react';
// function useLinkShortcut() {
// const [linkShortcut, setLinkShortcut] = useState();
// const [isEditing, setIsEditing] = useState(false);
// useExtensionEvent(
// LinkExtension,
// 'onShortcut',
// useCallback(
// (props) => {
// if (!isEditing) {
// setIsEditing(true);
// }
// return setLinkShortcut(props);
// },
// [isEditing],
// ),
// );
// return { linkShortcut, isEditing, setIsEditing };
// }
// function useFloatingLinkState() {
// const chain = useChainedCommands();
// const { isEditing, linkShortcut, setIsEditing } = useLinkShortcut();
// const { to, empty } = useCurrentSelection();
// const url = (useAttrs().link()?.href as string) ?? '';
// const [href, setHref] = useState(url);
// // A positioner which only shows for links.
// const linkPositioner = useMemo(() => createMarkPositioner({ type: 'link' }), []);
// const onRemove = useCallback(() => {
// return chain.removeLink().focus().run();
// }, [chain]);
// const updateReason = useUpdateReason();
// useLayoutEffect(() => {
// if (!isEditing) {
// return;
// }
// if (updateReason.doc || updateReason.selection) {
// setIsEditing(false);
// }
// }, [isEditing, setIsEditing, updateReason.doc, updateReason.selection]);
// useEffect(() => {
// setHref(url);
// }, [url]);
// const submitHref = useCallback(() => {
// setIsEditing(false);
// const range = linkShortcut ?? undefined;
// if (href === '') {
// chain.removeLink();
// } else {
// chain.updateLink({ href, auto: false }, range);
// }
// chain.focus(range?.to ?? to).run();
// }, [setIsEditing, linkShortcut, chain, href, to]);
// const cancelHref = useCallback(() => {
// setIsEditing(false);
// }, [setIsEditing]);
// const clickEdit = useCallback(() => {
// if (empty) {
// chain.selectLink();
// }
// setIsEditing(true);
// }, [chain, empty, setIsEditing]);
// return useMemo(
// () => ({
// href,
// setHref,
// linkShortcut,
// linkPositioner,
// isEditing,
// clickEdit,
// onRemove,
// submitHref,
// cancelHref,
// }),
// [href, linkShortcut, linkPositioner, isEditing, clickEdit, onRemove, submitHref, cancelHref],
// );
// }
// const DelayAutoFocusInput = ({ autoFocus, ...rest }: HTMLProps) => {
// const inputRef = useRef(null);
// useEffect(() => {
// if (!autoFocus) {
// return;
// }
// const frame = window.requestAnimationFrame(() => {
// inputRef.current?.focus();
// });
// return () => {
// window.cancelAnimationFrame(frame);
// };
// }, [autoFocus]);
// return ;
// };
// const FloatingLinkToolbar = () => {
// const { isEditing, linkPositioner, clickEdit, onRemove, submitHref, href, setHref, cancelHref } =
// useFloatingLinkState();
// const active = useActive();
// const activeLink = active.link();
// const { empty } = useCurrentSelection();
// const handleClickEdit = useCallback(() => {
// clickEdit();
// }, [clickEdit]);
// const linkEditButtons = activeLink ? (
// <>
//
//
// >
// ) : (
//
// );
// return (
// <>
// {!isEditing && {linkEditButtons}}
// {!isEditing && empty && (
// {linkEditButtons}
// )}
//
// ) => setHref(event.target.value)}
// value={href}
// onKeyPress={(event: KeyboardEvent) => {
// const { code } = event;
// if (code === 'Enter') {
// submitHref();
// }
// if (code === 'Escape') {
// cancelHref();
// }
// }}
// />
//
// >
// );
// };
// const EditDialog = (): JSX.Element => {
// const { manager, state } = useRemirror({
// extensions: () => [new LinkExtension({ autoLink: true })],
// content: `Click this link to edit it`,
// stringHandler: 'html',
// });
// return (
//
//
//
//
//
//
// );
// };
// export default EditDialog;