Skip to content
Snippets Groups Projects
navigation.js 1.03 KiB
Newer Older
import { createSlice } from 'redux-starter-kit'
Sofiya Tepikin's avatar
Sofiya Tepikin committed
import { pages, isSymptomView } from '../components/pages'

const navigationSlice = createSlice({
  slice: 'navigation',
  initialState: {
    currentPage: 'Home',
  },
  reducers: {
    navigate: (state, action) => {
      return {
        currentPage: action.payload,
Sofiya Tepikin's avatar
Sofiya Tepikin committed
        previousPage: state.currentPage,
Sofiya Tepikin's avatar
Sofiya Tepikin committed
    goBack: ({ currentPage, previousPage }) => {

      if (currentPage === 'CycleDay' || isSymptomView(currentPage)) {
        if (previousPage) {
          return {
            currentPage: previousPage
          }
        }
      }

      const page = pages.find(p => p.component === currentPage)
      return {
        currentPage: page.parent,
        previousPage: currentPage,
    }
  }
})

// Extract the action creators object and the reducer
const { actions, reducer, selectors } = navigationSlice
// Extract and export each action creator by name
export const { navigate, goBack } = actions

export const { getNavigation } = selectors

export default reducer