red-axe / am-editor

A rich text editor that supports collaborative editing and allows for the free use of front-end common libraries such as React and Vue to extend and define plugins.
https://editor.aomao.com
MIT License
939 stars 196 forks source link

是否可以提供一个添加评论的例子呀? #341

Closed huangqingkun closed 1 year ago

huangqingkun commented 1 year ago

image

big-camel commented 1 year ago

https://github.com/red-axe/am-editor/blob/master/examples/react/components/comment/index.tsx 现在就只有一个react 的

huangqingkun commented 1 year ago

有计划搞vue的例子吗?

发件人: YiYang @.*** 发送时间: 2023年10月7日 9:53 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

https://github.com/red-axe/am-editor/blob/master/examples/react/components/comment/index.tsx 现在就只有一个react 的

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1751555953 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQ7I2S2X34ICEB63PY3X6CYWRAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRGU2TKOJVGM . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQZYD5DF3MQUEPOYAK3X6CYWRA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIM2PXC.gif Message ID: @.***>

huangqingkun commented 1 year ago

另外有个问题想请教下,编辑初始化文档内容时机应该是什么时候? 我现在是在以下事件处理的,大部分情况没有问题,偶尔还是出现先初始化了文档才同步其他协作者的文档

发件人: huangqingkun @.*** 发送时间: 2023年10月7日 12:48 收件人: 'red-axe/am-editor'; 'red-axe/am-editor' 抄送: 'Author' 主题: 答复: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

有计划搞vue的例子吗?

发件人: YiYang @.*** 发送时间: 2023年10月7日 9:53 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

https://github.com/red-axe/am-editor/blob/master/examples/react/components/comment/index.tsx 现在就只有一个react 的

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1751555953 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQ7I2S2X34ICEB63PY3X6CYWRAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRGU2TKOJVGM . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQZYD5DF3MQUEPOYAK3X6CYWRA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIM2PXC.gif Message ID: @.***>

big-camel commented 1 year ago

没计划,差别不大,逻辑都是通用的

huangqingkun commented 1 year ago

这个问题可以帮看下吗?

发件人: huangqingkun @.*** 发送时间: 2023年10月7日 12:52 收件人: 'red-axe/am-editor'; 'red-axe/am-editor' 抄送: 'Author' 主题: 答复: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

另外有个问题想请教下,编辑初始化文档内容时机应该是什么时候? 我现在是在以下事件处理的,大部分情况没有问题,偶尔还是出现先初始化了文档才同步其他协作者的文档

发件人: huangqingkun @.*** 发送时间: 2023年10月7日 12:48 收件人: 'red-axe/am-editor'; 'red-axe/am-editor' 抄送: 'Author' 主题: 答复: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

有计划搞vue的例子吗?

发件人: YiYang @.*** 发送时间: 2023年10月7日 9:53 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

https://github.com/red-axe/am-editor/blob/master/examples/react/components/comment/index.tsx 现在就只有一个react 的

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1751555953 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQ7I2S2X34ICEB63PY3X6CYWRAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRGU2TKOJVGM . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQZYD5DF3MQUEPOYAK3X6CYWRA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIM2PXC.gif Message ID: @.***>

big-camel commented 1 year ago

本质上yjs会在浏览器本地和服务器端使用最新的数据覆盖,可以在他们连接后重新设置值,然后编辑器变化后会同步给其它协作者

huangqingkun commented 1 year ago

Ok,已经可以了

发件人: YiYang @.*** 发送时间: 2023年10月7日 21:17 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

本质上yjs会在浏览器本地和服务器端使用最新的数据覆盖,可以在他们连接后重新设置值,然后编辑器变化后会同步给其它协作者

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1751710829 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQ3XPKZOQAOYZFPJYILX6FI5NAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRG4YTAOBSHE . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQ4FXXIKLGYM4UMZ7U3X6FI5NA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIND6G2.gif Message ID: @.***>

huangqingkun commented 1 year ago

不对,刚才重新测试了下还是不行,你这边编辑的时候什么时候调setHtml()设置值到编辑器的?

发件人: huangqingkun @.*** 发送时间: 2023年10月8日 12:44 收件人: 'red-axe/am-editor'; 'red-axe/am-editor' 抄送: 'Author' 主题: 答复: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

Ok,已经可以了

发件人: YiYang @.*** 发送时间: 2023年10月7日 21:17 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

本质上yjs会在浏览器本地和服务器端使用最新的数据覆盖,可以在他们连接后重新设置值,然后编辑器变化后会同步给其它协作者

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1751710829 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQ3XPKZOQAOYZFPJYILX6FI5NAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRG4YTAOBSHE . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQ4FXXIKLGYM4UMZ7U3X6FI5NA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIND6G2.gif Message ID: @.***>

big-camel commented 1 year ago

我不会调用 setHtml ,因为 yjs 连上会同步过来的

huangqingkun commented 1 year ago

如果你是首个进入编辑文章页面,不调用setHtml,yjs连上后也同步不到数据呀。

如果说本来就有另外一个人已经进入编辑页面了并且输入了内容,那么进入编辑页面连上yjs后是能同步到数据的,

发件人: YiYang @.*** 发送时间: 2023年10月8日 19:44 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

我不会调用 setHtml ,因为 yjs 连上会同步过来的

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1752006699 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQ2PDNTQFPZVSHM6YOTX6KGYDAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJSGAYDMNRZHE . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQ3IRQALD7PC7FKPTLDX6KGYDA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTINWACW.gif Message ID: @.***>

big-camel commented 1 year ago

所以等链接好后,再调用 setHtml

huangqingkun commented 1 year ago

也不行哦,我这边之前就以为可以,实际连接上数据可能还没有同步到,如下图逻辑可能进入一次编辑页面就会多复制一份内容了,你这边是怎么操作的可以截图我看看你设置值的时机吗?

发件人: YiYang @.*** 发送时间: 2023年10月9日 17:06 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

所以等链接好后,再调用 setHtml

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1752606274 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQYCCD27R6BJI53MIBTX6O46FAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJSGYYDMMRXGQ . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQYEAPZS3DPWPQNWDJLX6O46FA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIO2TEE.gif Message ID: @.***>

big-camel commented 1 year ago

我这里也没有例子,可以考虑在yjs服务端初始化文档的时候就设置值? from 阿里邮箱 iPhone------------------------------------------------------------------ @.> 日 期:2023年10月09日 19:45:37 @.> @.>; @.> 主 题:Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

也不行哦,我这边之前就以为可以,实际连接上数据可能还没有同步到,如下图逻辑可能进入一次编辑页面就会多复制一份内容了,你这边是怎么操作的可以截图我看看你设置值的时机吗?

发件人: YiYang @.*** 发送时间: 2023年10月9日 17:06 收件人: red-axe/am-editor 抄送: huangqingkun; Author 主题: Re: [red-axe/am-editor] 是否可以提供一个添加评论的例子呀? (Issue #341)

所以等链接好后,再调用 setHtml

— Reply to this email directly, view it on GitHub https://github.com/red-axe/am-editor/issues/341#issuecomment-1752606274 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AJIZCQYCCD27R6BJI53MIBTX6O46FAVCNFSM6AAAAAA5VNZJLOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJSGYYDMMRXGQ . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AJIZCQYEAPZS3DPWPQNWDJLX6O46FA5CNFSM6AAAAAA5VNZJLOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTIO2TEE.gif Message ID: @.***>

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

big-camel commented 1 year ago
const handleCustomMessage = (message: Record<string, any>) => {
      const { action } = message;
      if (action === 'initValue') {
        if (value) {
          engine.current?.setValue(value);
          engine.current?.history.clear();
        }
      } 
      if (yjs && yjs.onCustomMessage) {
        yjs.onCustomMessage(message);
      }
    };
    if (yjs && provider) {
      provider.connect();
      provider.on('customMessage', handleCustomMessage);
      const sharedType = doc.get('content', Y.XmlElement) as Y.XmlElement;
      withYjs(engine.current, sharedType, provider.awareness, {
        data: cursorUser ?? {
          name: 'Guest',
          color: '#000',
        },
      });
      if (onLoad) onLoad(engine.current, provider, isWebView);
    }

试试这个 initValue 事件吧

big-camel commented 1 year ago

340