Skip to content

Latest commit

 

History

History
60 lines (53 loc) · 2.15 KB

TODO.md

File metadata and controls

60 lines (53 loc) · 2.15 KB

Roadmap: Summer of Cosmos

Pluggable UI

  • Design plugin API
    • Create rough plugin structure for existing UI
    • Enable toggling plugins at run time
    • Refactor ResponsiveLoader into a plugin
      • Create UiContext with playgroundOpts, URL params, UI state and fixtureEdit callback
      • Derive state from fixture.viewport
    • Decouple plugin config from core config
    • Decouple URL params from core UI
    • Export styled-components to use in plugins (eg. HeaderButton)
  • Design package API
    • Turn existing plugins into packages (type: ui-plugin)
  • Create UI for browsing and toggling plugins
    • Design config API for enabled plugins
  • Create UI from installing packages
  • Document UI plugins

React Native integration

  • RN server
    • Extract non-webpack core from react-cosmos/server
    • Create RN server cmd
    • Create sockets server (forwarding messages between clients)
    • Generate user modules file
    • Update cosmos.modules file on fixture file changes
    • Add loaderOpts to cosmos.modules
    • Onboarding
      • Generate Cosmos config
      • Add cosmos.modules to gitignore
      • Create new App file that forks between App.main and App.cosmos
      • Add package.json script
  • RN UI
    • Add support for websocket communication (choose between sockets or postMessage)
    • Ask loader for fixtures on load
    • Create RN-specific onboarding screens
    • Test socket transport
    • Log using debug on the client
  • RN loader
    • Extract non ReactDOM-specific core from react-cosmos-loader
    • Create RN loader
    • Test socket transport
    • Check if existing proxies are compatible
    • Check if testing API is compatible
  • Create React Native App example
  • Add (experimental) README section

Redesign docs

  • Create search UI for examples (by tags extracted from README)
  • Create search UI for plugins
  • Create high-level examples (eg. Next.js, CRA, Gatsby)