mirror of
https://github.com/status-im/MyCrypto.git
synced 2025-01-11 11:34:26 +00:00
bf6a122e38
* Initial changes to define theme maps, color function, and convert all global styles. * More global styles. * All styles converted, colors uncertain. * Fix tabs, temporary theme toggle button. * Color refinements * Color network selector, introduce shade function * Make palette page * Add theme button and minor styling to nav * Blueify dark theme * A bunch of color adjustments to work better with dark theme * Fix tables * Fix wallet decrypt colors * More misc fixes * Fix up electron colors * Convert web theme to redux state / action * Theme toggle in app, prevent rerenders * Get rid of all variables, fix selects * Fix conf modal, modal close styles * Fix test * Adjust swap colors * Check in breaking out component, changing icons * Check in progress * Theme toggle in footer. New icons * Prevent rerender on theme change * Fix up outstanding merge conflicts * Fix generate colors to be dark mode friendly * Reduce swap color intensity * Make disabled buttons darker in dark mode * Reduce button size by 25%
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import React from 'react';
|
|
import { connect } from 'react-redux';
|
|
import { Theme } from 'config';
|
|
import { getTheme, changeTheme } from 'features/config';
|
|
import { AppState } from 'features/reducers';
|
|
import './ThemeToggle.scss';
|
|
|
|
interface ActionProps {
|
|
changeTheme: typeof changeTheme;
|
|
}
|
|
|
|
interface StateProps {
|
|
theme: ReturnType<typeof getTheme>;
|
|
}
|
|
|
|
type Props = ActionProps & StateProps;
|
|
|
|
class ThemeToggle extends React.Component<Props> {
|
|
public render() {
|
|
return (
|
|
<button className="ThemeToggle" onClick={this.toggleTheme} aria-hidden={true}>
|
|
<div className="ThemeToggle-control">
|
|
<span className="ThemeToggle-control-icon is-dark" />
|
|
<span className="ThemeToggle-control-icon is-light" />
|
|
</div>
|
|
</button>
|
|
);
|
|
}
|
|
|
|
private toggleTheme = () => {
|
|
const theme = this.props.theme === Theme.LIGHT ? Theme.DARK : Theme.LIGHT;
|
|
this.props.changeTheme(theme);
|
|
};
|
|
}
|
|
|
|
export default connect(
|
|
(state: AppState) => ({
|
|
theme: getTheme(state)
|
|
}),
|
|
{
|
|
changeTheme
|
|
}
|
|
)(ThemeToggle);
|