* Changed makeStyleSheetFromTheme to take a function that returns a plain object * Fixed style issues
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import {StyleSheet} from 'react-native';
|
|
|
|
export function makeStyleSheetFromTheme(getStyleFromTheme) {
|
|
let lastTheme = null;
|
|
let style = null;
|
|
|
|
return (theme) => {
|
|
if (theme !== lastTheme) {
|
|
style = StyleSheet.create(getStyleFromTheme(theme));
|
|
lastTheme = theme;
|
|
}
|
|
|
|
return style;
|
|
};
|
|
}
|
|
|
|
export function changeOpacity(oldColor, opacity) {
|
|
let color = oldColor;
|
|
if (color.length && color[0] === '#') {
|
|
color = color.slice(1);
|
|
}
|
|
|
|
if (color.length === 3) {
|
|
const tempColor = color;
|
|
color = '';
|
|
|
|
color += tempColor[0] + tempColor[0];
|
|
color += tempColor[1] + tempColor[1];
|
|
color += tempColor[2] + tempColor[2];
|
|
}
|
|
|
|
const r = parseInt(color.substring(0, 2), 16);
|
|
const g = parseInt(color.substring(2, 4), 16);
|
|
const b = parseInt(color.substring(4, 6), 16);
|
|
|
|
return 'rgba(' + r + ',' + g + ',' + b + ',' + opacity + ')';
|
|
}
|
|
|
|
export function concatStyles(...styles) {
|
|
return [].concat(styles);
|
|
}
|