diff --git a/client/src/actions/presentation.ts b/client/src/actions/presentation.ts index d1fddd97abf9d6ee672f1f8c3002e1561a50ef2f..c967131f903809ac8af8e11c0218fb614de75227 100644 --- a/client/src/actions/presentation.ts +++ b/client/src/actions/presentation.ts @@ -1,6 +1,7 @@ import axios from 'axios' import { Slide } from '../interfaces/ApiModels' -import { AppDispatch } from './../store' +import { Timer } from '../interfaces/Timer' +import store, { AppDispatch } from './../store' import Types from './types' export const getPresentationCompetition = (id: string) => async (dispatch: AppDispatch) => { diff --git a/client/src/pages/admin/AdminPage.tsx b/client/src/pages/admin/AdminPage.tsx index beff5f938a1e003e945f4066c3d29898457153bd..30cfe656c4bb336d82d3056849008c2c71bbac3d 100644 --- a/client/src/pages/admin/AdminPage.tsx +++ b/client/src/pages/admin/AdminPage.tsx @@ -59,7 +59,9 @@ const AdminView: React.FC = () => { const [openIndex, setOpenIndex] = React.useState(0) const { path, url } = useRouteMatch() const currentUser = useAppSelector((state) => state.user.userInfo) - const isAdmin = useAppSelector((state) => Boolean(state.roles.roles.find((x) => x.id === currentUser?.role_id))) + const isAdmin = useAppSelector( + (state) => state.roles.roles.find((x) => x.id === currentUser?.role_id)?.name === 'Admin' + ) const dispatch = useAppDispatch() const handleLogout = () => { dispatch(logoutUser()) diff --git a/client/src/pages/admin/competitions/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx index 08a18581b05e8015c4743fcc75655847bb987c7c..6c7da5db82e04e57b4bef86ba2898c9b479b4ff0 100644 --- a/client/src/pages/admin/competitions/CompetitionManager.tsx +++ b/client/src/pages/admin/competitions/CompetitionManager.tsx @@ -36,6 +36,7 @@ const CompetitionManager: React.FC = (props: any) => { const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null) const [activeId, setActiveId] = React.useState<number | undefined>(undefined) const [timerHandle, setTimerHandle] = React.useState<number | undefined>(undefined) + const loading = useAppSelector((state) => state.user.userInfo === null) const competitions = useAppSelector((state) => state.competitions.competitions) const filterParams = useAppSelector((state) => state.competitions.filterParams) const competitionTotal = useAppSelector((state) => state.competitions.total) @@ -125,12 +126,12 @@ const CompetitionManager: React.FC = (props: any) => { label="Ã…r" name="model.year" type="number" - value={filterParams.year || new Date().getFullYear()} + value={filterParams.year || ''} onChange={(event) => handleFilterChange({ ...filterParams, year: +event.target.value })} margin="normal" /> </FilterContainer> - <AddCompetition /> + {!loading && <AddCompetition />} </TopBar> <TableContainer component={Paper}> <Table className={classes.table} aria-label="simple table"> diff --git a/client/src/pages/presentationEditor/PresentationEditorPage.tsx b/client/src/pages/presentationEditor/PresentationEditorPage.tsx index d57b0b987f1f3547c89740b2a380c85733a1209e..eb60cee2dd7ef0f6608007f534b266c2dad20c59 100644 --- a/client/src/pages/presentationEditor/PresentationEditorPage.tsx +++ b/client/src/pages/presentationEditor/PresentationEditorPage.tsx @@ -8,7 +8,7 @@ import { createStyles, makeStyles, Theme } from '@material-ui/core/styles' import React, { useEffect } from 'react' import { useParams } from 'react-router-dom' import { getCities } from '../../actions/cities' -import { getEditorCompetition } from '../../actions/editor' +import { getEditorCompetition, setEditorSlideId } from '../../actions/editor' import { getTypes } from '../../actions/typesAction' import { useAppDispatch, useAppSelector } from '../../hooks' import { Content } from '../views/styled' diff --git a/client/src/reducers/presentationReducer.ts b/client/src/reducers/presentationReducer.ts index f706ba54f1e8bc7794fd1945d6551ba7c8547cfa..5ba3ac5b196cb65fc3209b87fcb4636e22cac2ba 100644 --- a/client/src/reducers/presentationReducer.ts +++ b/client/src/reducers/presentationReducer.ts @@ -1,6 +1,7 @@ import { AnyAction } from 'redux' import Types from '../actions/types' import { Slide, Team } from '../interfaces/ApiModels' +import { Timer } from '../interfaces/Timer' import { RichCompetition } from './../interfaces/ApiRichModels' interface PresentationState {