@stackend/api
Version:
JS bindings to api.stackend.com
160 lines • 5.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.qnaStyling = exports.qnaGame = exports.qnaSelectedFilters = exports.qnaServer = exports.qnaReducer = exports.qnaSearchResult = exports.qnaAvailableFilters = exports.RECEIVE_SEARCH_RESULT = exports.SET_QNA_AVAILABLE_FILTERS = exports.CHANGE_FILTER = exports.SET_QNA_STYLE = exports.SET_QNA_GAME = exports.SET_QNA_SERVER = exports.CHANGE_QNA_PAGE = void 0;
var immutability_helper_1 = __importDefault(require("immutability-helper"));
////Action Type
exports.CHANGE_QNA_PAGE = 'CHANGE_QNA_PAGE';
exports.SET_QNA_SERVER = 'SET_QNA_SERVER';
exports.SET_QNA_GAME = 'SET_QNA_GAME';
exports.SET_QNA_STYLE = 'SET_QNA_STYLE';
exports.CHANGE_FILTER = 'CHANGE_FILTER';
exports.SET_QNA_AVAILABLE_FILTERS = 'SET_QNA_AVAILABLE_FILTERS';
exports.RECEIVE_SEARCH_RESULT = 'RECEIVE_SEARCH_RESULT';
//Reducer
var qnaReducer = function (state, action) {
if (state === void 0) { state = { pageType: 'Search' }; }
switch (action.type) {
case exports.CHANGE_QNA_PAGE:
return (state = {
pageType: action.pageType,
forumThreadPermalink: action.forumThreadPermalink
});
default:
return state;
}
};
exports.qnaReducer = qnaReducer;
var xcapModuleSettings = {
qna: {
server: '',
game: { id: 0, name: '' },
styling: {}
}
};
//Reducer
var qnaServer = function (state, action) {
if (state === void 0) { state = xcapModuleSettings && xcapModuleSettings.qna && xcapModuleSettings.qna.server
? xcapModuleSettings.qna.server
: ''; }
switch (action.type) {
case exports.SET_QNA_SERVER:
return (state = action.server);
default:
return state;
}
};
exports.qnaServer = qnaServer;
function qnaAvailableFilters(state, action) {
if (state === void 0) { state = {
filterGames: [],
filterPlatforms: [],
filterIssues: [],
filterDevices: [],
filterError: false
}; }
switch (action.type) {
case exports.SET_QNA_AVAILABLE_FILTERS:
return (state = action.filters);
default:
return state;
}
}
exports.qnaAvailableFilters = qnaAvailableFilters;
var defaultQnaSelectedFiltersState = {
askQuestion: {
game: xcapModuleSettings && xcapModuleSettings.qna && xcapModuleSettings.qna.game && xcapModuleSettings.qna.game.id,
searchType: 'All'
},
tags: {
game: xcapModuleSettings && xcapModuleSettings.qna && xcapModuleSettings.qna.game && xcapModuleSettings.qna.game.name,
searchType: 'Trending'
},
searchSearchInput: {
game: xcapModuleSettings && xcapModuleSettings.qna && xcapModuleSettings.qna.game && xcapModuleSettings.qna.game.name,
searchType: 'All'
}
};
var qnaSelectedFilters = function (state, action) {
var _a, _b, _c;
if (state === void 0) { state = defaultQnaSelectedFiltersState; }
switch (action.type) {
case exports.CHANGE_FILTER:
if (typeof state[action.contentType] === 'undefined') {
//this is the first request of a specific contentType, store it in a separate place
state[action.contentType] = {};
}
//TODO: Is this realy working? what if action.filter[1] is clicked?
if (!!Object.values(action.filter)[0] &&
state[action.contentType][Object.keys(action.filter)[0]] === Object.values(action.filter)[0] &&
Object.keys(action.filter)[0] !== 'searchType') {
// the current clicked filter is selected, Un-check current filter selection
return (0, immutability_helper_1.default)(state, (_a = {},
_a[action.contentType] = { $merge: (_b = {}, _b[Object.keys(action.filter)[0]] = '', _b) },
_a));
}
//Check new filter selection
return (0, immutability_helper_1.default)(state, (_c = {},
_c[action.contentType] = { $merge: action.filter },
_c));
default:
return state;
}
};
exports.qnaSelectedFilters = qnaSelectedFilters;
function qnaSearchResult(state, action) {
if (state === void 0) { state = {
entries: [],
relatedObjects: [],
categoryCounts: [],
error: false
}; }
switch (action.type) {
case exports.RECEIVE_SEARCH_RESULT:
return (state = action.result);
default:
return state;
}
}
exports.qnaSearchResult = qnaSearchResult;
var qnaGame = function (state, action) {
if (state === void 0) { state = xcapModuleSettings && xcapModuleSettings.qna && xcapModuleSettings.qna.game
? xcapModuleSettings.qna.game
: ''; }
switch (action.type) {
case exports.SET_QNA_GAME:
return (state = action.game);
default:
return state;
}
};
exports.qnaGame = qnaGame;
var defaultStyle = {
mainColor: '',
accentColor: '',
iconColor: '',
titleFont: '',
titleFontColor: '',
bodyFont: '',
bodyFontColor: '',
buttonColor: '',
buttonFontColor: '',
linkColor: '',
textDetailColor: ''
};
var qnaStyling = function (state, action) {
if (state === void 0) { state = xcapModuleSettings && xcapModuleSettings.qna && xcapModuleSettings.qna.styling
? xcapModuleSettings.qna.styling
: defaultStyle; }
switch (action.type) {
case exports.SET_QNA_STYLE:
return (state = action.style);
default:
return state;
}
};
exports.qnaStyling = qnaStyling;
exports.default = qnaReducer;
//# sourceMappingURL=qnaReducer.js.map