Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Taming Content Editable with Ember.js - Ember NYC
Search
Gavin Joyce
May 29, 2015
Technology
120
1
Share
Taming Content Editable with Ember.js - Ember NYC
Gavin Joyce
May 29, 2015
More Decks by Gavin Joyce
See All by Gavin Joyce
Scaling Ember at Intercom - EmberCamp London
gavinjoyce
1
230
Taming large Rails apps with Mutations
gavinjoyce
2
380
Taming Content Editable with Ember.js
gavinjoyce
1
370
Other Decks in Technology
See All in Technology
猫でもわかるKiro CLI(CDKコーディング編)
kentapapa
1
130
EarthCopilotに学ぶマルチエージェントオーケストレーション
nakasho
0
270
ぼくがかんがえたさいきょうのあうとぷっと
yama3133
0
180
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
270
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
140
Code Interpreter で、AIに安全に コードを書かせる。
yokomachi
0
7k
小説執筆のハーネスエンジニアリング
yoshitetsu
0
330
Do Ruby::Box dream of Modular Monolith?
joker1007
1
310
AI時代 に増える データ活用先
takahal
0
170
最新の脅威動向から考える、コンテナサプライチェーンのリスクと対策
kyohmizu
1
670
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」ご紹介資料
laysakura
0
3.9k
ネットワーク運用を楽にするAWS DevOps Agent活用法!! / 20260421 Masaki Okuda
shift_evolve
PRO
2
190
Featured
See All Featured
The browser strikes back
jonoalderson
0
970
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
Embracing the Ebb and Flow
colly
88
5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
120
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
290
New Earth Scene 8
popppiees
3
2.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Amusing Abliteration
ianozsvald
1
150
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Transcript
Taming Content Editable with Ember.js @gavinjoyce
[email protected]
Intercom Composer
Intercom Composer Direct messages
Intercom Composer Email Messages
Intercom Composer In-App Messages
Intercom Composer Shared Inbox
blog.intercom.io/ember-delivers-rapid-improvements-at-intercom
Creating content in Intercom (demo) simple composer, auto message wizard,
inbox, mentions, emoji, saved replies
None
embercom-composer cli addon (demo) selection, undo stack, outlines, editors, rules
yeah, but why? https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable
https://speakerdeck.com/patocallaghan/contenteditable and much more….
Block Object Model (build a block editor, not an HTML
editor)
Block Selection do Stack Block List The DOM Composer component
The BOM
The BOM The DOM Editor View Event Handling DOM Selection
UI Coordinates Rendering Composer component
The BOM Composer State BOM Selection Undo Stack Blocks The
DOM Editor View Event Handling DOM Selection UI Coordinates Rendering Composer component
Composer State The BOM
Composer State Undo Stack The BOM
Composer State Block Selection Undo Stack The BOM
Composer State Block Selection Undo Stack Block List The BOM
Composer State Block Selection Undo Stack The BOM Paragraph Item
Ordered List Block List
Paragraph Composer State Block Selection Undo Stack Block List Item
Ordered List Command • Backspace • Delete • Return • Sync • Insert Attribute • Insert Character • Insert Block • Paste • ...
None
None
Blocks Paragraph text: “hello there” Entities Italic (0 -> 5)
Bold (6 -> 14) Selection: 0:0:1 → 0:0:1
Blocks Paragraph text: “hello there” Entities Italic (0 -> 5)
Bold (6 -> 14) Selection: 0:0:2 → 0:0:9
Blocks Paragraph text: “hello there” Entities Italic (0 -> 5)
Bold (9 -> 14) Selection: 0:0:2 → 0:0:9
Blocks Paragraph text: “hello there” Entities Italic (0 -> 5)
Bold (2 -> 14) Selection: 0:0:2 → 0:0:9
None
None
> 1.5k Tests
Syncing
Syncing UI Event
Syncing UI Event Command
Syncing UI Event Command Sync or
Syncing UI Event Command Sync Mutate BOM or
Syncing UI Event Command Sync Mutate BOM Rerender? or
Undo Stack github.com/intercom/ember-undo-stack
intercom.io/careers
We believe Intercom is a place to come and deliver
career defining achievements intercom.io/careers
We believe Intercom is a place to come and deliver
career defining achievements intercom.io/careers Dublin & San Francisco
Thanks for listening! @gavinjoyce
[email protected]
Questions? @gavinjoyce