ryepup/c4-lab

View on GitHub
src/routes.js

Summary

Maintainability
A
1 hr
Test Coverage
import { zoomChanged } from './store/actions'

function configureRoutes($stateProvider, $urlRouterProvider) {
  'ngInject'
  $urlRouterProvider.otherwise('/');
  $stateProvider
    .state('home', {
      url: '/?zoom',
      component: 'c4LabApp',
      resolve: {
        zoom: $stateParams => $stateParams.zoom
      },
      onEnter: (zoom, $ngRedux) => {
        const currentZoom = $ngRedux.getState().zoomNodeId;
        if (currentZoom !== zoom) {
          $ngRedux.dispatch(zoomChanged({ zoomNodeId: zoom }))
        }
      }
    })
    .state('load', {
      url: '/load/{data}?zoom',
      component: 'c4LabPreview',
      resolve: {
        encodedText: $stateParams => $stateParams.data,
        zoom: $stateParams => $stateParams.zoom
      },
      onEnter: (zoom, $ngRedux) => {
        // TODO: dedupe with other endpoint
        const currentZoom = $ngRedux.getState().zoomNodeId;
        if (currentZoom !== zoom) {
          $ngRedux.dispatch(zoomChanged({ zoomNodeId: zoom }))
        }
      }

    })
    .state('help', {
      url: '/help',
      component: 'c4LabHelp'
    })
}

export default configureRoutes;