• ¶

    Filters

    A way to apply filters, AKA mail rules, to incoming mail.

    Filters = require './filters'
  • ¶

    Requiring ‘nylas-exports’ is the way to access core N1 components.

    {WorkspaceStore, ComponentRegistry} = require 'nylas-exports'
  • ¶

    Your main.coffee (or main.cjsx) file needs to export an object for your package to run.

    module.exports =
  • ¶

    When your package is loading, the activate method runs. activate is the package’s time to insert React components into the applicatio and also listen to events.

      activate: ->
  • ¶

    WorkspaceStore.defineSheet creates an N1 “sheet,” which is a large area for you to inject React components. Sheets span the whole window.

        WorkspaceStore.defineSheet 'Filters', {root: true, name: 'Filters'},
          list: ['RootSidebar', 'Filters']
  • ¶

    Above, we named the sheet “Filters,” and we’re registering a React component to live inside the “Filters” sheet.

        ComponentRegistry.register Filters,
          location: WorkspaceStore.Location.Filters
  • ¶

    WorkspaceStore.SidebarItem is a React component which is meant to be inserted into the navigation bar on the left of the main worksheet.

        @sidebarItem = new WorkspaceStore.SidebarItem
          sheet: WorkspaceStore.Sheet.Filters
          id: 'Filters'
          name: 'Filters'
  • ¶

    And this is how we actually insert the SidebarItem into the sheet!

        WorkspaceStore.addSidebarItem(@sidebarItem)
  • ¶

    deactivate is called when packages are closing. It’s a good time to unregister React components.

      deactivate: ->
        ComponentRegistry.unregister Filters