selectors.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. * <<
  3. * Davinci
  4. * ==
  5. * Copyright (C) 2016 - 2017 EDP
  6. * ==
  7. * Licensed under the Apache License, Version 2.0 (the "License");
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. * >>
  19. */
  20. import { createSelector } from 'reselect'
  21. import { IVizState } from './types'
  22. const selectViz = (state: { viz: IVizState }) => state.viz
  23. const makeSelectPortals = () =>
  24. createSelector(
  25. selectViz,
  26. (vizState) => vizState.portals
  27. )
  28. const makeSelectDisplays = () =>
  29. createSelector(
  30. selectViz,
  31. (vizState) => vizState.displays
  32. )
  33. const makeSelectPortalDashboards = () =>
  34. createSelector(
  35. selectViz,
  36. (vizState) => vizState.portalDashboards
  37. )
  38. const makeSelectCurrentPortal = () =>
  39. createSelector(
  40. selectViz,
  41. (vizState) =>
  42. vizState.portals.find(({ id }) => id == vizState.currentPortalId) || {}
  43. )
  44. const makeSelectCurrentDashboards = () =>
  45. createSelector(
  46. selectViz,
  47. (vizState) => vizState.portalDashboards[vizState.currentPortalId] || []
  48. )
  49. const makeSelectDisplaySlides = () =>
  50. createSelector(
  51. selectViz,
  52. (vizState) => vizState.displaySlides
  53. )
  54. const makeSelectCurrentDisplay = () =>
  55. createSelector(
  56. selectViz,
  57. (vizState) => vizState.currentDisplay
  58. )
  59. const makeSelectCurrentSlide = () =>
  60. createSelector(
  61. selectViz,
  62. (vizState) => vizState.currentSlide
  63. )
  64. const makeSelectCurrentSlides = () =>
  65. createSelector(
  66. selectViz,
  67. ({ currentDisplay, displaySlides }) =>
  68. currentDisplay ? displaySlides[currentDisplay.id] : []
  69. )
  70. const makeSelectVizLoading = () =>
  71. createSelector(
  72. selectViz,
  73. (vizState) => vizState.loading
  74. )
  75. export {
  76. selectViz,
  77. makeSelectPortals,
  78. makeSelectDisplays,
  79. makeSelectPortalDashboards,
  80. makeSelectCurrentPortal,
  81. makeSelectCurrentDashboards,
  82. makeSelectDisplaySlides,
  83. makeSelectCurrentDisplay,
  84. makeSelectCurrentSlide,
  85. makeSelectCurrentSlides,
  86. makeSelectVizLoading
  87. }