Slack 用户比以往任何技能王人更有才能自动化闲居任务和经由【TITG-006】乳妻 Ryo2017-01-02ゲインコーポレーション&$gain c116分钟,从而每天省俭时辰。Workflow Builder 是 Slack 内置的任务自动化用具,自 2019 年推出以来一直在不休蜕变。除了多样新法子和触发器外,咱们还为整个可用的使命经由法子构建了一个新的侧边栏部分。当今用户无需翻开方法即可拜谒这些法子。
前
后
Slack 平台的增强,加上智能且紧要的磋议变更,使得 Workflow Builder 为在 Slack 中自动扩张任务的用户带来了全新且强劲的体验。
但是,强劲的用具可能会让东说念主规避而视。在 Workflow Builder 团队中,咱们合计动画是创造友好且夷易近东说念主的 UI 魔法的绝佳契机。简便的操作(举例出动或添加法子)应该具有 Slack 作风 — Slack 以其运动而好奇钦慕好奇钦慕好奇钦慕好奇钦慕的交互方法而著名。
使命经由生成器体验在使命经由内出动法子时还是具有拖放动画。但是,跟着新引入的侧边栏,拖放不一致的问题暴线路来。为什么用户无法将法子从侧边栏拖放到使命经由中?
使用动画库
难熬的是,从咱们的新法子侧边栏到使命经由中的拖放动画并不简便。
Workflow Builder 使用react-beautiful-dnd — 一个复古拖放交互和天然动画的库。天然这个库功能强劲,但它也有我方的局限性。
react-beautiful-dnd 库通过将组件包装在 React 凹凸文中来使命。它通过将可拖动组件列表封装在可拖放区域中来复古拖放动画。这很好奇钦慕好奇钦慕好奇钦慕好奇钦慕,对吧?
– 包装应用门径的拖放部分
– 包裹不错放弃物品的区域,并 包含
– 包裹不错拖动的名堂
这关于在使命流中拖放法子相配灵验 - 咱们有一个单一的法子列表,况兼这些法子不错在可拖放的凹凸文中出动。
欧美高清处女但咱们需要重新商量该政策,以复古法子侧边栏的拖放动画。咱们需要用拖放凹凸文包装通盘构建器页面,而不是包装构建器的一部分,并有两个单独的可拖动和可放弃列表。这么就不错将法子从一个列表出动到另一个列表。
动画的价值在于细节
基于 Workflow Builder 中现存的拖放复古,咱们大致在法子侧边栏和使命流法子列表之间进行拖放。但是,“它灵验”从来王人不是咱们对分娩体验的质地模范。咱们意志到动画也应该创造一种令东说念主惬心和饱读励东说念主心的体验。商量到这少许,在公开导布这些功能之前,咱们插足了原型磋议的下一个阶段——完善。
当咱们找到复杂问题的搞定决策时,咱们了解了动画的价值:
使用凹凸文提供者和反映者在咱们的代码库中简陋已矣拖放复古
使用旧版 Workflow Builder 组件欺诈旧组件构建新的使命流生成器
创建自界说动画将法子放入使命经由的动画
制作动态占位符将法子拖到可放弃区域上时添加占位符
搞定领导框间距问题确保动画与现存领导框顺畅和洽
尝试歪斜动画拖动法子时创建好奇钦慕好奇钦慕好奇钦慕好奇钦慕的歪斜动 画
使用凹凸文提供者和反映者
react-beautiful-dnd 库通过使用反映器来使命。这些是“顶级应用门径事件,您不错使用它们来扩张我方的情景更新、神志更新以及发出屏幕阅读器公告。” 该库条款咱们贯注拖放信息的情景,并为特定于情景的操作提供一个围聚的位置。
咱们的自界说凹凸文提供门径包装器是一个很好的搞定决策。咱们存储了议论拖动法子的信息、指标信息以及法子被拖动的位置。操作(举例,当您放下或添加法子时会发生什么)也在这里贯注。此信息由提供的 react-beautiful-dnd 反映器动态更新,并在放心的 Workflow Builder 拖放组件包装器中贯注。
{children}
使用旧版 Workflow Builder 组件
新的 Workflow Builder 前端由旧版 Workflow Builder 组件复古。这是咱们初度启动构建新体验时作念出的工程决策。通过重叠使用现存组件,咱们大致快速开导,并取得开箱即用的考证、法子界面和触发器界面等功能。但是,在为新使命经由添加功能的同期复古旧版使命经由是一项挑战。
咱们通过动态出动拖放凹凸文搞定了这个问题。通过检讨使命流类型以及是否启用该功能,咱们不错允许新旧拖放复古共存。制定周全的筹划来使用咱们强劲的使命流生成器组件并进行透澈的测试是开导新功能的关节。
创建自界说动画
侧边栏中的使命流生成器法子与列表中的法子大小不同。这导致默许拖放动画相配不好意思不雅。
咱们创建了赞助函数来修改原始的 react-beautiful-dnd 神志。咱们使用指标宽度将拖动法子的位置平移到使命流法子列表的中间。
const translate = `translate(${moveTo.x + destinationWidth - stepItemWidthHalf}px, ${moveTo.y}px)`
指标宽度由库反映器揣摸 — 卓越是使用onBeforeDragStart。咱们在拖动发生之前查询 DOM,并找到可拖放的指标容器以查找宽度。咱们的自界说拖放凹凸文包装器竣工地保存了此信息,并用于更新神志。
制作动态占位符
经过几次迭代后,咱们发现很难意会不错将法子拖放到那处。这是一个雄伟的挑战,因为 react-beautiful-dnd 不复古添加占位符。咱们需要发扬创造力来已矣咱们念念要的拖动成果。从中罗致一些灵感,咱们创建了一个自界说段,笔据用户拖动法子的位置动态呈现占位符。
在更新拖拽操作时,咱们定位了指标 DOM 元素、被拖拽的 DOM 元素以及占位符的宽度和高度。为了找到 x 坐标和 y 坐标,咱们使用了指标索引并揣摸了 DOM 中的位置。此占位符大小被传递到使命流法子列表中的拖放凹凸文提供门径中。
{{ (isDraggingOver 【TITG-006】乳妻 Ryo2017-01-02ゲインコーポレーション&$gain c116分钟