// @flow import { observable } from "mobx"; import { observer } from "mobx-react"; import * as React from "react"; import Textarea from "react-autosize-textarea"; import styled from "styled-components"; import breakpoint from "styled-components-breakpoint"; import { MAX_TITLE_LENGTH } from "shared/constants"; import { light } from "shared/styles/theme"; import parseTitle from "shared/utils/parseTitle"; import Document from "models/Document"; import ClickablePadding from "components/ClickablePadding"; import DocumentMetaWithViews from "components/DocumentMetaWithViews"; import Editor, { type Props as EditorProps } from "components/Editor"; import Flex from "components/Flex"; import HoverPreview from "components/HoverPreview"; import Star, { AnimatedStar } from "components/Star"; import { isModKey } from "utils/keyboard"; import { documentHistoryUrl } from "utils/routeHelpers"; type Props = {| ...EditorProps, onChangeTitle: (event: SyntheticInputEvent<>) => void, title: string, document: Document, isDraft: boolean, shareId: ?string, onSave: ({ done?: boolean, autosave?: boolean, publish?: boolean }) => any, innerRef: { current: any }, children: React.Node, |}; @observer class DocumentEditor extends React.Component { @observable activeLinkEvent: ?MouseEvent; ref = React.createRef