|
|
|
@ -8,6 +8,7 @@ import { DEFAULT_MEMO_LIMIT } from "@/helpers/consts";
|
|
|
|
|
import { checkShouldShowMemoWithFilters } from "@/helpers/filter";
|
|
|
|
|
import Memo from "./Memo";
|
|
|
|
|
import "@/less/memo-list.less";
|
|
|
|
|
import copy from "copy-to-clipboard";
|
|
|
|
|
|
|
|
|
|
const MemoList = () => {
|
|
|
|
|
const { t } = useTranslation();
|
|
|
|
@ -148,6 +149,21 @@ const MemoList = () => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
window.addEventListener("copy", handleCopy);
|
|
|
|
|
return () => {
|
|
|
|
|
window.removeEventListener("copy", handleCopy);
|
|
|
|
|
};
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
const handleCopy = (event: ClipboardEvent) => {
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
const rawStr = document.getSelection()?.toString();
|
|
|
|
|
if (rawStr !== undefined) {
|
|
|
|
|
copy(rawStr.split("\n\n").join("\n"));
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className="memo-list-container">
|
|
|
|
|
{sortedMemos.map((memo) => (
|
|
|
|
|