Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Major Theme Handling Migration #2585

Closed
wants to merge 70 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
c2ab8e5
Map raw-themes to base-themes
mbrookes Dec 15, 2015
aeefc97
add lodash.merge as a required dependency
alitaheri Dec 18, 2015
1d58e3a
major improvement to theme handling
alitaheri Dec 18, 2015
5d822a2
migrate divider to use the new theme standard
alitaheri Dec 18, 2015
e749b29
migrate dialog to use the new theme standard
alitaheri Dec 18, 2015
e7302dd
migrate DropDownMenu to use the new theme standard
alitaheri Dec 19, 2015
79dd0b5
partially migrate docs to adhere to the new naming strategy
alitaheri Dec 19, 2015
a50b881
rename muiTheme to _muiTheme in TextFieldUnderline.jsx
alitaheri Dec 19, 2015
96a1bb6
add _muiTheme as a required prop globally
alitaheri Dec 19, 2015
4b8b38d
patch theme-wrapper to work with new naming convention
alitaheri Dec 19, 2015
77f030d
eslint fixes
alitaheri Dec 19, 2015
346cff1
migrate TextField to use the new theme handling
alitaheri Dec 19, 2015
713d031
migrate menu to use the new theme handling
alitaheri Dec 19, 2015
67aac58
remove theme from before-after-wrapper
alitaheri Dec 19, 2015
b9ca804
eslint fixes
alitaheri Dec 19, 2015
f8c03fd
patch up the old menus
alitaheri Dec 19, 2015
15c84ef
migrate icon-button to use the new theme handling
alitaheri Dec 19, 2015
57bf391
migrate tabs to use the new theme handling
alitaheri Dec 19, 2015
91a4f16
migrate enhanced-button to use the new theme handling
alitaheri Dec 19, 2015
e9d5dc6
patch style-propable to consider props and _muiTheme on state
alitaheri Dec 19, 2015
b4fecb3
migrate paper to use the new theme handling
alitaheri Dec 19, 2015
513dfbf
migrate app-canvas to use the new theme handling
alitaheri Dec 19, 2015
bf22ccb
migrate icons to use the new theme handling
alitaheri Dec 19, 2015
2bfe05b
migrate ink-bar to use the new theme handling
alitaheri Dec 19, 2015
095af3c
migrate before-after-wrapper to use the new theme handling
alitaheri Dec 19, 2015
b529453
migrate card to use the new theme handling
alitaheri Dec 20, 2015
bb26e98
migrate flat button and text area to use the new theme handling
alitaheri Dec 20, 2015
0215388
migrate date-picker
alitaheri Dec 20, 2015
58d2633
migrate CircularProgress
alitaheri Dec 20, 2015
9bfa721
migrate Checkbox
alitaheri Dec 20, 2015
92db8d0
migrate Badge
alitaheri Dec 20, 2015
17cbd77
migrate avatar
alitaheri Dec 20, 2015
bb1380d
migrate auto-complete
alitaheri Dec 20, 2015
a97f689
migrate appbar
alitaheri Dec 20, 2015
c53a0ec
migrated SelectableContainerEnhance
alitaheri Dec 20, 2015
3d5881e
migrated grid list
alitaheri Dec 20, 2015
e0a2f1b
migrated overlay
alitaheri Dec 20, 2015
185c1df
migrated left-nav
alitaheri Dec 20, 2015
f4eb1d4
migrated FAB
alitaheri Dec 20, 2015
1f662c7
migrated EnhancedSwitch
alitaheri Dec 20, 2015
7e48fbb
patch drop down icon
alitaheri Dec 20, 2015
8cb134e
migrate list
alitaheri Dec 20, 2015
daef770
migrate linear-progress
alitaheri Dec 20, 2015
6c6371f
migrate popover
alitaheri Dec 20, 2015
b29842b
migrate transition groups
alitaheri Dec 20, 2015
c25cc3b
migrate render-to-layer
alitaheri Dec 20, 2015
8b7eaea
migrate tooltip
alitaheri Dec 20, 2015
13cf40f
migrate switches
alitaheri Dec 20, 2015
18a9c08
migrate raised-button
alitaheri Dec 20, 2015
a40b383
migrate refresh indicator
alitaheri Dec 20, 2015
f4cf2ea
migrate select field
alitaheri Dec 20, 2015
8a0f683
migrate slider
alitaheri Dec 20, 2015
33583d3
migrate snackbar
alitaheri Dec 20, 2015
cca367a
migrate toolbar
alitaheri Dec 20, 2015
3075889
migrate table
alitaheri Dec 20, 2015
6dd4bee
migrate time picker
alitaheri Dec 20, 2015
61c5889
migrate doc components
alitaheri Dec 20, 2015
5e98afb
bug fixes
alitaheri Dec 20, 2015
62bfead
forward imperative methods
alitaheri Dec 20, 2015
f42ad17
fixed regressions caused by migration
alitaheri Dec 20, 2015
b8a4bdc
function wrapper should also forward the return value
alitaheri Dec 20, 2015
211162f
forward some methods.
alitaheri Dec 20, 2015
c1485f2
export base themes
alitaheri Dec 21, 2015
73b306b
improve muiThemeable
alitaheri Dec 21, 2015
8a48ccf
lazily evaluate the default theme
alitaheri Dec 21, 2015
9f51537
forward imperative methods throughout the library
alitaheri Dec 21, 2015
d9335a8
bug fixes
alitaheri Dec 21, 2015
1bdfe0d
have customization/themes use MuiThemeProvider
alitaheri Dec 21, 2015
2e5156d
patch tests
alitaheri Dec 21, 2015
5a0ed1e
fix eslint errors
alitaheri Dec 21, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions docs/src/app/app-routes.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,21 @@ import Themes from './components/pages/customization/themes';
import InlineStyles from './components/pages/customization/inline-styles';

import Components from './components/pages/components';
import AppBar from './components/pages/components/app-bar';
import AppBar from './components/pages/components/AppBar';
import AutoComplete from './components/pages/components/auto-complete';
import Avatar from './components/pages/components/avatar';
import Badge from './components/pages/components/badge';
import Avatar from './components/pages/components/Avatar';
import Badge from './components/pages/components/Badge';
import Buttons from './components/pages/components/buttons';
import Cards from './components/pages/components/cards';
import Cards from './components/pages/components/Cards';
import DatePicker from './components/pages/components/date-picker';
import Dialog from './components/pages/components/dialog';
import Divider from './components/pages/components/divider';
import DropDownMenu from './components/pages/components/drop-down-menu';
import Dialog from './components/pages/components/Dialog';
import Divider from './components/pages/components/Divider';
import DropDownMenu from './components/pages/components/DropDownMenu';
import GridList from './components/pages/components/grid-list';
import Icons from './components/pages/components/icons';
import IconButtons from './components/pages/components/icon-buttons';
import IconMenus from './components/pages/components/icon-menus';
import LeftNav from './components/pages/components/left-nav';
import LeftNav from './components/pages/components/LeftNav';
import Lists from './components/pages/components/lists';
import Menus from './components/pages/components/menus';
import Paper from './components/pages/components/paper';
Expand All @@ -43,14 +43,13 @@ import Progress from './components/pages/components/progress';
import RefreshIndicator from './components/pages/components/refresh-indicator';
import SelectFields from './components/pages/components/select-fields';
import Sliders from './components/pages/components/sliders';
import Snackbar from './components/pages/components/snackbar';
import Snackbar from './components/pages/components/Snackbar';
import Switches from './components/pages/components/switches';
import Table from './components/pages/components/table';
import Tabs from './components/pages/components/tabs';
import Tabs from './components/pages/components/Tabs';
import TextFields from './components/pages/components/text-fields';
import TimePicker from './components/pages/components/time-picker';
import Toolbars from './components/pages/components/toolbars';

import Toolbars from './components/pages/components/Toolbars';

/**
* Routes: https://github.com/rackt/react-router/blob/master/docs/api/components/Route.md
Expand Down
41 changes: 0 additions & 41 deletions docs/src/app/components/Card/ExampleWithAvatar.jsx

This file was deleted.

37 changes: 0 additions & 37 deletions docs/src/app/components/Card/ExampleWithoutAvatar.jsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,67 +1,37 @@
import React from 'react';
import CodeBlock from './CodeBlock';
import ClearFix from 'material-ui/lib/clearfix';
import Paper from 'material-ui/lib/paper';
import Spacing from 'material-ui/lib/styles/spacing';
import Typography from 'material-ui/lib/styles/typography';
import muiThemeable from 'material-ui/lib/muiThemeable';

import {
ClearFix,
Paper,
Styles,
} from 'material-ui';

const {
Spacing,
Typography,
} = Styles;

import CodeBlock from './code-block';
const ThemeManager = Styles.ThemeManager;
const DefaultRawTheme = Styles.LightRawTheme;

const CodeExample = React.createClass({
let CodeExample = React.createClass({

propTypes: {
/**
* The MUI Theme to use to render this component with.
*/
_muiTheme: React.PropTypes.object.isRequired,

children: React.PropTypes.node,
code: React.PropTypes.string.isRequired,
layoutSideBySide: React.PropTypes.bool,
},

contextTypes: {
muiTheme: React.PropTypes.object,
},

//for passing default theme context to children
childContextTypes: {
muiTheme: React.PropTypes.object,
},

getChildContext() {
return {
muiTheme: this.state.muiTheme,
};
},

getInitialState() {
return {
muiTheme: this.context.muiTheme ? this.context.muiTheme : ThemeManager.getMuiTheme(DefaultRawTheme),
};
},

componentWillReceiveProps(nextProps, nextContext) {
let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
this.setState({muiTheme: newMuiTheme});
},

render() {

let {
const {
_muiTheme,
children,
code,
layoutSideBySide,
} = this.props;

let palette = this.state.muiTheme.rawTheme.palette;
let borderColor = palette.borderColor;
let canvasColor = palette.canvasColor;
const palette = _muiTheme.baseTheme.palette;
const borderColor = palette.borderColor;
const canvasColor = palette.canvasColor;

let styles = {
const styles = {
root: {
backgroundColor: canvasColor,
marginBottom: 32,
Expand Down Expand Up @@ -94,4 +64,6 @@ const CodeExample = React.createClass({
},
});

CodeExample = muiThemeable(CodeExample);

export default CodeExample;
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
import React from 'react';
import {Mixins} from 'material-ui';
import muiThemeable from 'material-ui/lib/muiThemeable';
const {StylePropable} = Mixins;


const MobileTearSheet = React.createClass({
let MobileTearSheet = React.createClass({
mixins: [StylePropable],

contextTypes: {
muiTheme: React.PropTypes.object,
},

propTypes: {
/**
* The MUI Theme to use to render this component with.
*/
_muiTheme: React.PropTypes.object.isRequired,

children: React.PropTypes.node,
height: React.PropTypes.number,
},
Expand Down Expand Up @@ -58,4 +59,6 @@ const MobileTearSheet = React.createClass({

});

MobileTearSheet = muiThemeable(MobileTearSheet);

export default MobileTearSheet;
13 changes: 10 additions & 3 deletions docs/src/app/components/app-left-nav.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,27 @@ import {
import List from 'material-ui/lib/lists/list';
import ListItem from 'material-ui/lib/lists/list-item';
import Divider from 'material-ui/lib/divider';
import {SelectableContainerEnhance} from 'material-ui/hoc/selectable-enhance';
import SelectableContainerEnhance from 'material-ui/hoc/selectable-enhance';
import muiThemeable from 'material-ui/lib/muiThemeable';

const {Colors, Spacing, Typography} = Styles;
const {StylePropable} = Mixins;
const SelectableList = SelectableContainerEnhance(List);

const AppLeftNav = React.createClass({
let AppLeftNav = React.createClass({
mixins: [StylePropable],

propTypes: {
/**
* The MUI Theme to use to render this component with.
*/
_muiTheme: React.PropTypes.object.isRequired,

history: React.PropTypes.object,
location: React.PropTypes.object,
},

contextTypes: {
muiTheme: React.PropTypes.object,
router: React.PropTypes.func,
},

Expand Down Expand Up @@ -140,4 +145,6 @@ const AppLeftNav = React.createClass({

});

AppLeftNav = muiThemeable(AppLeftNav);

export default AppLeftNav;
42 changes: 10 additions & 32 deletions docs/src/app/components/component-doc.jsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import React from 'react';
import {ClearFix, Mixins, Styles} from 'material-ui';
import muiThemeable from 'material-ui/lib/muiThemeable';
import ComponentInfo from './component-info';
const Typography = Styles.Typography;
const {StylePropable} = Mixins;
const ThemeManager = Styles.ThemeManager;
const DefaultRawTheme = Styles.LightRawTheme;

const ComponentDoc = React.createClass({
let ComponentDoc = React.createClass({

mixins: [StylePropable],

contextTypes: {
muiTheme: React.PropTypes.object,
},

propTypes: {
/**
* The MUI Theme to use to render this component with.
*/
_muiTheme: React.PropTypes.object.isRequired,

children: React.PropTypes.node,
componentInfo: React.PropTypes.array.isRequired,
desc: React.PropTypes.oneOfType([
Expand All @@ -24,32 +24,8 @@ const ComponentDoc = React.createClass({
name: React.PropTypes.string.isRequired,
},

//for passing default theme context to children
childContextTypes: {
muiTheme: React.PropTypes.object,
},

getChildContext() {
return {
muiTheme: this.state.muiTheme,
};
},

getInitialState() {
return {
muiTheme: this.context.muiTheme ? this.context.muiTheme : ThemeManager.getMuiTheme(DefaultRawTheme),
};
},

//to update theme inside state whenever a new theme is passed down
//from the parent / owner using context
componentWillReceiveProps(nextProps, nextContext) {
let newMuiTheme = nextContext.muiTheme ? nextContext.muiTheme : this.state.muiTheme;
this.setState({muiTheme: newMuiTheme});
},

getStyles() {
let borderColor = this.state.muiTheme.rawTheme.palette.borderColor;
let borderColor = this.props._muiTheme.baseTheme.palette.borderColor;
return {
desc: {
borderBottom: 'solid 1px ' + borderColor,
Expand Down Expand Up @@ -136,4 +112,6 @@ const ComponentDoc = React.createClass({

});

ComponentDoc = muiThemeable(ComponentDoc);

export default ComponentDoc;
Loading