From e15227170af122989679187fdbb49a63ec42a0a6 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sat, 23 Mar 2019 11:59:51 +0100 Subject: [PATCH] [Table] Use makeStyles over withStyles --- packages/material-ui-benchmark/src/core.js | 80 ++++++++++++++++++- .../src/useThemeProps/index.d.ts | 2 + .../src/useThemeProps/index.js | 1 + .../src/useThemeProps/useThemeProps.d.ts | 1 + .../src/useThemeProps/useThemeProps.js | 15 ++++ packages/material-ui/src/Table/Table.js | 24 +++++- .../material-ui/src/TableBody/TableBody.js | 25 ++++-- .../material-ui/src/TableCell/TableCell.js | 19 +++-- .../src/TableFooter/TableFooter.js | 25 ++++-- .../material-ui/src/TableHead/TableHead.js | 25 ++++-- packages/material-ui/src/TableRow/TableRow.js | 23 +++++- .../src/TableSortLabel/TableSortLabel.js | 19 +++-- packages/material-ui/src/styles/index.js | 1 + .../material-ui/src/styles/useThemeProps.js | 9 +++ .../src/useMediaQuery/useMediaQueryTheme.js | 14 +--- pages/performance/table-mui.js | 45 +++++++++++ pages/performance/table-raw.js | 38 +++++++++ 17 files changed, 316 insertions(+), 50 deletions(-) create mode 100644 packages/material-ui-styles/src/useThemeProps/index.d.ts create mode 100644 packages/material-ui-styles/src/useThemeProps/index.js create mode 100644 packages/material-ui-styles/src/useThemeProps/useThemeProps.d.ts create mode 100644 packages/material-ui-styles/src/useThemeProps/useThemeProps.js create mode 100644 packages/material-ui/src/styles/useThemeProps.js create mode 100644 pages/performance/table-mui.js create mode 100644 pages/performance/table-raw.js diff --git a/packages/material-ui-benchmark/src/core.js b/packages/material-ui-benchmark/src/core.js index 49b2f7323cdfc1..cbba0381733bd9 100644 --- a/packages/material-ui-benchmark/src/core.js +++ b/packages/material-ui-benchmark/src/core.js @@ -1,10 +1,15 @@ -/* eslint-disable no-console */ +/* eslint-disable no-console, react/no-array-index-key */ import Benchmark from 'benchmark'; import React from 'react'; import ReactDOMServer from 'react-dom/server'; import { StylesProvider } from '@material-ui/styles'; import ButtonBase from '@material-ui/core/ButtonBase'; +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; const suite = new Benchmark.Suite('core', { onError: event => { @@ -13,6 +18,65 @@ const suite = new Benchmark.Suite('core', { }); Benchmark.options.minSamples = 100; +const data = { name: 'Frozen yoghurt', calories: 159, fat: 6.0, carbs: 24, protein: 4.0 }; +const rows = Array.from(new Array(100)).map(() => data); + +function TableMui() { + return ( + + + + Dessert (100g serving) + Calories + Fat (g) + Carbs (g) + Protein (g) + + + + {rows.map((row, index) => ( + + + {row.name} + + {row.calories} + {row.fat} + {row.carbs} + {row.protein} + + ))} + +
+ ); +} + +function TableRaw() { + return ( + + + + + + + + + + + + {rows.map((row, index) => ( + + + + + + + + ))} + +
Dessert (100g serving)CaloriesFat (g)Carbs (g)Protein (g)
{row.name}{row.calories}{row.fat}{row.carbs}{row.protein}
+ ); +} + function NakedButton(props) { return