💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Go to file
Ben Gotow 4f34c8403f feat(trash): Trash for Gmail, and architectural changes for common tasks
Summary:
This diff centralizes logic for creating common tasks for things like moving to trash, archive, etc. TaskFactory exposes a set of convenience methods and hides the whole "and also remove the current label" business from the user.

This diff also formally separates the concept of "moving to trash" and "archiving" so that "remove" isn't used in an unclear way.

I also refactored where selection is managed. Previously you'd fire some action like archiveSelection and it'd clear the selection, but if you selected some items and used another method to archive a few, they were still selected. The selection is now bound to the ModelView as intended, so if items are removed from the modelView, they are removed from it's attached selection. This means that it shouldn't /technically/ be possible to have selected items which are not in view.

I haven't refactored the tests yet. They are likely broken...

Fix next/prev logic

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2157
2015-10-21 10:38:00 -07:00
apm Update APM to 1.1.1 2015-10-06 23:35:03 -04:00
build ci(mac): Rename the app Nylas N1 on the Mac 2015-10-20 18:36:39 -07:00
docs Fix Broken link to DraftStoreExtensions.md 2015-10-11 17:36:13 -07:00
dot-nylas fix(onboarding): Invitation code system, just in case 2015-10-04 16:49:41 -07:00
examples feat(trash): Trash for Gmail, and architectural changes for common tasks 2015-10-21 10:38:00 -07:00
internal_packages feat(trash): Trash for Gmail, and architectural changes for common tasks 2015-10-21 10:38:00 -07:00
keymaps rename(Nylas Mail): Replace Nylas Mail > N1 2015-09-29 09:44:30 -07:00
menus feat(dev-mode): Toggle dev mode, sticky through restarts 2015-10-03 19:04:19 -07:00
script ci(mac): Rename the app Nylas N1 on the Mac 2015-10-20 18:36:39 -07:00
spec feat(trash): Trash for Gmail, and architectural changes for common tasks 2015-10-21 10:38:00 -07:00
src feat(trash): Trash for Gmail, and architectural changes for common tasks 2015-10-21 10:38:00 -07:00
static fix(toolbars): Cross disolve toolbar items on a one-off basis 2015-10-21 10:34:14 -07:00
.gitignore ignore gh-pages files 2015-10-02 14:47:33 -07:00
.travis.yml fix(travis): disable node 4 for now 2015-10-07 22:52:20 -04:00
CONTRIBUTING.md fix(contributing): Clarify setup instructions for open source stack 2015-10-13 12:04:23 -07:00
LICENSE.md meta(license): Add GPLv3 License 2015-10-01 10:23:42 -07:00
N1.sh Properly exit out of N1.sh if script/bootstrap hasn't been run yet. 2015-10-04 12:30:37 -07:00
package.json bump(version): 0.3.17 2015-10-20 15:06:36 -07:00
README.md Update CONTRIBUTING.md and README.md to remove node requirement 2015-10-07 17:18:41 -07:00

N1 Logo

N1 Screenshot

N1 is an open-source mail client built on the modern web with Electron, React, and Flux. It is designed to be extensible, so it's easy to create new experiences and workflows around email. N1 is built on the Nylas Sync Engine which is also open source free software.

Build Status Slack Invite Button

Download N1

You can download compiled versions of N1 for Mac OS X and Linux from https://nylas.com/N1. You can also build and run N1 on Windows. A Windows distribution is coming soon!

Build A Plugin

Plugins lie at the heart of N1 and give it it's powerful features. Building your own plugins allows you to integrate the app with other tools, experiment with new workflows, and more. Follow the Getting Started guide to write your first plugin in 5 minutes.

If you would like to run the N1 source and contribute, check out our contributing guide

Running Locally

By default the N1 source points to our hosted version of the Nylas Sync Engine; however, the Sync Engine is open source and you can run it yourself.

Feature Requests / Package Ideas

Have an idea for a package, or a feature you'd love to see in N1? Check out our public Trello board to contribute your thoughts and vote on existing ideas.