X6 icon indicating copy to clipboard operation
X6 copied to clipboard

使用@antv/x6-plugin-clipboard插件且useLocalStorage开启时,希望支持设置LocalStorage的key

Open favorite58 opened this issue 1 year ago • 1 comments

功能描述

在一个项目中存在多个不同类型的画布,且都使用了复制粘贴功能(useLocalStorage开启)时,可能会存在因为插件中默认的LocalStorage的key相同导致拿到非本画布的剪切板数据,从而导致报错;

期望解决方案

在new Clipboard时提供配置项设置useLocalStorage存储的key

favorite58 avatar Feb 28 '24 10:02 favorite58

附议,我也遇到类似问题,A和B 两个画布的节点 shape 不同,开启 useLocalStorage 后从 A 画布复制节点到 B 画布时,会报错。这里有几个提议供参考:

  1. useLocalStorage 目前存储时,storage key 是固定的,value 是被复制节点的数据,期望支持设置 storage 的 key 类似 [key: string]: nodes,或者 value 中再划分一层,支持按用户自定义的 key 存储,类似 'x6.clipboard.cells': { [key: string]: nodes}
  2. 暴露 storage 的序列化和反序列化的钩子函数,以便应用层在复制和粘贴时,有机会对数据进行校验和加工处理,例如校验数据是否处于有效期、是否格式正确等等,不通过时则可以忽略加载数据或删除数据
  3. 暴露 Storage 的读写 API,并支持异步读写,以便应用侧自定义后端存储,例如使用 SessionStorage、IndexDB、或者 web server 实现云端复制粘贴

whinc avatar Mar 13 '24 00:03 whinc