| /******************************************************************************** |
| * Copyright (c) 2020 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0 |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| ********************************************************************************/ |
| |
| import {createSelector} from "@ngrx/store"; |
| import {rootStateSelector} from "./root.selectors"; |
| |
| export const queryParamsSelector = createSelector( |
| rootStateSelector, |
| (state) => state.queryParams |
| ); |
| |
| export const queryParamsIdSelector = createSelector( |
| queryParamsSelector, |
| (state): number => { |
| if (state == null || state.id == null) { |
| return undefined; |
| } |
| const id = typeof state.id === "string" ? parseInt(state.id, 10) : state.id; |
| return Number.isInteger(id) ? id : undefined; |
| } |
| ); |
| |
| export const queryParamsTaskIdSelector = createSelector( |
| queryParamsSelector, |
| (state): string => state?.taskId |
| ); |