rn-custom-style-sheet
Version:
React Native component to select a specific value from a range of values.
52 lines (51 loc) • 2.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.themeReducer = themeReducer;
var _Context = require("../Context");
var _ThemeReducerTypes = require("./ThemeReducerTypes");
function themeReducer(state, action) {
const {
type,
payload
} = action;
switch (type) {
case _ThemeReducerTypes.ReducerEventEnum.Initial:
return Object.assign({}, state, {
appThemeName: payload.appThemeName,
appThemeMode: payload.appThemeMode,
systemThemeMode: payload.systemThemeMode,
orientation: payload.orientation,
isSupportedOrientation: payload.isSupportedOrientation,
isUsedBuiltInAspectRatioFunction: payload.isUsedBuiltInAspectRatioFunction,
withPortraitBehaviorInLandscapeMode: payload.withPortraitBehaviorInLandscapeMode,
deviceForMediaQuery: payload.deviceForMediaQuery,
guideLineLayout: payload.guideLineLayout,
guideLineBreakpoint: payload.guideLineBreakpoint,
screenResolution: payload.screenResolution,
currentBreakpointIndex: payload.currentBreakpointIndex
});
case _ThemeReducerTypes.ReducerEventEnum.ChangeAppTheme:
return Object.assign({}, state, {
appThemeName: payload.appThemeName ?? state.appThemeName,
appThemeMode: payload.appThemeMode ?? state.appThemeMode,
systemThemeMode: (payload.appThemeMode ?? state.appThemeMode).toLowerCase() !== _ThemeReducerTypes.AppThemeModeEnum.System ? _ThemeReducerTypes.AppThemeModeEnum.System : state.systemThemeMode
});
case _ThemeReducerTypes.ReducerEventEnum.ChangeSystemThemeMode:
return Object.assign({}, state, {
systemThemeMode: payload.systemThemeMode
});
case _ThemeReducerTypes.ReducerEventEnum.ChangeResolution:
return Object.assign({}, state, {
orientation: payload.orientation,
screenResolution: payload.screenResolution,
currentBreakpointIndex: payload.currentBreakpointIndex
});
case _ThemeReducerTypes.ReducerEventEnum.Clear:
return Object.assign({}, state, _Context.initialThemeState);
default:
return state;
}
}
//# sourceMappingURL=ThemeReducer.js.map