| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import { Popover } from "antd";
- import { useEffect, useState } from "react";
- import SentCell from "./SentCell";
- import type { ISentence } from "../SentEdit"
- import { useAppSelector } from "../../../hooks";
- import { prInfo, refresh } from "../../../reducers/pr-load";
- import store from "../../../store";
- interface IWidget {
- book: number;
- para: number;
- start: number;
- end: number;
- channelId: string;
- }
- const SuggestionPopoverWidget = ({
- book,
- para,
- start,
- end,
- channelId,
- }: IWidget) => {
- const [open, setOpen] = useState(false);
- const [sentData, setSentData] = useState<ISentence>();
- const pr = useAppSelector(prInfo);
- useEffect(() => {
- if (pr) {
- if (
- book === pr.book &&
- para === pr.paragraph &&
- start === pr.word_start &&
- end === pr.word_end &&
- channelId === pr.channel.id
- ) {
- setSentData({
- id: pr.id,
- content: pr.content,
- html: pr.html,
- book: pr.book,
- para: pr.paragraph,
- wordStart: pr.word_start,
- wordEnd: pr.word_end,
- editor: pr.editor,
- channel: { name: pr.channel.name, id: pr.channel.id },
- updateAt: pr.updated_at,
- });
- setOpen(true);
- }
- }
- }, [book, channelId, end, para, pr, start]);
- const handleOpenChange = (newOpen: boolean) => {
- setOpen(newOpen);
- if (newOpen === false) {
- store.dispatch(refresh(null));
- }
- };
- return (
- <Popover
- placement="bottomRight"
- arrowPointAtCenter
- content={
- <div>
- <SentCell value={sentData} key={1} isPr={true} showDiff={false} />
- </div>
- }
- title={`${sentData?.editor.nickName}提交的修改建议`}
- trigger="click"
- open={open}
- onOpenChange={handleOpenChange}
- >
- <span></span>
- </Popover>
- );
- };
- export default SuggestionPopoverWidget;
|