Allow link-previews to trigger without needing a space

Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
This commit is contained in:
Sidney Keese 2020-11-18 09:25:21 -08:00 committed by GitHub
parent 21c322f7fa
commit 3bc68b20ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -377,14 +377,23 @@ export const CompositionInput: React.ComponentType<Props> = props => {
return;
}
if (propsRef.current.onEditorStateChange) {
const selection = quill.getSelection();
const { onEditorStateChange } = propsRef.current;
propsRef.current.onEditorStateChange(
text,
mentions,
selection ? selection.index : undefined
);
if (onEditorStateChange) {
// `getSelection` inside the `onChange` event handler will be the
// selection value _before_ the change occurs. `setTimeout` 0 here will
// let `getSelection` return the selection after the change takes place.
// this is necessary for `maybeGrabLinkPreview` as it needs the correct
// `caretLocation` from the post-change selection index value.
setTimeout(() => {
const selection = quill.getSelection();
onEditorStateChange(
text,
mentions,
selection ? selection.index : undefined
);
}, 0);
}
}