Mailspring/internal_packages/message-view-on-github/lib/main.jsx
Juan Tejada 687597134d feat(selection): Add new display for selection count + update toolbar
Summary:
- New behavior is that the in split mode, you will perform actions on
  the selection via the MessageListToolbar (the toolbar positioned above
  the message list)
- Refactored and moved around a bunch of code to achieve this:
  - Mostly renaming stuff and moving stuff around and removing some
    duplication
  - Update naming of toolbar role to a single role, and update relevant code
  - Converted and refactored a bunch of code into ES6, specifically to reuse the code for the ThreadActionsToolbar at the 2 locations
  - Deprecated MultiselectActionBar in favor of MultiselectToolbar
  - Deprecated old roles
- Punted the animation for the stackable cards in the selection display for now.
- #370

Test Plan: - Manual and unit tests

Reviewers: evan, drew, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2756
2016-03-21 12:20:11 -07:00

61 lines
2.1 KiB
JavaScript

/*
This package displays a "Vew on Github Button" whenever the message you're
looking at contains a "view it on Github" link.
This is the entry point of an N1 package. All packages must have a file
called `main` in their `/lib` folder.
The `activate` method of the package gets called when it is activated.
This happens during N1's bootup. It can also happen when a user manually
enables your package.
Nearly all N1 packages have similar `activate` methods. The most common
action is to register a {React} component with the {ComponentRegistry}
See more details about how this works in the {ComponentRegistry}
documentation.
In this case the `ViewOnGithubButton` React Component will get rendered
whenever the `"MessageList:ThreadActionsToolbarButton"` region gets rendered.
Since the `ViewOnGithubButton` doesn't know who owns the
`"MessageList:ThreadActionsToolbarButton"` region, or even when or where it will be rendered, it
has to load its internal `state` from the `GithubStore`.
The `GithubStore` is responsible for figuring out what message you're
looking at, if it has a relevant Github link, and what that link is. Once
it figures that out, it makes that data available for the
`ViewOnGithubButton` to display.
*/
import {ComponentRegistry} from 'nylas-exports';
import ViewOnGithubButton from "./view-on-github-button";
/*
All packages must export a basic object that has at least the following 3
methods:
1. `activate` - Actions to take once the package gets turned on.
Pre-enabled packages get activated on N1 bootup. They can also be
activated manually by a user.
2. `deactivate` - Actions to take when a package gets turned off. This can
happen when a user manually disables a package.
3. `serialize` - A simple serializable object that gets saved to disk
before N1 quits. This gets passed back into `activate` next time N1 boots
up or your package is manually activated.
*/
export function activate() {
ComponentRegistry.register(ViewOnGithubButton, {
role: 'MessageList:ThreadActionsToolbarButton',
});
}
export function serialize() {
return {};
}
export function deactivate() {
ComponentRegistry.unregister(ViewOnGithubButton);
}