diff --git a/client/src/actions/types.ts b/client/src/actions/types.ts index a417f6afc797d8a69bd81d2b259283e98ed364e3..e500f2c8b2e7281c85559c9b86590a5f3269c080 100644 --- a/client/src/actions/types.ts +++ b/client/src/actions/types.ts @@ -29,4 +29,8 @@ export default { SET_CITIES_TOTAL: 'SET_CITIES_TOTAL', SET_CITIES_COUNT: 'SET_CITIES_COUNT', SET_TYPES: 'SET_TYPES', + SET_MEDIA_ID: 'SET_MEDIA_ID', + SET_MEDIA_FILENAME: 'SET_MEDIA_ID', + SET_MEDIA_TYPE_ID: 'SET_MEDIA_TYPE_ID', + SET_MEDIA_USER_ID: 'SET_MEDIA_USER_ID', } diff --git a/client/src/interfaces/ApiRichModels.ts b/client/src/interfaces/ApiRichModels.ts index 99ee4ec2039320d72ed95a196e5205b7be96dd0b..c0d2de7c62f79b84453c9d9320f827f02a02ed71 100644 --- a/client/src/interfaces/ApiRichModels.ts +++ b/client/src/interfaces/ApiRichModels.ts @@ -1,4 +1,4 @@ -import { Component, QuestionAlternative, QuestionAnswer, QuestionType } from './ApiModels' +import { Component, Media, QuestionAlternative, QuestionAnswer, QuestionType } from './ApiModels' export interface RichCompetition { name: string @@ -17,6 +17,7 @@ export interface RichSlide { competition_id: number components: Component[] questions: RichQuestion[] + medias: Media[] } export interface RichTeam { diff --git a/client/src/reducers/allReducers.ts b/client/src/reducers/allReducers.ts index 2aee46972cb6f0d33f2b128aeb6d19a9d77f106f..2a25bad73b3b039db9d2bec12b206bf303fad506 100644 --- a/client/src/reducers/allReducers.ts +++ b/client/src/reducers/allReducers.ts @@ -4,6 +4,7 @@ import { combineReducers } from 'redux' import citiesReducer from './citiesReducer' import competitionsReducer from './competitionsReducer' import editorReducer from './editorReducer' +import mediaReducer from './mediaReducer' import presentationReducer from './presentationReducer' import rolesReducer from './rolesReducer' import searchUserReducer from './searchUserReducer' @@ -22,5 +23,6 @@ const allReducers = combineReducers({ roles: rolesReducer, searchUsers: searchUserReducer, types: typesReducer, + media: mediaReducer, }) export default allReducers diff --git a/client/src/reducers/mediaReducer.ts b/client/src/reducers/mediaReducer.ts new file mode 100644 index 0000000000000000000000000000000000000000..ad5f3b46547f2e9a20135537ff814b196ca22331 --- /dev/null +++ b/client/src/reducers/mediaReducer.ts @@ -0,0 +1,39 @@ +import { AnyAction } from 'redux' +import Types from '../actions/types' + +interface MediaState { + id: number + filename: string + mediatype_id: number + user_id: number +} +const initialState: MediaState = { + id: 0, + filename: '', + mediatype_id: 1, + user_id: 0, +} + +export default function (state = initialState, action: AnyAction) { + switch (action.type) { + case Types.SET_MEDIA_ID: + return { ...state, id: action.payload as number } + case Types.SET_MEDIA_FILENAME: + return { + ...state, + filename: action.payload as string, + } + case Types.SET_MEDIA_TYPE_ID: + return { + ...state, + mediatype_id: action.payload as number, + } + case Types.SET_MEDIA_USER_ID: + return { + ...state, + user_id: action.payload as number, + } + default: + return state + } +}