Mailspring/docs/DraftChangeSet.html
2015-10-01 12:34:16 -07:00

191 lines
9 KiB
HTML

<html>
<head>
<meta charset="utf-8">
<title>N1 — DraftChangeSet</title>
<meta property="og:title" content="An extensible mail client built on the modern web | N1">
<meta property="og:type" content="website">
<meta property="og:image" content="https://nylas.github.io/n1/images/meta_share.png">
<link rel="shortcut icon" href="/images/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<link rel="stylesheet" type="text/css" href="/css/main.css"/>
<link rel="stylesheet" type="text/css" href="/css/tomorrow.css">
</head>
<body>
<div id="header">
<div class="container">
<img src="/images/edgehill.png" class="logo" />
<div class="title">N1<div class="small">Developer Preview</div></div>
</div>
</div>
<div class="container">
<div class="page-title">
DraftChangeSet
</div>
<div id="sidebar">
<div class="heading">Getting Started</div>
<ul>
<li><a href="/guides/FirstSteps.html" >First Steps</a></li>
</ul>
<div class="heading">Guides</div>
<ul>
<li><a href="/guides/InterfaceConcepts.html" >Interface Concepts</a></li>
<li><a href="/guides/PackageOverview.html" >Building a Package</a></li>
<li><a href="/guides/React.html" >Interface Components</a></li>
<li><a href="/guides/Architecture.html" >Application Architecture</a></li>
<li><a href="/guides/Debugging.html" >Debugging N1</a></li>
<li><a href="/guides/Database.html" >Accessing the Database</a></li>
<li><a href="/guides/DraftStoreExtensions.html" >Extending the Composer</a></li>
<li><a href="/guides/WritingSpecs.html" >Writing Specs</a></li>
</ul>
<div class="heading">Sample Code</div>
<ul>
<li><a href="https://github.com/nylas/edgehill-plugins/tree/master/translate" target="_blank">Composer Translation</a></li>
<li><a href="https://github.com/nylas/edgehill-plugins/tree/master/sidebar-github-profile" target="_blank">Github Sidebar</a></li>
</ul>
<div class="heading">API Reference</div>
<ul>
<div class="heading">General</div>
<ul>
<li><a href="/docs/Actions.html" >Actions</a></li>
<li><a href="/docs/Atom.html" >Atom</a></li>
<li><a href="/docs/BufferedNodeProcess.html" >BufferedNodeProcess</a></li>
<li><a href="/docs/BufferedProcess.html" >BufferedProcess</a></li>
<li><a href="/docs/ChangeFolderTask.html" >ChangeFolderTask</a></li>
<li><a href="/docs/ChangeLabelsTask.html" >ChangeLabelsTask</a></li>
<li><a href="/docs/Config.html" >Config</a></li>
<li><a href="/docs/DraggableImg.html" >DraggableImg</a></li>
<li><a href="/docs/FocusTrackingRegion.html" >FocusTrackingRegion</a></li>
<li><a href="/docs/Switch.html" >Switch</a></li>
<li><a href="/docs/Task.html" >Task</a></li>
<li><a href="/docs/TaskQueueStatusStore.html" >TaskQueueStatusStore</a></li>
</ul>
<div class="heading">Component Kit</div>
<ul>
<li><a href="/docs/EventedIFrame.html" >EventedIFrame</a></li>
<li><a href="/docs/Flexbox.html" >Flexbox</a></li>
<li><a href="/docs/InjectedComponent.html" >InjectedComponent</a></li>
<li><a href="/docs/InjectedComponentSet.html" >InjectedComponentSet</a></li>
<li><a href="/docs/Menu.html" >Menu</a></li>
<li><a href="/docs/MenuItem.html" >MenuItem</a></li>
<li><a href="/docs/MenuNameEmailItem.html" >MenuNameEmailItem</a></li>
<li><a href="/docs/MultiselectActionBar.html" >MultiselectActionBar</a></li>
<li><a href="/docs/MultiselectList.html" >MultiselectList</a></li>
<li><a href="/docs/Popover.html" >Popover</a></li>
<li><a href="/docs/ResizableRegion.html" >ResizableRegion</a></li>
<li><a href="/docs/RetinaImg.html" >RetinaImg</a></li>
<li><a href="/docs/Spinner.html" >Spinner</a></li>
<li><a href="/docs/TimeoutTransitionGroupChild.html" >TimeoutTransitionGroupChild</a></li>
<li><a href="/docs/UnsafeComponent.html" >UnsafeComponent</a></li>
</ul>
<div class="heading">Models</div>
<ul>
<li><a href="/docs/Account.html" >Account</a></li>
<li><a href="/docs/Calendar.html" >Calendar</a></li>
<li><a href="/docs/Contact.html" >Contact</a></li>
<li><a href="/docs/File.html" >File</a></li>
<li><a href="/docs/Folder.html" >Folder</a></li>
<li><a href="/docs/Label.html" >Label</a></li>
<li><a href="/docs/Message.html" >Message</a></li>
<li><a href="/docs/Model.html" >Model</a></li>
<li><a href="/docs/Thread.html" >Thread</a></li>
</ul>
<div class="heading">Stores</div>
<ul>
<li><a href="/docs/AccountStore.html" >AccountStore</a></li>
<li><a href="/docs/ComponentRegistry.html" >ComponentRegistry</a></li>
<li><a href="/docs/ContactStore.html" >ContactStore</a></li>
<li><a href="/docs/EventStore.html" >EventStore</a></li>
<li><a href="/docs/FocusedContentStore.html" >FocusedContentStore</a></li>
<li><a href="/docs/MessageStoreExtension.html" >MessageStoreExtension</a></li>
<li><a href="/docs/TaskQueue.html" >TaskQueue</a></li>
<li><a href="/docs/WorkspaceStore.html" >WorkspaceStore</a></li>
</ul>
<div class="heading">Database</div>
<ul>
<li><a href="/docs/Attribute.html" >Attribute</a></li>
<li><a href="/docs/AttributeBoolean.html" >AttributeBoolean</a></li>
<li><a href="/docs/AttributeCollection.html" >AttributeCollection</a></li>
<li><a href="/docs/AttributeDateTime.html" >AttributeDateTime</a></li>
<li><a href="/docs/AttributeJoinedData.html" >AttributeJoinedData</a></li>
<li><a href="/docs/AttributeNumber.html" >AttributeNumber</a></li>
<li><a href="/docs/AttributeObject.html" >AttributeObject</a></li>
<li><a href="/docs/AttributeServerId.html" >AttributeServerId</a></li>
<li><a href="/docs/AttributeString.html" >AttributeString</a></li>
<li><a href="/docs/DatabaseStore.html" >DatabaseStore</a></li>
<li><a href="/docs/DatabaseView.html" >DatabaseView</a></li>
<li><a href="/docs/Matcher.html" >Matcher</a></li>
<li><a href="/docs/ModelQuery.html" >ModelQuery</a></li>
<li><a href="/docs/SortOrder.html" >SortOrder</a></li>
</ul>
<div class="heading">Drafts</div>
<ul>
<li><a href="/docs/DraftChangeSet.html" >DraftChangeSet</a></li>
<li><a href="/docs/DraftStore.html" >DraftStore</a></li>
<li><a href="/docs/DraftStoreExtension.html" >DraftStoreExtension</a></li>
<li><a href="/docs/DraftStoreProxy.html" >DraftStoreProxy</a></li>
</ul>
<div class="heading">Atom</div>
<ul>
<li><a href="/docs/Clipboard.html" >Clipboard</a></li>
<li><a href="/docs/Color.html" >Color</a></li>
<li><a href="/docs/CommandRegistry.html" >CommandRegistry</a></li>
<li><a href="/docs/MenuManager.html" >MenuManager</a></li>
<li><a href="/docs/PackageManager.html" >PackageManager</a></li>
<li><a href="/docs/ScopeDescriptor.html" >ScopeDescriptor</a></li>
<li><a href="/docs/StyleManager.html" >StyleManager</a></li>
<li><a href="/docs/ThemeManager.html" >ThemeManager</a></li>
</ul>
</ul>
</div>
<div id="main">
<h2>Summary</h2>
<div class="markdown-from-sourecode">
<p><p>As the user interacts with the draft, changes are accumulated in the
DraftChangeSet associated with the store proxy. The DraftChangeSet does two things:</p>
<ol>
<li>It debounces changes and calls Actions.saveDraft() at a reasonable interval.</li>
<li>It exposes <code>applyToModel</code>, which allows you to optimistically apply changes
to a draft object. When the proxy vends the draft, it passes it through this
function to apply uncommitted changes. This means the Draft provided by the
DraftStoreProxy will always relfect recent changes, even though they&#39;re
written to the database intermittently.</li>
</ol>
</p>
</div>
<ul>
</ul>
</div>
</div>
<div id="footer">
<div class="container">
<img src="images/edgehill.png" class="logo" />
<div class="small">N1 Developer Preview<br><em>© 2014-2015 Nylas, Inc.</em></div>
</div>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-60022049-2', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>