Added Timeline Injections

• Added:
- Timeline Injections
- FeaturedGroupsInjection, GroupCategoriesInjection, ProUpgradeInjection, PWAInjection, ShopInjection, TimelineInjectionBase, TimelineInjectionLayout, TimelineInjectionRoot, UserSuggestionsInjection
- Constants
- Redux for timeline_injections
- settings for setting
- popover for dismissing and saving weight
This commit is contained in:
mgabdev
2020-09-14 11:40:42 -05:00
parent 41f48ea886
commit d198695bdb
16 changed files with 989 additions and 7 deletions

View File

@@ -2,7 +2,17 @@ import { SETTING_CHANGE, SETTING_SAVE } from '../actions/settings'
import { STORE_HYDRATE } from '../actions/store'
import { EMOJI_USE } from '../actions/emojis'
import { LIST_DELETE_SUCCESS, LIST_FETCH_FAIL } from '../actions/lists'
import { COMMENT_SORTING_TYPE_OLDEST } from '../constants'
import { TIMELINE_INJECTION_HIDE } from '../actions/timeline_injections'
import {
COMMENT_SORTING_TYPE_OLDEST,
TIMELINE_INJECTION_WEIGHT_DEFAULT,
TIMELINE_INJECTION_FEATURED_GROUPS,
TIMELINE_INJECTION_GROUP_CATEGORIES,
TIMELINE_INJECTION_PRO_UPGRADE,
TIMELINE_INJECTION_PWA,
TIMELINE_INJECTION_SHOP,
TIMELINE_INJECTION_USER_SUGGESTIONS,
} from '../constants'
import { Map as ImmutableMap, fromJS } from 'immutable'
import uuid from '../utils/uuid'
@@ -12,6 +22,16 @@ const initialState = ImmutableMap({
skinTone: 1,
commentSorting: COMMENT_SORTING_TYPE_OLDEST,
// every dismiss reduces by half or set to zero for pwa, shop, pro
injections: ImmutableMap({
[TIMELINE_INJECTION_FEATURED_GROUPS]: TIMELINE_INJECTION_WEIGHT_DEFAULT,
[TIMELINE_INJECTION_GROUP_CATEGORIES]: TIMELINE_INJECTION_WEIGHT_DEFAULT,
[TIMELINE_INJECTION_PRO_UPGRADE]: TIMELINE_INJECTION_WEIGHT_DEFAULT,
[TIMELINE_INJECTION_PWA]: TIMELINE_INJECTION_WEIGHT_DEFAULT,
[TIMELINE_INJECTION_SHOP]: TIMELINE_INJECTION_WEIGHT_DEFAULT,
[TIMELINE_INJECTION_USER_SUGGESTIONS]: TIMELINE_INJECTION_WEIGHT_DEFAULT,
}),
displayOptions: ImmutableMap({
fontSize: 'normal',
radiusSmallDisabled: false,

View File

@@ -0,0 +1,27 @@
import Immutable from 'immutable'
import {
TIMELINE_INJECTION_SHOW,
TIMELINE_INJECTION_HIDE,
} from '../actions/timeline_injections'
const initialState = Immutable.Map({
visibleIds: Immutable.List(),
hiddenIds: Immutable.List(),
})
export default function timeline_injection(state = initialState, action) {
switch(action.type) {
case TIMELINE_INJECTION_SHOW:
return state.withMutations((map) => {
map.update('hiddenIds', (list) => list.filterNot((id) => id === action.injectionId))
map.update('visibleIds', (list) => list.push(action.injectionId))
})
case TIMELINE_INJECTION_HIDE:
return state.withMutations((map) => {
map.update('visibleIds', (list) => list.filterNot((id) => id === action.injectionId))
map.update('hiddenIds', (list) => list.push(action.injectionId))
})
default:
return state
}
}