Adds an info banner to the app (#190)

* added info-banner component to show the banner.text, we got from the backend config. This banner is shown on top of the landing page (intro, history, login/signup and profile) and also on top of the editor and links to `/n/banner`
* added banner to backendConfig Redux state
* added BannerState to the ApplicationState with that the showing of the banner is globally controlled, the banner text is given to the banner component and the timestamp to acknowledge a banner was read by the user
* the timestamp of a dismissed note is saved in the browsers localStorage to determine in the future if the banner should be shown

Signed-off-by: Philip Molares <philip.molares@udo.edu>
Co-authored-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
Philip Molares 2020-06-15 21:54:20 +02:00 committed by GitHub
parent 75aa8b38af
commit e014eb36b5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 144 additions and 15 deletions

View file

@ -2,6 +2,8 @@ import { combineReducers, Reducer } from 'redux'
import { BackendConfig } from '../api/backend-config/types'
import { FrontendConfig } from '../api/frontend-config/types'
import { BackendConfigReducer } from './backend-config/reducers'
import { BannerReducer } from './banner/reducers'
import { BannerState } from './banner/types'
import { EditorConfigReducer } from './editor/reducers'
import { EditorConfig } from './editor/types'
import { FrontendConfigReducer } from './frontend-config/reducers'
@ -11,6 +13,7 @@ import { MaybeUserState } from './user/types'
export interface ApplicationState {
user: MaybeUserState;
backendConfig: BackendConfig;
banner: BannerState;
frontendConfig: FrontendConfig;
editorConfig: EditorConfig;
}
@ -18,6 +21,7 @@ export interface ApplicationState {
export const allReducers: Reducer<ApplicationState> = combineReducers<ApplicationState>({
user: UserReducer,
backendConfig: BackendConfigReducer,
banner: BannerReducer,
frontendConfig: FrontendConfigReducer,
editorConfig: EditorConfigReducer
})