Files
outline/app/hooks/useTextSelection.ts
Tom Moor 3880a956a3 Add document insights panel (#4418)
* Add document context to allow accessing editor in header, modals, and elsewhere

* lint

* framework

* Hacking together fast

* Insights

* Spacing tweak, docs
2022-11-13 10:19:09 -08:00

23 lines
574 B
TypeScript

import * as React from "react";
import useEventListener from "./useEventListener";
/**
* A hook that returns the currently selected text.
*
* @returns The selected text
*/
export default function useTextSelection() {
const [selection, setSelection] = React.useState<string>("");
const handleMouse = React.useCallback(() => {
const selection = window.getSelection();
const text = selection?.toString();
setSelection(text ?? "");
}, []);
useEventListener("mousemove", handleMouse);
useEventListener("mouseup", handleMouse);
return selection;
}