Update @material-ui to v4

This commit is contained in:
dominik-zeglen 2019-10-30 15:34:24 +01:00
parent d84ba84e91
commit 74d6794679
276 changed files with 13094 additions and 13943 deletions

6
package-lock.json generated
View file

@ -20308,9 +20308,9 @@
"dev": true "dev": true
}, },
"typescript": { "typescript": {
"version": "3.5.3", "version": "3.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==" "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ=="
}, },
"ua-parser-js": { "ua-parser-js": {
"version": "0.7.20", "version": "0.7.20",

View file

@ -62,7 +62,7 @@
"react-sortable-tree": "^2.6.2", "react-sortable-tree": "^2.6.2",
"react-svg": "^2.2.11", "react-svg": "^2.2.11",
"slugify": "^1.3.4", "slugify": "^1.3.4",
"typescript": "^3.5.3", "typescript": "^3.6.4",
"url-join": "^4.0.1", "url-join": "^4.0.1",
"use-react-router": "^1.0.7" "use-react-router": "^1.0.7"
}, },

View file

@ -1,2 +1,2 @@
export { default } from './AttributeBulkDeleteDialog'; export { default } from "./AttributeBulkDeleteDialog";
export * from './AttributeBulkDeleteDialog'; export * from "./AttributeBulkDeleteDialog";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeDeleteDialog'; export { default } from "./AttributeDeleteDialog";
export * from './AttributeDeleteDialog'; export * from "./AttributeDeleteDialog";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeDetails'; export { default } from "./AttributeDetails";
export * from './AttributeDetails'; export * from "./AttributeDetails";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeList'; export { default } from "./AttributeList";
export * from './AttributeList'; export * from "./AttributeList";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeListPage'; export { default } from "./AttributeListPage";
export * from './AttributeListPage'; export * from "./AttributeListPage";

View file

@ -1,2 +1,2 @@
export { default } from './AttributePage'; export { default } from "./AttributePage";
export * from './AttributePage'; export * from "./AttributePage";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeProperties'; export { default } from "./AttributeProperties";
export * from './AttributeProperties'; export * from "./AttributeProperties";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeValueDeleteDialog'; export { default } from "./AttributeValueDeleteDialog";
export * from './AttributeValueDeleteDialog'; export * from "./AttributeValueDeleteDialog";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeValueEditDialog'; export { default } from "./AttributeValueEditDialog";
export * from './AttributeValueEditDialog'; export * from "./AttributeValueEditDialog";

View file

@ -1,2 +1,2 @@
export { default } from './AttributeValues'; export { default } from "./AttributeValues";
export * from './AttributeValues'; export * from "./AttributeValues";

View file

@ -1,21 +1,26 @@
import CircularProgress from "@material-ui/core/CircularProgress"; import CircularProgress from "@material-ui/core/CircularProgress";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import React from "react"; import React from "react";
const styles = createStyles({ const useStyles = makeStyles(
{
root: { root: {
alignItems: "center", alignItems: "center",
display: "flex", display: "flex",
height: "100vh", height: "100vh",
justifyContent: "center" justifyContent: "center"
} }
}); },
const LoginLoading = withStyles(styles, { name: "LoginLoading" })( { name: "LoginLoading" }
({ classes }: WithStyles<typeof styles>) => ( );
const LoginLoading: React.FC = props => {
const classes = useStyles(props);
return (
<div className={classes.root}> <div className={classes.root}>
<CircularProgress size={128} /> <CircularProgress size={128} />
</div> </div>
)
); );
};
LoginLoading.displayName = "LoginLoading"; LoginLoading.displayName = "LoginLoading";
export default LoginLoading; export default LoginLoading;

View file

@ -1,10 +1,5 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import React from "react"; import React from "react";
@ -19,8 +14,8 @@ export interface FormData {
password: string; password: string;
} }
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
buttonContainer: { buttonContainer: {
display: "flex", display: "flex",
justifyContent: "flex-end" justifyContent: "flex-end"
@ -42,23 +37,21 @@ const styles = theme =>
marginBottom: theme.spacing(3), marginBottom: theme.spacing(3),
padding: theme.spacing(1.5) padding: theme.spacing(1.5)
} }
}); }),
{ name: "LoginCard" }
);
export interface LoginCardProps extends WithStyles<typeof styles> { export interface LoginCardProps {
error: boolean; error: boolean;
disableLoginButton: boolean; disableLoginButton: boolean;
onPasswordRecovery: () => void; onPasswordRecovery: () => void;
onSubmit?(event: FormData); onSubmit?(event: FormData);
} }
const LoginCard = withStyles(styles, { name: "LoginCard" })( const LoginCard: React.FC<LoginCardProps> = props => {
({ const { error, disableLoginButton, onPasswordRecovery, onSubmit } = props;
classes,
error, const classes = useStyles(props);
disableLoginButton,
onPasswordRecovery,
onSubmit
}: LoginCardProps) => {
const intl = useIntl(); const intl = useIntl();
return ( return (
@ -124,7 +117,6 @@ const LoginCard = withStyles(styles, { name: "LoginCard" })(
)} )}
</Form> </Form>
); );
} };
);
LoginCard.displayName = "LoginCard"; LoginCard.displayName = "LoginCard";
export default LoginCard; export default LoginCard;

View file

@ -1,4 +1,4 @@
import { PermissionEnum } from '../types/globalTypes' import { PermissionEnum } from "../types/globalTypes";
import { User } from "./types/User"; import { User } from "./types/User";
export const hasPermission = (permission: PermissionEnum, user: User) => export const hasPermission = (permission: PermissionEnum, user: User) =>

View file

@ -4,19 +4,14 @@ import DialogActions from "@material-ui/core/DialogActions";
import DialogContent from "@material-ui/core/DialogContent"; import DialogContent from "@material-ui/core/DialogContent";
import DialogContentText from "@material-ui/core/DialogContentText"; import DialogContentText from "@material-ui/core/DialogContentText";
import DialogTitle from "@material-ui/core/DialogTitle"; import DialogTitle from "@material-ui/core/DialogTitle";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import { buttonMessages } from "@saleor/intl"; import { buttonMessages } from "@saleor/intl";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
deleteButton: { deleteButton: {
"&:hover": { "&:hover": {
backgroundColor: theme.palette.error.main backgroundColor: theme.palette.error.main
@ -24,18 +19,25 @@ const styles = theme =>
backgroundColor: theme.palette.error.main, backgroundColor: theme.palette.error.main,
color: theme.palette.error.contrastText color: theme.palette.error.contrastText
} }
}); }),
{
name: "CategoryDeleteDialog"
}
);
export interface CategoryDeleteDialogProps extends WithStyles<typeof styles> { export interface CategoryDeleteDialogProps {
open: boolean; open: boolean;
name: string; name: string;
onClose(); onClose();
onConfirm(); onConfirm();
} }
const CategoryDeleteDialog = withStyles(styles, { const CategoryDeleteDialog: React.FC<CategoryDeleteDialogProps> = props => {
name: "CategoryDeleteDialog" const { name, open, onConfirm, onClose } = props;
})(({ classes, name, open, onConfirm, onClose }: CategoryDeleteDialogProps) => (
const classes = useStyles(props);
return (
<Dialog onClose={onClose} open={open}> <Dialog onClose={onClose} open={open}>
<DialogTitle> <DialogTitle>
<FormattedMessage <FormattedMessage
@ -67,6 +69,8 @@ const CategoryDeleteDialog = withStyles(styles, {
</Button> </Button>
</DialogActions> </DialogActions>
</Dialog> </Dialog>
)); );
};
CategoryDeleteDialog.displayName = "CategoryDeleteDialog"; CategoryDeleteDialog.displayName = "CategoryDeleteDialog";
export default CategoryDeleteDialog; export default CategoryDeleteDialog;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -20,8 +15,8 @@ import TablePagination from "@saleor/components/TablePagination";
import { maybe, renderCollection } from "@saleor/misc"; import { maybe, renderCollection } from "@saleor/misc";
import { ListActions, ListProps } from "@saleor/types"; import { ListActions, ListProps } from "@saleor/types";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
[theme.breakpoints.up("lg")]: { [theme.breakpoints.up("lg")]: {
colName: { colName: {
width: 840 width: 840
@ -45,7 +40,9 @@ const styles = theme =>
tableRow: { tableRow: {
cursor: "pointer" cursor: "pointer"
} }
}); }),
{ name: "CategoryList" }
);
interface CategoryListProps extends ListProps, ListActions { interface CategoryListProps extends ListProps, ListActions {
categories?: CategoryFragment[]; categories?: CategoryFragment[];
@ -55,10 +52,9 @@ interface CategoryListProps extends ListProps, ListActions {
const numberOfColumns = 4; const numberOfColumns = 4;
const CategoryList = withStyles(styles, { name: "CategoryList" })( const CategoryList: React.FC<CategoryListProps> = props => {
({ const {
categories, categories,
classes,
disabled, disabled,
settings, settings,
pageInfo, pageInfo,
@ -72,7 +68,11 @@ const CategoryList = withStyles(styles, { name: "CategoryList" })(
onPreviousPage, onPreviousPage,
onUpdateListSettings, onUpdateListSettings,
onRowClick onRowClick
}: CategoryListProps & WithStyles<typeof styles>) => ( } = props;
const classes = useStyles(props);
return (
<Table> <Table>
<TableHead <TableHead
colSpan={numberOfColumns} colSpan={numberOfColumns}
@ -175,7 +175,8 @@ const CategoryList = withStyles(styles, { name: "CategoryList" })(
)} )}
</TableBody> </TableBody>
</Table> </Table>
)
); );
};
CategoryList.displayName = "CategoryList"; CategoryList.displayName = "CategoryList";
export default CategoryList; export default CategoryList;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -25,8 +20,8 @@ import { ListActions, ListProps } from "@saleor/types";
import React from "react"; import React from "react";
import { CategoryDetails_category_products_edges_node } from "../../types/CategoryDetails"; import { CategoryDetails_category_products_edges_node } from "../../types/CategoryDetails";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
[theme.breakpoints.up("lg")]: { [theme.breakpoints.up("lg")]: {
colName: { colName: {
width: "auto" width: "auto"
@ -69,20 +64,20 @@ const styles = theme =>
textRight: { textRight: {
textAlign: "right" textAlign: "right"
} }
}); }),
{
name: "CategoryProductList"
}
);
interface CategoryProductListProps interface CategoryProductListProps extends ListProps, ListActions {
extends ListProps,
ListActions,
WithStyles<typeof styles> {
products: CategoryDetails_category_products_edges_node[]; products: CategoryDetails_category_products_edges_node[];
} }
export const CategoryProductList = withStyles(styles, { export const CategoryProductList: React.FC<
name: "CategoryProductList" CategoryProductListProps
})( > = props => {
({ const {
classes,
disabled, disabled,
isChecked, isChecked,
pageInfo, pageInfo,
@ -94,7 +89,9 @@ export const CategoryProductList = withStyles(styles, {
onNextPage, onNextPage,
onPreviousPage, onPreviousPage,
onRowClick onRowClick
}: CategoryProductListProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const numberOfColumns = 5; const numberOfColumns = 5;
@ -145,9 +142,7 @@ export const CategoryProductList = withStyles(styles, {
<TableRow> <TableRow>
<TablePagination <TablePagination
colSpan={numberOfColumns} colSpan={numberOfColumns}
hasNextPage={ hasNextPage={pageInfo && !disabled ? pageInfo.hasNextPage : false}
pageInfo && !disabled ? pageInfo.hasNextPage : false
}
onNextPage={onNextPage} onNextPage={onNextPage}
hasPreviousPage={ hasPreviousPage={
pageInfo && !disabled ? pageInfo.hasPreviousPage : false pageInfo && !disabled ? pageInfo.hasPreviousPage : false
@ -237,7 +232,7 @@ export const CategoryProductList = withStyles(styles, {
</Table> </Table>
</div> </div>
); );
} };
);
CategoryProductList.displayName = "CategoryProductList"; CategoryProductList.displayName = "CategoryProductList";
export default CategoryProductList; export default CategoryProductList;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import React from "react"; import React from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
@ -19,8 +14,8 @@ import Skeleton from "@saleor/components/Skeleton";
import { commonMessages } from "@saleor/intl"; import { commonMessages } from "@saleor/intl";
import { CollectionDetails_collection_backgroundImage } from "../../types/CollectionDetails"; import { CollectionDetails_collection_backgroundImage } from "../../types/CollectionDetails";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
PhotosIcon: { PhotosIcon: {
height: "64px", height: "64px",
margin: "0 auto", margin: "0 auto",
@ -50,7 +45,11 @@ const styles = theme =>
position: "relative", position: "relative",
width: 148 width: 148
} }
}); }),
{
name: "CollectionImage"
}
);
export interface CollectionImageProps { export interface CollectionImageProps {
data: { data: {
@ -62,16 +61,11 @@ export interface CollectionImageProps {
onImageUpload: (file: File) => void; onImageUpload: (file: File) => void;
} }
export const CollectionImage = withStyles(styles)( export const CollectionImage: React.FC<CollectionImageProps> = props => {
({ const { data, onImageUpload, image, onChange, onImageDelete } = props;
classes,
data,
onImageUpload,
image,
onChange,
onImageDelete
}: CollectionImageProps & WithStyles<typeof styles>) => {
const anchor = React.useRef<HTMLInputElement>(); const anchor = React.useRef<HTMLInputElement>();
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const handleImageUploadButtonClick = () => anchor.current.click(); const handleImageUploadButtonClick = () => anchor.current.click();
@ -138,7 +132,7 @@ export const CollectionImage = withStyles(styles)(
)} )}
</Card> </Card>
); );
} };
);
CollectionImage.displayName = "CollectionImage"; CollectionImage.displayName = "CollectionImage";
export default CollectionImage; export default CollectionImage;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -21,8 +16,8 @@ import { maybe, renderCollection } from "@saleor/misc";
import { ListActions, ListProps } from "@saleor/types"; import { ListActions, ListProps } from "@saleor/types";
import { CollectionList_collections_edges_node } from "../../types/CollectionList"; import { CollectionList_collections_edges_node } from "../../types/CollectionList";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
[theme.breakpoints.up("lg")]: { [theme.breakpoints.up("lg")]: {
colAvailability: { colAvailability: {
width: 240 width: 240
@ -42,20 +37,18 @@ const styles = theme =>
tableRow: { tableRow: {
cursor: "pointer" as "pointer" cursor: "pointer" as "pointer"
} }
}); }),
{ name: "CollectionList" }
);
interface CollectionListProps interface CollectionListProps extends ListProps, ListActions {
extends ListProps,
ListActions,
WithStyles<typeof styles> {
collections: CollectionList_collections_edges_node[]; collections: CollectionList_collections_edges_node[];
} }
const numberOfColumns = 5; const numberOfColumns = 5;
const CollectionList = withStyles(styles, { name: "CollectionList" })( const CollectionList: React.FC<CollectionListProps> = props => {
({ const {
classes,
collections, collections,
disabled, disabled,
settings, settings,
@ -69,7 +62,9 @@ const CollectionList = withStyles(styles, { name: "CollectionList" })(
toggle, toggle,
toggleAll, toggleAll,
toolbar toolbar
}: CollectionListProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
return ( return (
@ -134,10 +129,7 @@ const CollectionList = withStyles(styles, { name: "CollectionList" })(
/> />
</TableCell> </TableCell>
<TableCell className={classes.colName} data-tc="name"> <TableCell className={classes.colName} data-tc="name">
{maybe<React.ReactNode>( {maybe<React.ReactNode>(() => collection.name, <Skeleton />)}
() => collection.name,
<Skeleton />
)}
</TableCell> </TableCell>
<TableCell className={classes.colProducts}> <TableCell className={classes.colProducts}>
{maybe<React.ReactNode>( {maybe<React.ReactNode>(
@ -184,7 +176,7 @@ const CollectionList = withStyles(styles, { name: "CollectionList" })(
</TableBody> </TableBody>
</Table> </Table>
); );
} };
);
CollectionList.displayName = "CollectionList"; CollectionList.displayName = "CollectionList";
export default CollectionList; export default CollectionList;

View file

@ -1,12 +1,7 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import Card from "@material-ui/core/Card"; import Card from "@material-ui/core/Card";
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -29,8 +24,8 @@ import { maybe, renderCollection } from "../../../misc";
import { ListActions, PageListProps } from "../../../types"; import { ListActions, PageListProps } from "../../../types";
import { CollectionDetails_collection } from "../../types/CollectionDetails"; import { CollectionDetails_collection } from "../../types/CollectionDetails";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
colActions: { colActions: {
"&:last-child": { "&:last-child": {
paddingRight: 0 paddingRight: 0
@ -56,21 +51,19 @@ const styles = theme =>
tableRow: { tableRow: {
cursor: "pointer" cursor: "pointer"
} }
}); }),
{ name: "CollectionProducts" }
);
export interface CollectionProductsProps export interface CollectionProductsProps extends PageListProps, ListActions {
extends PageListProps,
ListActions,
WithStyles<typeof styles> {
collection: CollectionDetails_collection; collection: CollectionDetails_collection;
onProductUnassign: (id: string, event: React.MouseEvent<any>) => void; onProductUnassign: (id: string, event: React.MouseEvent<any>) => void;
} }
const numberOfColumns = 5; const numberOfColumns = 5;
const CollectionProducts = withStyles(styles, { name: "CollectionProducts" })( const CollectionProducts: React.FC<CollectionProductsProps> = props => {
({ const {
classes,
collection, collection,
disabled, disabled,
onAdd, onAdd,
@ -84,7 +77,9 @@ const CollectionProducts = withStyles(styles, { name: "CollectionProducts" })(
toggle, toggle,
toggleAll, toggleAll,
toolbar toolbar
}: CollectionProductsProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
return ( return (
@ -124,9 +119,7 @@ const CollectionProducts = withStyles(styles, { name: "CollectionProducts" })(
colSpan={numberOfColumns} colSpan={numberOfColumns}
selected={selected} selected={selected}
disabled={disabled} disabled={disabled}
items={maybe(() => items={maybe(() => collection.products.edges.map(edge => edge.node))}
collection.products.edges.map(edge => edge.node)
)}
toggleAll={toggleAll} toggleAll={toggleAll}
toolbar={toolbar} toolbar={toolbar}
> >
@ -242,7 +235,7 @@ const CollectionProducts = withStyles(styles, { name: "CollectionProducts" })(
</Table> </Table>
</Card> </Card>
); );
} };
);
CollectionProducts.displayName = "CollectionProducts"; CollectionProducts.displayName = "CollectionProducts";
export default CollectionProducts; export default CollectionProducts;

View file

@ -1,11 +1,6 @@
import Card from "@material-ui/core/Card"; import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent"; import CardContent from "@material-ui/core/CardContent";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import React from "react"; import React from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
@ -15,21 +10,23 @@ import { ControlledCheckbox } from "@saleor/components/ControlledCheckbox";
import { ShopInfo_shop_permissions } from "@saleor/components/Shop/types/ShopInfo"; import { ShopInfo_shop_permissions } from "@saleor/components/Shop/types/ShopInfo";
import Skeleton from "@saleor/components/Skeleton"; import Skeleton from "@saleor/components/Skeleton";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
checkboxContainer: { checkboxContainer: {
marginTop: theme.spacing() marginTop: theme.spacing()
}, },
hr: { hr: {
backgroundColor: theme.overrides.MuiCard.root.borderColor, backgroundColor: theme.palette.divider,
border: "none", border: "none",
height: 1, height: 1,
marginBottom: 0, marginBottom: 0,
marginTop: 0 marginTop: 0
} }
}); }),
{ name: "AccountPermissions" }
);
interface AccountPermissionsProps extends WithStyles<typeof styles> { interface AccountPermissionsProps {
permissions: ShopInfo_shop_permissions[]; permissions: ShopInfo_shop_permissions[];
data: { data: {
hasFullAccess: boolean; hasFullAccess: boolean;
@ -39,14 +36,10 @@ interface AccountPermissionsProps extends WithStyles<typeof styles> {
onChange: (event: React.ChangeEvent<any>, cb?: () => void) => void; onChange: (event: React.ChangeEvent<any>, cb?: () => void) => void;
} }
const AccountPermissions = withStyles(styles, { name: "AccountPermissions" })( const AccountPermissions: React.FC<AccountPermissionsProps> = props => {
({ const { data, disabled, permissions, onChange } = props;
classes,
data, const classes = useStyles(props);
disabled,
permissions,
onChange
}: AccountPermissionsProps) => {
const intl = useIntl(); const intl = useIntl();
const handleFullAccessChange = (event: React.ChangeEvent<any>) => const handleFullAccessChange = (event: React.ChangeEvent<any>) =>
@ -121,7 +114,7 @@ const AccountPermissions = withStyles(styles, { name: "AccountPermissions" })(
)} )}
</Card> </Card>
); );
} };
);
AccountPermissions.displayName = "AccountPermissions"; AccountPermissions.displayName = "AccountPermissions";
export default AccountPermissions; export default AccountPermissions;

View file

@ -3,12 +3,7 @@ import Dialog from "@material-ui/core/Dialog";
import DialogActions from "@material-ui/core/DialogActions"; import DialogActions from "@material-ui/core/DialogActions";
import DialogContent from "@material-ui/core/DialogContent"; import DialogContent from "@material-ui/core/DialogContent";
import DialogTitle from "@material-ui/core/DialogTitle"; import DialogTitle from "@material-ui/core/DialogTitle";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
@ -18,8 +13,8 @@ import ConfirmButton, {
ConfirmButtonTransitionState ConfirmButtonTransitionState
} from "../ConfirmButton/ConfirmButton"; } from "../ConfirmButton/ConfirmButton";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
deleteButton: { deleteButton: {
"&:hover": { "&:hover": {
backgroundColor: theme.palette.error.main backgroundColor: theme.palette.error.main
@ -27,9 +22,11 @@ const styles = theme =>
backgroundColor: theme.palette.error.main, backgroundColor: theme.palette.error.main,
color: theme.palette.error.contrastText color: theme.palette.error.contrastText
} }
}); }),
{ name: "ActionDialog" }
);
interface ActionDialogProps extends WithStyles<typeof styles> { interface ActionDialogProps {
children?: React.ReactNode; children?: React.ReactNode;
confirmButtonLabel?: string; confirmButtonLabel?: string;
confirmButtonState: ConfirmButtonTransitionState; confirmButtonState: ConfirmButtonTransitionState;
@ -40,10 +37,9 @@ interface ActionDialogProps extends WithStyles<typeof styles> {
onConfirm(); onConfirm();
} }
const ActionDialog = withStyles(styles, { name: "ActionDialog" })( const ActionDialog: React.FC<ActionDialogProps> = props => {
({ const {
children, children,
classes,
confirmButtonLabel, confirmButtonLabel,
confirmButtonState, confirmButtonState,
open, open,
@ -51,7 +47,9 @@ const ActionDialog = withStyles(styles, { name: "ActionDialog" })(
variant, variant,
onConfirm, onConfirm,
onClose onClose
}: ActionDialogProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
return ( return (
@ -79,7 +77,7 @@ const ActionDialog = withStyles(styles, { name: "ActionDialog" })(
</DialogActions> </DialogActions>
</Dialog> </Dialog>
); );
} };
);
ActionDialog.displayName = "ActionDialog"; ActionDialog.displayName = "ActionDialog";
export default ActionDialog; export default ActionDialog;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import React from "react"; import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
@ -16,16 +11,15 @@ import SingleAutocompleteSelectField, {
SingleAutocompleteChoiceType SingleAutocompleteChoiceType
} from "../SingleAutocompleteSelectField"; } from "../SingleAutocompleteSelectField";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
display: "grid", display: "grid",
gridColumnGap: theme.spacing(2), gridColumnGap: theme.spacing(2),
gridTemplateColumns: "1fr 1fr" gridTemplateColumns: "1fr 1fr"
} }
}); }));
interface AddressEditProps extends WithStyles<typeof styles> { interface AddressEditProps {
countries: SingleAutocompleteChoiceType[]; countries: SingleAutocompleteChoiceType[];
countryDisplayValue: string; countryDisplayValue: string;
data: AddressTypeInput; data: AddressTypeInput;
@ -35,9 +29,8 @@ interface AddressEditProps extends WithStyles<typeof styles> {
onCountryChange(event: React.ChangeEvent<any>); onCountryChange(event: React.ChangeEvent<any>);
} }
const AddressEdit = withStyles(styles, { name: "AddressEdit" })( const AddressEdit: React.FC<AddressEditProps> = props => {
({ const {
classes,
countries, countries,
countryDisplayValue, countryDisplayValue,
data, data,
@ -45,7 +38,9 @@ const AddressEdit = withStyles(styles, { name: "AddressEdit" })(
errors, errors,
onChange, onChange,
onCountryChange onCountryChange
}: AddressEditProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
return ( return (
@ -202,7 +197,6 @@ const AddressEdit = withStyles(styles, { name: "AddressEdit" })(
</div> </div>
</> </>
); );
} };
);
AddressEdit.displayName = "AddressEdit"; AddressEdit.displayName = "AddressEdit";
export default AddressEdit; export default AddressEdit;

View file

@ -1,10 +1,5 @@
import Portal from "@material-ui/core/Portal"; import Portal from "@material-ui/core/Portal";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import ArrowBackIcon from "@material-ui/icons/ArrowBack"; import ArrowBackIcon from "@material-ui/icons/ArrowBack";
import React from "react"; import React from "react";
@ -16,8 +11,7 @@ export interface AppHeaderProps {
onBack(); onBack();
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
backArrow: { backArrow: {
fontSize: 30 fontSize: 30
}, },
@ -48,13 +42,13 @@ const styles = theme =>
marginLeft: theme.spacing(), marginLeft: theme.spacing(),
textTransform: "uppercase" textTransform: "uppercase"
} }
}); }));
const AppHeader = withStyles(styles, { name: "AppHeader" })( const AppHeader: React.FC<AppHeaderProps> = props => {
({ const { children, onBack } = props;
children,
classes, const classes = useStyles(props);
onBack
}: AppHeaderProps & WithStyles<typeof styles>) => ( return (
<AppHeaderContext.Consumer> <AppHeaderContext.Consumer>
{anchor => {anchor =>
anchor ? ( anchor ? (
@ -71,7 +65,7 @@ const AppHeader = withStyles(styles, { name: "AppHeader" })(
) : null ) : null
} }
</AppHeaderContext.Consumer> </AppHeaderContext.Consumer>
)
); );
};
AppHeader.displayName = "AppHeader"; AppHeader.displayName = "AppHeader";
export default AppHeader; export default AppHeader;

View file

@ -1,2 +1,2 @@
export { default } from './AppHeader'; export { default } from "./AppHeader";
export * from './AppHeader'; export * from "./AppHeader";

View file

@ -8,7 +8,7 @@ import MenuItem from "@material-ui/core/MenuItem";
import Menu from "@material-ui/core/MenuList"; import Menu from "@material-ui/core/MenuList";
import Paper from "@material-ui/core/Paper"; import Paper from "@material-ui/core/Paper";
import Popper from "@material-ui/core/Popper"; import Popper from "@material-ui/core/Popper";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
import SVG from "react-inlinesvg"; import SVG from "react-inlinesvg";
@ -36,8 +36,8 @@ import createMenuStructure from "./menuStructure";
import ResponsiveDrawer from "./ResponsiveDrawer"; import ResponsiveDrawer from "./ResponsiveDrawer";
import ThemeSwitch from "./ThemeSwitch"; import ThemeSwitch from "./ThemeSwitch";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
appAction: { appAction: {
[theme.breakpoints.down("sm")]: { [theme.breakpoints.down("sm")]: {
left: 0, left: 0,
@ -263,23 +263,19 @@ const styles = theme =>
viewContainer: { viewContainer: {
minHeight: `calc(100vh - ${theme.spacing(2) + appLoaderHeight + 70}px)` minHeight: `calc(100vh - ${theme.spacing(2) + appLoaderHeight + 70}px)`
} }
}); }),
{
name: "AppLayout"
}
);
interface AppLayoutProps { interface AppLayoutProps {
children: React.ReactNode; children: React.ReactNode;
} }
const AppLayout = withStyles(styles, { const AppLayout = withRouter<AppLayoutProps & RouteComponentProps<any>, any>(
name: "AppLayout" ({ children, location }: AppLayoutProps & RouteComponentProps<any>) => {
})( const classes = useStyles({});
withRouter<AppLayoutProps & RouteComponentProps<any>, any>(
({
classes,
children,
location
}: AppLayoutProps &
WithStyles<typeof styles> &
RouteComponentProps<any>) => {
const { isDark, toggleTheme } = useTheme(); const { isDark, toggleTheme } = useTheme();
const [isMenuSmall, setMenuSmall] = useLocalStorage("isMenuSmall", false); const [isMenuSmall, setMenuSmall] = useLocalStorage("isMenuSmall", false);
const [isDrawerOpened, setDrawerState] = React.useState(false); const [isDrawerOpened, setDrawerState] = React.useState(false);
@ -314,10 +310,7 @@ const AppLayout = withStyles(styles, {
navigate(staffMemberDetailsUrl(user.id)); navigate(staffMemberDetailsUrl(user.id));
}; };
const handleMenuItemClick = ( const handleMenuItemClick = (url: string, event: React.MouseEvent<any>) => {
url: string,
event: React.MouseEvent<any>
) => {
event.stopPropagation(); event.stopPropagation();
event.preventDefault(); event.preventDefault();
setDrawerState(false); setDrawerState(false);
@ -347,9 +340,7 @@ const AppLayout = withStyles(styles, {
})} })}
> >
<SVG <SVG
src={ src={isMenuSmall ? saleorDarkLogoSmall : saleorDarkLogo}
isMenuSmall ? saleorDarkLogoSmall : saleorDarkLogo
}
/> />
</div> </div>
<Hidden smDown> <Hidden smDown>
@ -364,9 +355,7 @@ const AppLayout = withStyles(styles, {
</div> </div>
</Hidden> </Hidden>
<MenuList <MenuList
className={ className={isMenuSmall ? classes.menuSmall : classes.menu}
isMenuSmall ? classes.menuSmall : classes.menu
}
menuItems={menuStructure} menuItems={menuStructure}
isMenuSmall={!isMenuSmall} isMenuSmall={!isMenuSmall}
location={location.pathname} location={location.pathname}
@ -420,10 +409,7 @@ const AppLayout = withStyles(styles, {
<Chip <Chip
avatar={ avatar={
user.avatar && ( user.avatar && (
<Avatar <Avatar alt="user" src={user.avatar.url} />
alt="user"
src={user.avatar.url}
/>
) )
} }
className={classes.userChip} className={classes.userChip}
@ -459,9 +445,7 @@ const AppLayout = withStyles(styles, {
> >
<Paper> <Paper>
<ClickAwayListener <ClickAwayListener
onClickAway={() => onClickAway={() => setMenuState(false)}
setMenuState(false)
}
mouseEvent="onClick" mouseEvent="onClick"
> >
<Menu> <Menu>
@ -505,7 +489,6 @@ const AppLayout = withStyles(styles, {
</AppProgressProvider> </AppProgressProvider>
); );
} }
)
); );
export default AppLayout; export default AppLayout;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
@ -24,8 +19,7 @@ import { orderDraftListUrl, orderListUrl } from "../../orders/urls";
import MenuNested from "./MenuNested"; import MenuNested from "./MenuNested";
import { IMenuItem } from "./menuStructure"; import { IMenuItem } from "./menuStructure";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
menuIcon: { menuIcon: {
"& svg": { "& svg": {
height: 32, height: 32,
@ -159,7 +153,7 @@ const styles = theme =>
subMenuDrawerOpen: { subMenuDrawerOpen: {
width: `100vw` width: `100vw`
} }
}); }));
interface MenuListProps { interface MenuListProps {
className?: string; className?: string;
@ -176,9 +170,8 @@ export interface IActiveSubMenu {
label: string | null; label: string | null;
} }
const MenuList = withStyles(styles, { name: "MenuList" })( const MenuList: React.FC<MenuListProps> = props => {
({ const {
classes,
className, className,
menuItems, menuItems,
isMenuSmall, isMenuSmall,
@ -186,7 +179,10 @@ const MenuList = withStyles(styles, { name: "MenuList" })(
user, user,
renderConfigure, renderConfigure,
onMenuItemClick onMenuItemClick
}: MenuListProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const { isDark } = useTheme(); const { isDark } = useTheme();
const [activeSubMenu, setActiveSubMenu] = React.useState<IActiveSubMenu>({ const [activeSubMenu, setActiveSubMenu] = React.useState<IActiveSubMenu>({
isActive: false, isActive: false,
@ -239,9 +235,7 @@ const MenuList = withStyles(styles, { name: "MenuList" })(
if ( if (
menuItem.permission && menuItem.permission &&
!user.permissions !user.permissions.map(perm => perm.code).includes(menuItem.permission)
.map(perm => perm.code)
.includes(menuItem.permission)
) { ) {
return null; return null;
} }
@ -360,6 +354,7 @@ const MenuList = withStyles(styles, { name: "MenuList" })(
)} )}
</div> </div>
); );
} };
);
MenuList.displayName = "MenuList";
export default MenuList; export default MenuList;

View file

@ -1,10 +1,5 @@
import Hidden from "@material-ui/core/Hidden"; import Hidden from "@material-ui/core/Hidden";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
@ -17,8 +12,7 @@ import { drawerWidthExpanded } from "./consts";
import { IActiveSubMenu } from "./MenuList"; import { IActiveSubMenu } from "./MenuList";
import { IMenuItem } from "./menuStructure"; import { IMenuItem } from "./menuStructure";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
menuListNested: { menuListNested: {
background: theme.palette.background.paper, background: theme.palette.background.paper,
height: "100vh", height: "100vh",
@ -99,7 +93,7 @@ const styles = theme =>
display: "inline", display: "inline",
paddingLeft: 10 paddingLeft: 10
} }
}); }));
export interface MenuNestedProps { export interface MenuNestedProps {
activeItem: IActiveSubMenu; activeItem: IActiveSubMenu;
@ -112,17 +106,19 @@ export interface MenuNestedProps {
onMenuItemClick: (url: string, event: React.MouseEvent<any>) => void; onMenuItemClick: (url: string, event: React.MouseEvent<any>) => void;
} }
const MenuNested = withStyles(styles, { name: "MenuNested" })( const MenuNested: React.FC<MenuNestedProps> = props => {
({ const {
activeItem, activeItem,
ariaLabel, ariaLabel,
classes,
closeSubMenu, closeSubMenu,
icon, icon,
menuItem, menuItem,
onMenuItemClick, onMenuItemClick,
title title
}: MenuNestedProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const menuItems = menuItem.children; const menuItems = menuItem.children;
const { isDark } = useTheme(); const { isDark } = useTheme();
const closeMenu = (menuItemUrl, event) => { const closeMenu = (menuItemUrl, event) => {
@ -174,8 +170,7 @@ const MenuNested = withStyles(styles, { name: "MenuNested" })(
</div> </div>
</Hidden> </Hidden>
</Typography> </Typography>
{menuItems.map(item => { {menuItems.map(item => (
return (
<a <a
className={classNames(classes.menuListNestedItem)} className={classNames(classes.menuListNestedItem)}
href={createHref(item.url)} href={createHref(item.url)}
@ -183,15 +178,13 @@ const MenuNested = withStyles(styles, { name: "MenuNested" })(
onClick={event => closeMenu(item.url, event)} onClick={event => closeMenu(item.url, event)}
key={item.label} key={item.label}
> >
<Typography aria-label={item.ariaLabel}> <Typography aria-label={item.ariaLabel}>{item.label}</Typography>
{item.label}
</Typography>
</a> </a>
); ))}
})}
</div> </div>
</> </>
); );
} };
);
MenuNested.displayName = "MenuNested";
export default MenuNested; export default MenuNested;

View file

@ -1,16 +1,11 @@
import Drawer from "@material-ui/core/Drawer"; import Drawer from "@material-ui/core/Drawer";
import Hidden from "@material-ui/core/Hidden"; import Hidden from "@material-ui/core/Hidden";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
import { drawerWidth, drawerWidthExpanded } from "./consts"; import { drawerWidth, drawerWidthExpanded } from "./consts";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
drawerDesktop: { drawerDesktop: {
backgroundColor: theme.palette.background.paper, backgroundColor: theme.palette.background.paper,
border: "none", border: "none",
@ -29,17 +24,23 @@ const styles = theme =>
drawerMobile: { drawerMobile: {
width: drawerWidthExpanded width: drawerWidthExpanded
} }
}); }),
{ name: "ResponsiveDrawer" }
);
interface ResponsiveDrawerProps extends WithStyles<typeof styles> { interface ResponsiveDrawerProps {
children?: React.ReactNode; children?: React.ReactNode;
open: boolean; open: boolean;
small: boolean; small: boolean;
onClose?(); onClose?();
} }
const ResponsiveDrawer = withStyles(styles, { name: "ResponsiveDrawer" })( const ResponsiveDrawer: React.FC<ResponsiveDrawerProps> = props => {
({ children, classes, onClose, open, small }: ResponsiveDrawerProps) => ( const { children, onClose, open, small } = props;
const classes = useStyles(props);
return (
<> <>
<Hidden smDown> <Hidden smDown>
<Drawer <Drawer
@ -63,6 +64,6 @@ const ResponsiveDrawer = withStyles(styles, { name: "ResponsiveDrawer" })(
</Drawer> </Drawer>
</Hidden> </Hidden>
</> </>
)
); );
};
export default ResponsiveDrawer; export default ResponsiveDrawer;

View file

@ -1,11 +1,12 @@
import { Theme, withStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import Switch, { SwitchProps } from "@material-ui/core/Switch"; import Switch, { SwitchProps } from "@material-ui/core/Switch";
import React from "react"; import React from "react";
import MoonIcon from "../../icons/Moon"; import MoonIcon from "../../icons/Moon";
import SunIcon from "../../icons/Sun"; import SunIcon from "../../icons/Sun";
const switchStyles = theme => ({ const useStyles = makeStyles(
theme => ({
bar: { bar: {
"$colorPrimary$checked + &": { "$colorPrimary$checked + &": {
backgroundColor: theme.palette.background.paper backgroundColor: theme.palette.background.paper
@ -28,16 +29,24 @@ const switchStyles = theme => ({
}, },
width: 58 width: 58
} }
}); }),
const ThemeSwitch = withStyles(switchStyles, { {
name: "ThemeSwitch" name: "ThemeSwitch"
})((props: SwitchProps) => ( }
);
const ThemeSwitch: React.FC<SwitchProps> = props => {
const classes = useStyles(props);
return (
<Switch <Switch
{...props} {...props}
classes={classes}
color="primary" color="primary"
icon={<SunIcon />} icon={<SunIcon />}
checkedIcon={<MoonIcon />} checkedIcon={<MoonIcon />}
/> />
)); );
};
ThemeSwitch.displayName = "ThemeSwitch"; ThemeSwitch.displayName = "ThemeSwitch";
export default ThemeSwitch; export default ThemeSwitch;

View file

@ -1,2 +1,2 @@
export { default } from './AppLayout'; export { default } from "./AppLayout";
export * from './AppLayout'; export * from "./AppLayout";

View file

@ -4,7 +4,7 @@ import Dialog from "@material-ui/core/Dialog";
import DialogActions from "@material-ui/core/DialogActions"; import DialogActions from "@material-ui/core/DialogActions";
import DialogContent from "@material-ui/core/DialogContent"; import DialogContent from "@material-ui/core/DialogContent";
import DialogTitle from "@material-ui/core/DialogTitle"; import DialogTitle from "@material-ui/core/DialogTitle";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -27,7 +27,7 @@ export interface FormData {
query: string; query: string;
} }
const styles = createStyles({ const useStyles = makeStyles({
avatar: { avatar: {
"&:first-child": { "&:first-child": {
paddingLeft: 0 paddingLeft: 0
@ -44,7 +44,7 @@ const styles = createStyles({
} }
}); });
interface AssignCategoriesDialogProps extends WithStyles<typeof styles> { interface AssignCategoriesDialogProps {
categories: SearchCategories_search_edges_node[]; categories: SearchCategories_search_edges_node[];
confirmButtonState: ConfirmButtonTransitionState; confirmButtonState: ConfirmButtonTransitionState;
open: boolean; open: boolean;
@ -71,11 +71,8 @@ function handleCategoryAssign(
} }
} }
const AssignCategoriesDialog = withStyles(styles, { const AssignCategoriesDialog: React.FC<AssignCategoriesDialogProps> = props => {
name: "AssignCategoriesDialog" const {
})(
({
classes,
confirmButtonState, confirmButtonState,
open, open,
loading, loading,
@ -83,7 +80,9 @@ const AssignCategoriesDialog = withStyles(styles, {
onClose, onClose,
onFetch, onFetch,
onSubmit onSubmit
}: AssignCategoriesDialogProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const [query, onQueryChange] = useSearchQuery(onFetch); const [query, onQueryChange] = useSearchQuery(onFetch);
const [selectedCategories, setSelectedCategories] = React.useState< const [selectedCategories, setSelectedCategories] = React.useState<
@ -178,7 +177,6 @@ const AssignCategoriesDialog = withStyles(styles, {
</DialogActions> </DialogActions>
</Dialog> </Dialog>
); );
} };
);
AssignCategoriesDialog.displayName = "AssignCategoriesDialog"; AssignCategoriesDialog.displayName = "AssignCategoriesDialog";
export default AssignCategoriesDialog; export default AssignCategoriesDialog;

View file

@ -4,7 +4,7 @@ import Dialog from "@material-ui/core/Dialog";
import DialogActions from "@material-ui/core/DialogActions"; import DialogActions from "@material-ui/core/DialogActions";
import DialogContent from "@material-ui/core/DialogContent"; import DialogContent from "@material-ui/core/DialogContent";
import DialogTitle from "@material-ui/core/DialogTitle"; import DialogTitle from "@material-ui/core/DialogTitle";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -27,7 +27,7 @@ export interface FormData {
query: string; query: string;
} }
const styles = createStyles({ const useStyles = makeStyles({
avatar: { avatar: {
"&:first-child": { "&:first-child": {
paddingLeft: 0 paddingLeft: 0
@ -44,7 +44,7 @@ const styles = createStyles({
} }
}); });
interface AssignCollectionDialogProps extends WithStyles<typeof styles> { interface AssignCollectionDialogProps {
collections: SearchCollections_search_edges_node[]; collections: SearchCollections_search_edges_node[];
confirmButtonState: ConfirmButtonTransitionState; confirmButtonState: ConfirmButtonTransitionState;
open: boolean; open: boolean;
@ -71,11 +71,8 @@ function handleCollectionAssign(
} }
} }
const AssignCollectionDialog = withStyles(styles, { const AssignCollectionDialog: React.FC<AssignCollectionDialogProps> = props => {
name: "AssignCollectionDialog" const {
})(
({
classes,
confirmButtonState, confirmButtonState,
open, open,
loading, loading,
@ -83,7 +80,9 @@ const AssignCollectionDialog = withStyles(styles, {
onClose, onClose,
onFetch, onFetch,
onSubmit onSubmit
}: AssignCollectionDialogProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const [query, onQueryChange] = useSearchQuery(onFetch); const [query, onQueryChange] = useSearchQuery(onFetch);
const [selectedCollections, setSelectedCollections] = React.useState< const [selectedCollections, setSelectedCollections] = React.useState<
@ -129,8 +128,7 @@ const AssignCollectionDialog = withStyles(styles, {
{collections && {collections &&
collections.map(collection => { collections.map(collection => {
const isSelected = !!selectedCollections.find( const isSelected = !!selectedCollections.find(
selectedCollection => selectedCollection => selectedCollection.id === collection.id
selectedCollection.id === collection.id
); );
return ( return (
@ -179,7 +177,6 @@ const AssignCollectionDialog = withStyles(styles, {
</DialogActions> </DialogActions>
</Dialog> </Dialog>
); );
} };
);
AssignCollectionDialog.displayName = "AssignCollectionDialog"; AssignCollectionDialog.displayName = "AssignCollectionDialog";
export default AssignCollectionDialog; export default AssignCollectionDialog;

View file

@ -4,7 +4,7 @@ import Dialog from "@material-ui/core/Dialog";
import DialogActions from "@material-ui/core/DialogActions"; import DialogActions from "@material-ui/core/DialogActions";
import DialogContent from "@material-ui/core/DialogContent"; import DialogContent from "@material-ui/core/DialogContent";
import DialogTitle from "@material-ui/core/DialogTitle"; import DialogTitle from "@material-ui/core/DialogTitle";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -29,7 +29,7 @@ export interface FormData {
query: string; query: string;
} }
const styles = createStyles({ const useStyles = makeStyles({
avatar: { avatar: {
"&:first-child": { "&:first-child": {
paddingLeft: 0 paddingLeft: 0
@ -77,11 +77,8 @@ function handleProductAssign(
} }
} }
const AssignProductDialog = withStyles(styles, { const AssignProductDialog: React.FC<AssignProductDialogProps> = props => {
name: "AssignProductDialog" const {
})(
({
classes,
confirmButtonState, confirmButtonState,
open, open,
loading, loading,
@ -89,7 +86,9 @@ const AssignProductDialog = withStyles(styles, {
onClose, onClose,
onFetch, onFetch,
onSubmit onSubmit
}: AssignProductDialogProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const [query, onQueryChange] = useSearchQuery(onFetch); const [query, onQueryChange] = useSearchQuery(onFetch);
const [selectedProducts, setSelectedProducts] = React.useState< const [selectedProducts, setSelectedProducts] = React.useState<
@ -191,7 +190,6 @@ const AssignProductDialog = withStyles(styles, {
</DialogActions> </DialogActions>
</Dialog> </Dialog>
); );
} };
);
AssignProductDialog.displayName = "AssignProductDialog"; AssignProductDialog.displayName = "AssignProductDialog";
export default AssignProductDialog; export default AssignProductDialog;

View file

@ -1,12 +1,7 @@
import CircularProgress from "@material-ui/core/CircularProgress"; import CircularProgress from "@material-ui/core/CircularProgress";
import MenuItem from "@material-ui/core/MenuItem"; import MenuItem from "@material-ui/core/MenuItem";
import Paper from "@material-ui/core/Paper"; import Paper from "@material-ui/core/Paper";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import ArrowBack from "@material-ui/icons/ArrowBack"; import ArrowBack from "@material-ui/icons/ArrowBack";
import Downshift from "downshift"; import Downshift from "downshift";
@ -43,14 +38,13 @@ const DebounceAutocomplete: React.ComponentType<
DebounceProps<string> DebounceProps<string>
> = Debounce; > = Debounce;
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
container: { container: {
flexGrow: 1, flexGrow: 1,
position: "relative" position: "relative"
}, },
menuBack: { menuBack: {
marginLeft: -theme.spacing(.5), marginLeft: -theme.spacing(0.5),
marginRight: theme.spacing(1) marginRight: theme.spacing(1)
}, },
paper: { paper: {
@ -62,12 +56,9 @@ const styles = theme =>
zIndex: 2 zIndex: 2
}, },
root: {} root: {}
}); }));
const AutocompleteSelectMenu = withStyles(styles, { const AutocompleteSelectMenu: React.FC<AutocompleteSelectMenuProps> = props => {
name: "AutocompleteSelectMenu" const {
})(
({
classes,
disabled, disabled,
displayValue, displayValue,
error, error,
@ -79,7 +70,9 @@ const AutocompleteSelectMenu = withStyles(styles, {
placeholder, placeholder,
onChange, onChange,
onInputChange onInputChange
}: AutocompleteSelectMenuProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const [inputValue, setInputValue] = React.useState(displayValue || ""); const [inputValue, setInputValue] = React.useState(displayValue || "");
const [menuPath, setMenuPath] = React.useState<number[]>([]); const [menuPath, setMenuPath] = React.useState<number[]>([]);
@ -189,7 +182,6 @@ const AutocompleteSelectMenu = withStyles(styles, {
)} )}
</DebounceAutocomplete> </DebounceAutocomplete>
); );
} };
);
AutocompleteSelectMenu.displayName = "AutocompleteSelectMenu"; AutocompleteSelectMenu.displayName = "AutocompleteSelectMenu";
export default AutocompleteSelectMenu; export default AutocompleteSelectMenu;

View file

@ -1,2 +1,2 @@
export { default } from './AutocompleteSelectMenu'; export { default } from "./AutocompleteSelectMenu";
export * from './AutocompleteSelectMenu'; export * from "./AutocompleteSelectMenu";

View file

@ -1,12 +1,7 @@
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import Menu from "@material-ui/core/Menu"; import Menu from "@material-ui/core/Menu";
import MenuItem from "@material-ui/core/MenuItem"; import MenuItem from "@material-ui/core/MenuItem";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import MoreVertIcon from "@material-ui/icons/MoreVert"; import MoreVertIcon from "@material-ui/icons/MoreVert";
import React from "react"; import React from "react";
@ -23,8 +18,7 @@ export interface CardMenuProps {
menuItems: CardMenuItem[]; menuItems: CardMenuItem[];
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
iconButton: { iconButton: {
background: theme.palette.background.paper, background: theme.palette.background.paper,
borderRadius: "100%", borderRadius: "100%",
@ -32,17 +26,12 @@ const styles = theme =>
padding: 0, padding: 0,
width: 32 width: 32
} }
}); }));
const CardMenu: React.FC<CardMenuProps> = props => {
const { className, disabled, menuItems } = props;
const classes = useStyles(props);
const CardMenu = withStyles(styles, {
name: "CardMenu"
})(
({
className,
classes,
disabled,
menuItems
}: CardMenuProps & WithStyles<typeof styles>) => {
const [anchorEl, setAnchor] = React.useState<HTMLElement | null>(null); const [anchorEl, setAnchor] = React.useState<HTMLElement | null>(null);
const handleClick = (event: React.MouseEvent<any>) => { const handleClick = (event: React.MouseEvent<any>) => {
@ -96,7 +85,6 @@ const CardMenu = withStyles(styles, {
</Menu> </Menu>
</div> </div>
); );
} };
);
CardMenu.displayName = "CardMenu"; CardMenu.displayName = "CardMenu";
export default CardMenu; export default CardMenu;

View file

@ -1,29 +1,25 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
spacer: { spacer: {
[theme.breakpoints.down("sm")]: { [theme.breakpoints.down("sm")]: {
marginTop: theme.spacing(1) marginTop: theme.spacing(1)
}, },
marginTop: theme.spacing(3) marginTop: theme.spacing(3)
} }
}); }));
interface CardSpacerProps extends WithStyles<typeof styles> { interface CardSpacerProps {
children?: React.ReactNode; children?: React.ReactNode;
} }
export const CardSpacer = withStyles(styles, { name: "CardSpacer" })( export const CardSpacer: React.FC<CardSpacerProps> = props => {
({ classes, children }: CardSpacerProps) => ( const { children } = props;
<div className={classes.spacer}>{children}</div>
) const classes = useStyles(props);
);
return <div className={classes.spacer}>{children}</div>;
};
CardSpacer.displayName = "CardSpacer"; CardSpacer.displayName = "CardSpacer";
export default CardSpacer; export default CardSpacer;

View file

@ -1,22 +1,16 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
children: theme.mixins.gutters({}), children: theme.mixins.gutters({}),
constantHeight: { constantHeight: {
height: 56 height: 56
}, },
hr: { hr: {
border: "none", border: "none",
borderTop: `1px solid ${theme.overrides.MuiCard.root.borderColor}`, borderTop: `1px solid ${theme.palette.divider}`,
height: 0, height: 0,
marginBottom: 0, marginBottom: 0,
marginTop: 0, marginTop: 0,
@ -34,9 +28,9 @@ const styles = theme =>
toolbar: { toolbar: {
marginRight: -theme.spacing(1) marginRight: -theme.spacing(1)
} }
}); }));
interface CardTitleProps extends WithStyles<typeof styles> { interface CardTitleProps {
children?: React.ReactNode; children?: React.ReactNode;
className?: string; className?: string;
height?: "default" | "const"; height?: "default" | "const";
@ -45,24 +39,27 @@ interface CardTitleProps extends WithStyles<typeof styles> {
onClick?: (event: React.MouseEvent<any>) => void; onClick?: (event: React.MouseEvent<any>) => void;
} }
const CardTitle = withStyles(styles, { name: "CardTitle" })( const CardTitle: React.FC<CardTitleProps> = props => {
({ const {
classes,
className, className,
children, children,
height, height,
title, title,
toolbar, toolbar,
onClick, onClick,
...props ...rest
}: CardTitleProps) => ( } = props;
const classes = useStyles(props);
return (
<> <>
<div <div
className={classNames(classes.root, { className={classNames(classes.root, {
[className]: !!className, [className]: !!className,
[classes.constantHeight]: height === "const" [classes.constantHeight]: height === "const"
})} })}
{...props} {...rest}
> >
<Typography <Typography
className={classes.title} className={classes.title}
@ -77,7 +74,7 @@ const CardTitle = withStyles(styles, { name: "CardTitle" })(
<div className={classes.children}>{children}</div> <div className={classes.children}>{children}</div>
<hr className={classes.hr} /> <hr className={classes.hr} />
</> </>
)
); );
};
CardTitle.displayName = "CardTitle"; CardTitle.displayName = "CardTitle";
export default CardTitle; export default CardTitle;

View file

@ -1,12 +1,6 @@
import { Omit } from "@material-ui/core";
import ButtonBase from "@material-ui/core/ButtonBase"; import ButtonBase from "@material-ui/core/ButtonBase";
import { CheckboxProps as MuiCheckboxProps } from "@material-ui/core/Checkbox"; import { CheckboxProps as MuiCheckboxProps } from "@material-ui/core/Checkbox";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import { fade } from "@material-ui/core/styles/colorManipulator"; import { fade } from "@material-ui/core/styles/colorManipulator";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
@ -25,8 +19,7 @@ export type CheckboxProps = Omit<
onChange?: (event: React.ChangeEvent<any>) => void; onChange?: (event: React.ChangeEvent<any>) => void;
}; };
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
box: { box: {
"&$checked": { "&$checked": {
"&:before": { "&:before": {
@ -86,20 +79,22 @@ const styles = theme =>
margin: "5px 9px", margin: "5px 9px",
width: 30 width: 30
} }
}); }));
const Checkbox = withStyles(styles, { name: "Checkbox" })( const Checkbox: React.FC<CheckboxProps> = props => {
({ const {
checked, checked,
className, className,
classes,
disabled, disabled,
disableClickPropagation, disableClickPropagation,
indeterminate, indeterminate,
onChange, onChange,
value, value,
name, name,
...props ...rest
}: CheckboxProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const inputRef = React.useRef<HTMLInputElement>(null); const inputRef = React.useRef<HTMLInputElement>(null);
const handleClick = React.useCallback( const handleClick = React.useCallback(
disableClickPropagation disableClickPropagation
@ -113,7 +108,7 @@ const Checkbox = withStyles(styles, { name: "Checkbox" })(
return ( return (
<ButtonBase <ButtonBase
{...props} {...rest}
centerRipple centerRipple
className={classNames(classes.root, className)} className={classNames(classes.root, className)}
disabled={disabled} disabled={disabled}
@ -134,7 +129,6 @@ const Checkbox = withStyles(styles, { name: "Checkbox" })(
/> />
</ButtonBase> </ButtonBase>
); );
} };
);
Checkbox.displayName = "Checkbox"; Checkbox.displayName = "Checkbox";
export default Checkbox; export default Checkbox;

View file

@ -1,2 +1,2 @@
export { default } from './Checkbox'; export { default } from "./Checkbox";
export * from './Checkbox'; export * from "./Checkbox";

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import { fade } from "@material-ui/core/styles/colorManipulator"; import { fade } from "@material-ui/core/styles/colorManipulator";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import CloseIcon from "@material-ui/icons/Close"; import CloseIcon from "@material-ui/icons/Close";
@ -16,8 +11,7 @@ export interface ChipProps {
onClose?: () => void; onClose?: () => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
closeIcon: { closeIcon: {
cursor: "pointer", cursor: "pointer",
fontSize: 16, fontSize: 16,
@ -34,14 +28,13 @@ const styles = theme =>
marginRight: theme.spacing(2), marginRight: theme.spacing(2),
padding: "6px 12px" padding: "6px 12px"
} }
}); }));
const Chip = withStyles(styles, { name: "Chip" })( const Chip: React.FC<ChipProps> = props => {
({ const { className, label, onClose } = props;
classes,
className, const classes = useStyles(props);
label,
onClose return (
}: ChipProps & WithStyles<typeof styles>) => (
<div className={classNames(classes.root, className)}> <div className={classNames(classes.root, className)}>
<Typography className={classes.label} variant="caption"> <Typography className={classes.label} variant="caption">
{label} {label}
@ -50,7 +43,7 @@ const Chip = withStyles(styles, { name: "Chip" })(
)} )}
</Typography> </Typography>
</div> </div>
)
); );
};
Chip.displayName = "Chip"; Chip.displayName = "Chip";
export default Chip; export default Chip;

View file

@ -1,2 +1,2 @@
export { default } from './Chip'; export { default } from "./Chip";
export * from './Chip'; export * from "./Chip";

View file

@ -55,7 +55,7 @@ const useStyles = makeStyles(theme => ({
padding: 0 padding: 0
}, },
dropShadow: { dropShadow: {
boxShadow: `0px -5px 10px 0px ${theme.overrides.MuiCard.root.borderColor}` boxShadow: `0px -5px 10px 0px ${theme.palette.divider}`
}, },
loadMoreLoaderContainer: { loadMoreLoaderContainer: {
alignItems: "center", alignItems: "center",

View file

@ -1,11 +1,10 @@
import { Omit } from "@material-ui/core";
import Button, { ButtonProps } from "@material-ui/core/Button"; import Button, { ButtonProps } from "@material-ui/core/Button";
import CircularProgress from "@material-ui/core/CircularProgress"; import CircularProgress from "@material-ui/core/CircularProgress";
import { import {
createStyles, createStyles,
Theme, Theme,
withStyles, WithStyles,
WithStyles withStyles
} from "@material-ui/core/styles"; } from "@material-ui/core/styles";
import CheckIcon from "@material-ui/icons/Check"; import CheckIcon from "@material-ui/icons/Check";
import { buttonMessages } from "@saleor/intl"; import { buttonMessages } from "@saleor/intl";
@ -19,7 +18,7 @@ export type ConfirmButtonTransitionState =
| "error" | "error"
| "default"; | "default";
const styles = theme => const styles = (theme: Theme) =>
createStyles({ createStyles({
error: { error: {
"&:hover": { "&:hover": {

View file

@ -1,14 +1,8 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
[theme.breakpoints.up("lg")]: { [theme.breakpoints.up("lg")]: {
marginLeft: "auto", marginLeft: "auto",
@ -20,16 +14,18 @@ const styles = theme =>
}, },
padding: theme.spacing(0, 1) padding: theme.spacing(0, 1)
} }
}); }));
interface ContainerProps extends WithStyles<typeof styles> { interface ContainerProps {
className?: string; className?: string;
} }
export const Container = withStyles(styles, { export const Container: React.FC<ContainerProps> = props => {
name: "Container" const { className, ...rest } = props;
})(({ classes, className, ...props }: ContainerProps) => (
<div className={classNames(classes.root, className)} {...props} /> const classes = useStyles(props);
));
return <div className={classNames(classes.root, className)} {...rest} />;
};
Container.displayName = "Container"; Container.displayName = "Container";
export default Container; export default Container;

View file

@ -1,19 +1,18 @@
import { createStyles, Theme, withStyles, WithStyles } from "@material-ui/core"; import { makeStyles } from "@material-ui/core";
import FormControlLabel from "@material-ui/core/FormControlLabel"; import FormControlLabel from "@material-ui/core/FormControlLabel";
import Switch from "@material-ui/core/Switch"; import Switch from "@material-ui/core/Switch";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
label: { label: {
marginLeft: theme.spacing(3.5) marginLeft: theme.spacing(3.5)
}, },
labelText: { labelText: {
fontSize: 14 fontSize: 14
} }
}); }));
interface ControlledSwitchProps extends WithStyles<typeof styles> { interface ControlledSwitchProps {
checked: boolean; checked: boolean;
disabled?: boolean; disabled?: boolean;
label: string | React.ReactNode; label: string | React.ReactNode;
@ -23,11 +22,8 @@ interface ControlledSwitchProps extends WithStyles<typeof styles> {
onChange?(event: React.ChangeEvent<any>); onChange?(event: React.ChangeEvent<any>);
} }
export const ControlledSwitch = withStyles(styles, { export const ControlledSwitch: React.FC<ControlledSwitchProps> = props => {
name: "ControlledSwitch" const {
})(
({
classes,
checked, checked,
disabled, disabled,
onChange, onChange,
@ -35,7 +31,11 @@ export const ControlledSwitch = withStyles(styles, {
name, name,
secondLabel, secondLabel,
uncheckedLabel uncheckedLabel
}: ControlledSwitchProps) => ( } = props;
const classes = useStyles(props);
return (
<FormControlLabel <FormControlLabel
control={ control={
<Switch <Switch
@ -65,7 +65,7 @@ export const ControlledSwitch = withStyles(styles, {
} }
disabled={disabled} disabled={disabled}
/> />
)
); );
};
ControlledSwitch.displayName = "ControlledSwitch"; ControlledSwitch.displayName = "ControlledSwitch";
export default ControlledSwitch; export default ControlledSwitch;

View file

@ -2,12 +2,7 @@ import Button from "@material-ui/core/Button";
import Card from "@material-ui/core/Card"; import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent"; import CardContent from "@material-ui/core/CardContent";
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Table from "@material-ui/core/Table"; import Table from "@material-ui/core/Table";
import TableBody from "@material-ui/core/TableBody"; import TableBody from "@material-ui/core/TableBody";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
@ -32,8 +27,7 @@ export interface CountryListProps {
onCountryUnassign: (country: string) => void; onCountryUnassign: (country: string) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
iconCell: { iconCell: {
"&:last-child": { "&:last-child": {
paddingRight: 0 paddingRight: 0
@ -44,7 +38,7 @@ const styles = theme =>
color: theme.palette.text.disabled, color: theme.palette.text.disabled,
display: "inline-block", display: "inline-block",
left: 0, left: 0,
marginRight: theme.spacing(.5), marginRight: theme.spacing(0.5),
position: "absolute" position: "absolute"
}, },
offsetCell: { offsetCell: {
@ -76,20 +70,19 @@ const styles = theme =>
wideColumn: { wideColumn: {
width: "100%" width: "100%"
} }
}); }));
const CountryList = withStyles(styles, { const CountryList: React.FC<CountryListProps> = props => {
name: "CountryList" const {
})(
({
classes,
countries, countries,
disabled, disabled,
emptyText, emptyText,
title, title,
onCountryAssign, onCountryAssign,
onCountryUnassign onCountryUnassign
}: CountryListProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const [isCollapsed, setCollapseStatus] = React.useState(true); const [isCollapsed, setCollapseStatus] = React.useState(true);
const toggleCollapse = () => setCollapseStatus(!isCollapsed); const toggleCollapse = () => setCollapseStatus(!isCollapsed);
@ -184,6 +177,5 @@ const CountryList = withStyles(styles, {
</CardContent> </CardContent>
</Card> </Card>
); );
} };
);
export default CountryList; export default CountryList;

View file

@ -1,7 +1,7 @@
import React from "react"; import React from "react";
export interface DebounceProps<T> { export interface DebounceProps<T> {
children: ((props: (...args: T[]) => void) => React.ReactNode); children: (props: (...args: T[]) => void) => React.ReactNode;
debounceFn: (...args: T[]) => void; debounceFn: (...args: T[]) => void;
time?: number; time?: number;
} }

View file

@ -1,2 +1,2 @@
export { default } from './DeleteFilterTabDialog'; export { default } from "./DeleteFilterTabDialog";
export * from './DeleteFilterTabDialog'; export * from "./DeleteFilterTabDialog";

View file

@ -1,11 +1,6 @@
import Card from "@material-ui/core/Card"; import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent"; import CardContent from "@material-ui/core/CardContent";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
import TextField, { TextFieldProps } from "@material-ui/core/TextField"; import TextField, { TextFieldProps } from "@material-ui/core/TextField";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
@ -14,10 +9,9 @@ import React from "react";
import useForm from "@saleor/hooks/useForm"; import useForm from "@saleor/hooks/useForm";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
card: { card: {
border: `1px solid ${theme.overrides.MuiCard.root.borderColor}` border: `1px solid ${theme.palette.divider}`
}, },
container: { container: {
position: "relative" position: "relative"
@ -43,9 +37,9 @@ const styles = theme =>
cursor: "pointer", cursor: "pointer",
fontSize: "0.8125rem" fontSize: "0.8125rem"
} }
}); }));
interface EditableTableCellProps extends WithStyles<typeof styles> { interface EditableTableCellProps {
className?: string; className?: string;
defaultValue?: string; defaultValue?: string;
focused?: boolean; focused?: boolean;
@ -54,18 +48,17 @@ interface EditableTableCellProps extends WithStyles<typeof styles> {
onConfirm(value: string): any; onConfirm(value: string): any;
} }
export const EditableTableCell = withStyles(styles, { export const EditableTableCell: React.FC<EditableTableCellProps> = props => {
name: "EditableTableCell" const {
})(
({
classes,
className, className,
defaultValue, defaultValue,
focused, focused,
InputProps, InputProps,
value, value,
onConfirm onConfirm
}: EditableTableCellProps) => { } = props;
const classes = useStyles(props);
const handleConfirm = (data: { value: string }) => { const handleConfirm = (data: { value: string }) => {
disable(); disable();
onConfirm(data.value); onConfirm(data.value);
@ -101,7 +94,6 @@ export const EditableTableCell = withStyles(styles, {
)} )}
</TableCell> </TableCell>
); );
} };
);
EditableTableCell.displayName = "EditableTableCell"; EditableTableCell.displayName = "EditableTableCell";
export default EditableTableCell; export default EditableTableCell;

View file

@ -1,10 +1,5 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import React from "react"; import React from "react";
import SVG from "react-inlinesvg"; import SVG from "react-inlinesvg";
@ -12,12 +7,11 @@ import { FormattedMessage } from "react-intl";
import notFoundImage from "@assets/images/what.svg"; import notFoundImage from "@assets/images/what.svg";
export interface ErrorPageProps extends WithStyles<typeof styles> { export interface ErrorPageProps {
onBack: () => void; onBack: () => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
bottomHeader: { bottomHeader: {
fontWeight: 600 as 600, fontWeight: 600 as 600,
textTransform: "uppercase" textTransform: "uppercase"
@ -59,10 +53,14 @@ const styles = theme =>
upperHeader: { upperHeader: {
fontWeight: 600 as 600 fontWeight: 600 as 600
} }
}); }));
const ErrorPage = withStyles(styles, { name: "NotFoundPage" })( const ErrorPage: React.FC<ErrorPageProps> = props => {
({ classes, onBack }: ErrorPageProps) => ( const { onBack } = props;
const classes = useStyles(props);
return (
<div className={classes.root}> <div className={classes.root}>
<div className={classes.container}> <div className={classes.container}>
<div className={classes.innerContainer}> <div className={classes.innerContainer}>
@ -99,7 +97,7 @@ const ErrorPage = withStyles(styles, { name: "NotFoundPage" })(
</div> </div>
</div> </div>
</div> </div>
)
); );
};
ErrorPage.displayName = "ErrorPage"; ErrorPage.displayName = "ErrorPage";
export default ErrorPage; export default ErrorPage;

View file

@ -1,14 +1,8 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
action: { action: {
flex: "0 0 auto" flex: "0 0 auto"
}, },
@ -35,21 +29,25 @@ const styles = theme =>
flex: 1, flex: 1,
paddingBottom: theme.spacing(2) paddingBottom: theme.spacing(2)
} }
}); }));
interface ExtendedPageHeaderProps extends WithStyles<typeof styles> { interface ExtendedPageHeaderProps {
children?: React.ReactNode; children?: React.ReactNode;
className?: string; className?: string;
title?: React.ReactNode; title?: React.ReactNode;
} }
const ExtendedPageHeader = withStyles(styles, { name: "ExtendedPageHeader" })( const ExtendedPageHeader: React.FC<ExtendedPageHeaderProps> = props => {
({ children, classes, className, title }: ExtendedPageHeaderProps) => ( const { children, className, title } = props;
const classes = useStyles(props);
return (
<div className={classNames(classes.root, className)}> <div className={classNames(classes.root, className)}>
{title} {title}
<div className={classes.action}>{children}</div> <div className={classes.action}>{children}</div>
</div> </div>
)
); );
};
ExtendedPageHeader.displayName = "ExtendedPageHeader"; ExtendedPageHeader.displayName = "ExtendedPageHeader";
export default ExtendedPageHeader; export default ExtendedPageHeader;

View file

@ -1,36 +1,31 @@
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import Typography, { TypographyProps } from "@material-ui/core/Typography"; import Typography, { TypographyProps } from "@material-ui/core/Typography";
import React from "react"; import React from "react";
const styles = createStyles({ const useStyles = makeStyles({
link: { link: {
textDecoration: "none" textDecoration: "none"
} }
}); });
interface ExternalLinkProps interface ExternalLinkProps extends React.HTMLProps<HTMLAnchorElement> {
extends React.HTMLProps<HTMLAnchorElement>,
WithStyles<typeof styles> {
href: string; href: string;
className?: string; className?: string;
typographyProps?: TypographyProps; typographyProps?: TypographyProps;
} }
const ExternalLink = withStyles(styles, { name: "ExternalLink" })( const ExternalLink: React.FC<ExternalLinkProps> = props => {
({ const { className, children, href, typographyProps, ...rest } = props;
classes,
className, const classes = useStyles(props);
children,
href, return (
typographyProps, <a href={href} className={classes.link} {...rest}>
...props
}: ExternalLinkProps) => (
<a href={href} className={classes.link} {...props}>
<Typography className={className} color="primary" {...typographyProps}> <Typography className={className} color="primary" {...typographyProps}>
{children} {children}
</Typography> </Typography>
</a> </a>
)
); );
};
ExternalLink.displayName = "ExternalLink"; ExternalLink.displayName = "ExternalLink";
export default ExternalLink; export default ExternalLink;

View file

@ -1,10 +1,10 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import React from "react"; import React from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
const styles = createStyles({ const useStyles = makeStyles({
fileUploadField: { fileUploadField: {
display: "none" display: "none"
}, },
@ -16,15 +16,19 @@ const styles = createStyles({
} }
}); });
interface FileUploadProps extends WithStyles<typeof styles> { interface FileUploadProps {
disabled?: boolean; disabled?: boolean;
name?: string; name?: string;
value?: any; value?: any;
onChange?(event: React.ChangeEvent<any>); onChange?(event: React.ChangeEvent<any>);
} }
const FileUpload = withStyles(styles, { name: "FileUpload" })( const FileUpload: React.FC<FileUploadProps> = props => {
({ classes, disabled, name, value, onChange }: FileUploadProps) => ( const { disabled, name, value, onChange } = props;
const classes = useStyles(props);
return (
<div className={classes.root}> <div className={classes.root}>
<input <input
disabled={disabled} disabled={disabled}
@ -48,7 +52,7 @@ const FileUpload = withStyles(styles, { name: "FileUpload" })(
/> />
</Button> </Button>
</div> </div>
)
); );
};
FileUpload.displayName = "FileUpload"; FileUpload.displayName = "FileUpload";
export default FileUpload; export default FileUpload;

View file

@ -2,7 +2,7 @@ import ButtonBase from "@material-ui/core/ButtonBase";
import Grow from "@material-ui/core/Grow"; import Grow from "@material-ui/core/Grow";
import Paper from "@material-ui/core/Paper"; import Paper from "@material-ui/core/Paper";
import Popper from "@material-ui/core/Popper"; import Popper from "@material-ui/core/Popper";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import { fade } from "@material-ui/core/styles/colorManipulator"; import { fade } from "@material-ui/core/styles/colorManipulator";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import ArrowDropDownIcon from "@material-ui/icons/ArrowDropDown"; import ArrowDropDownIcon from "@material-ui/icons/ArrowDropDown";
@ -21,8 +21,7 @@ export interface FilterProps<TFilterKeys = string> {
onFilterAdd: (filter: FilterContentSubmitData) => void; onFilterAdd: (filter: FilterContentSubmitData) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
addFilterButton: { addFilterButton: {
"&$filterButton": { "&$filterButton": {
"&:hover, &:focus": { "&:hover, &:focus": {
@ -78,15 +77,11 @@ const styles = theme =>
rotate: { rotate: {
transform: "rotate(180deg)" transform: "rotate(180deg)"
} }
}); }));
const Filter = withStyles(styles, { name: "Filter" })( const Filter: React.FC<FilterProps> = props => {
({ const { currencySymbol, filterLabel, menu, onFilterAdd } = props;
classes, const classes = useStyles(props);
currencySymbol,
filterLabel,
menu,
onFilterAdd
}: FilterProps & WithStyles<typeof styles>) => {
const anchor = React.useRef<HTMLDivElement>(); const anchor = React.useRef<HTMLDivElement>();
const [isFilterMenuOpened, setFilterMenuOpened] = React.useState(false); const [isFilterMenuOpened, setFilterMenuOpened] = React.useState(false);
@ -99,10 +94,7 @@ const Filter = withStyles(styles, { name: "Filter" })(
onClick={() => setFilterMenuOpened(!isFilterMenuOpened)} onClick={() => setFilterMenuOpened(!isFilterMenuOpened)}
> >
<Typography className={classes.addFilterText}> <Typography className={classes.addFilterText}>
<FormattedMessage <FormattedMessage defaultMessage="Add Filter" description="button" />
defaultMessage="Add Filter"
description="button"
/>
</Typography> </Typography>
<ArrowDropDownIcon <ArrowDropDownIcon
color="primary" color="primary"
@ -143,7 +135,6 @@ const Filter = withStyles(styles, { name: "Filter" })(
</Popper> </Popper>
</div> </div>
); );
} };
);
Filter.displayName = "Filter"; Filter.displayName = "Filter";
export default Filter; export default Filter;

View file

@ -17,6 +17,7 @@ const useInputStyles = makeStyles({
const Search: React.FC<TextFieldProps> = props => { const Search: React.FC<TextFieldProps> = props => {
const classes = useInputStyles({}); const classes = useInputStyles({});
return ( return (
<TextField <TextField
{...props} {...props}

View file

@ -1,2 +1,2 @@
export { default } from './FilterBar'; export { default } from "./FilterBar";
export * from './FilterBar'; export * from "./FilterBar";

View file

@ -1,27 +1,23 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
spacer: { spacer: {
marginTop: theme.spacing(3) marginTop: theme.spacing(3)
} }
}); }));
interface FormSpacerProps extends WithStyles<typeof styles> { interface FormSpacerProps {
children?: React.ReactNode; children?: React.ReactNode;
} }
export const FormSpacer = withStyles(styles, { name: "FormSpacer" })( export const FormSpacer: React.FC<FormSpacerProps> = props => {
({ classes, children }: FormSpacerProps) => ( const { children } = props;
<div className={classes.spacer}>{children}</div>
) const classes = useStyles(props);
);
return <div className={classes.spacer}>{children}</div>;
};
FormSpacer.displayName = "FormSpacer"; FormSpacer.displayName = "FormSpacer";
export default FormSpacer; export default FormSpacer;

View file

@ -1,21 +1,15 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
export type GridVariant = "default" | "inverted" | "uniform"; export type GridVariant = "default" | "inverted" | "uniform";
export interface GridProps extends WithStyles<typeof styles> { export interface GridProps {
children: React.ReactNodeArray | React.ReactNode; children: React.ReactNodeArray | React.ReactNode;
className?: string; className?: string;
variant?: GridVariant; variant?: GridVariant;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
default: { default: {
gridTemplateColumns: "9fr 4fr" gridTemplateColumns: "9fr 4fr"
}, },
@ -34,10 +28,14 @@ const styles = theme =>
uniform: { uniform: {
gridTemplateColumns: "1fr 1fr" gridTemplateColumns: "1fr 1fr"
} }
}); }));
export const Grid = withStyles(styles, { name: "Grid" })( export const Grid: React.FC<GridProps> = props => {
({ className, children, classes, variant }: GridProps) => ( const { className, children, variant } = props;
const classes = useStyles(props);
return (
<div <div
className={classNames(className, classes.root, { className={classNames(className, classes.root, {
[classes.default]: variant === "default", [classes.default]: variant === "default",
@ -47,8 +45,8 @@ export const Grid = withStyles(styles, { name: "Grid" })(
> >
{children} {children}
</div> </div>
)
); );
};
Grid.displayName = "Grid"; Grid.displayName = "Grid";
Grid.defaultProps = { Grid.defaultProps = {
variant: "default" variant: "default"

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
@ -11,22 +6,23 @@ interface HrProps {
className?: string; className?: string;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
backgroundColor: theme.overrides.MuiCard.root.borderColor, backgroundColor: theme.palette.divider,
border: "none", border: "none",
display: "block", display: "block",
height: 1, height: 1,
margin: 0, margin: 0,
width: "100%" width: "100%"
} }
}); }));
export const Hr = withStyles(styles, { name: "Hr" })( export const Hr: React.FC<HrProps> = props => {
({ className, classes }: HrProps & WithStyles<typeof styles>) => ( const { className } = props;
<hr className={classNames(classes.root, className)} />
) const classes = useStyles(props);
);
return <hr className={classNames(classes.root, className)} />;
};
Hr.displayName = "Hr"; Hr.displayName = "Hr";
export default Hr; export default Hr;

View file

@ -1,10 +1,5 @@
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
import React from "react"; import React from "react";
@ -17,23 +12,26 @@ export interface IconButtonTableCellProps {
onClick: () => void; onClick: () => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
"&:last-child": { "&:last-child": {
paddingRight: 0 paddingRight: 0
}, },
paddingRight: 0, paddingRight: 0,
width: ICONBUTTON_SIZE + theme.spacing(.5) width: ICONBUTTON_SIZE + theme.spacing(0.5)
} }
}); }));
const IconButtonTableCell = withStyles(styles, { name: "IconButtonTableCell" })( const IconButtonTableCell: React.FC<IconButtonTableCellProps> = props => {
({ const {
children, children,
classes,
disabled, disabled,
onClick onClick
}: IconButtonTableCellProps & WithStyles<typeof styles>) => ( } = props;
const classes = useStyles(props);
return (
<TableCell className={classes.root}> <TableCell className={classes.root}>
<IconButton <IconButton
color="primary" color="primary"
@ -43,7 +41,7 @@ const IconButtonTableCell = withStyles(styles, { name: "IconButtonTableCell" })(
{children} {children}
</IconButton> </IconButton>
</TableCell> </TableCell>
)
); );
};
IconButtonTableCell.displayName = "IconButtonTableCell"; IconButtonTableCell.displayName = "IconButtonTableCell";
export default IconButtonTableCell; export default IconButtonTableCell;

View file

@ -1,2 +1,2 @@
export { default } from './IconButtonTableCell'; export { default } from "./IconButtonTableCell";
export * from './IconButtonTableCell'; export * from "./IconButtonTableCell";

View file

@ -1,17 +1,11 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import DeleteIcon from "@material-ui/icons/Delete"; import DeleteIcon from "@material-ui/icons/Delete";
import EditIcon from "@material-ui/icons/Edit"; import EditIcon from "@material-ui/icons/Edit";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
image: { image: {
height: "100%", height: "100%",
objectFit: "contain", objectFit: "contain",
@ -25,7 +19,7 @@ const styles = theme =>
} }
}, },
background: theme.palette.background.paper, background: theme.palette.background.paper,
border: `1px solid ${theme.overrides.MuiCard.root.borderColor}`, border: `1px solid ${theme.palette.divider}`,
borderRadius: theme.spacing(), borderRadius: theme.spacing(),
height: 148, height: 148,
overflow: "hidden", overflow: "hidden",
@ -47,9 +41,9 @@ const styles = theme =>
display: "flex", display: "flex",
justifyContent: "flex-end" justifyContent: "flex-end"
} }
}); }));
interface ImageTileProps extends WithStyles<typeof styles> { interface ImageTileProps {
image: { image: {
alt?: string; alt?: string;
url: string; url: string;
@ -58,8 +52,12 @@ interface ImageTileProps extends WithStyles<typeof styles> {
onImageEdit?: (event: React.ChangeEvent<any>) => void; onImageEdit?: (event: React.ChangeEvent<any>) => void;
} }
const ImageTile = withStyles(styles, { name: "ImageTile" })( const ImageTile: React.FC<ImageTileProps> = props => {
({ classes, onImageDelete, onImageEdit, image }: ImageTileProps) => ( const { onImageDelete, onImageEdit, image } = props;
const classes = useStyles(props);
return (
<div className={classes.imageContainer} data-tc="product-image"> <div className={classes.imageContainer} data-tc="product-image">
<div className={classes.imageOverlay}> <div className={classes.imageOverlay}>
<div className={classes.imageOverlayToolbar}> <div className={classes.imageOverlayToolbar}>
@ -77,7 +75,7 @@ const ImageTile = withStyles(styles, { name: "ImageTile" })(
</div> </div>
<img className={classes.image} src={image.url} alt={image.alt} /> <img className={classes.image} src={image.url} alt={image.alt} />
</div> </div>
)
); );
};
ImageTile.displayName = "ImageTile"; ImageTile.displayName = "ImageTile";
export default ImageTile; export default ImageTile;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import { fade } from "@material-ui/core/styles/colorManipulator"; import { fade } from "@material-ui/core/styles/colorManipulator";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
@ -22,8 +17,7 @@ interface ImageUploadProps {
onImageUpload: (file: File) => void; onImageUpload: (file: File) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
containerDragActive: { containerDragActive: {
background: fade(theme.palette.primary.main, 0.1), background: fade(theme.palette.primary.main, 0.1),
color: theme.palette.primary.main color: theme.palette.primary.main
@ -58,19 +52,23 @@ const styles = theme =>
fontWeight: 600, fontWeight: 600,
textTransform: "uppercase" textTransform: "uppercase"
} }
}); }));
export const ImageUpload = withStyles(styles, { name: "ImageUpload" })( export const ImageUpload: React.FC<ImageUploadProps> = props => {
({ const {
children, children,
classes,
className, className,
disableClick, disableClick,
isActiveClassName, isActiveClassName,
iconContainerActiveClassName, iconContainerActiveClassName,
iconContainerClassName, iconContainerClassName,
onImageUpload onImageUpload
}: ImageUploadProps & WithStyles<typeof styles>) => ( } = props;
const classes = useStyles(props);
return (
<Dropzone <Dropzone
disableClick={disableClick} disableClick={disableClick}
onDrop={files => onImageUpload(files[0])} onDrop={files => onImageUpload(files[0])}
@ -107,7 +105,7 @@ export const ImageUpload = withStyles(styles, { name: "ImageUpload" })(
</> </>
)} )}
</Dropzone> </Dropzone>
)
); );
};
ImageUpload.displayName = "ImageUpload"; ImageUpload.displayName = "ImageUpload";
export default ImageUpload; export default ImageUpload;

View file

@ -5,12 +5,7 @@ import MenuItem from "@material-ui/core/MenuItem";
import Menu from "@material-ui/core/MenuList"; import Menu from "@material-ui/core/MenuList";
import Paper from "@material-ui/core/Paper"; import Paper from "@material-ui/core/Paper";
import Popper from "@material-ui/core/Popper"; import Popper from "@material-ui/core/Popper";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import ArrowDropDown from "@material-ui/icons/ArrowDropDown"; import ArrowDropDown from "@material-ui/icons/ArrowDropDown";
import classNames from "classnames"; import classNames from "classnames";
@ -26,8 +21,7 @@ export interface LanguageSwitchProps {
onLanguageChange: (lang: LanguageCodeEnum) => void; onLanguageChange: (lang: LanguageCodeEnum) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
arrow: { arrow: {
color: theme.palette.primary.main, color: theme.palette.primary.main,
transition: theme.transitions.duration.standard + "ms" transition: theme.transitions.duration.standard + "ms"
@ -56,14 +50,11 @@ const styles = theme =>
rotate: { rotate: {
transform: "rotate(180deg)" transform: "rotate(180deg)"
} }
}); }));
const LanguageSwitch = withStyles(styles, { name: "LanguageSwitch" })( const LanguageSwitch: React.FC<LanguageSwitchProps> = props => {
({ const { currentLanguage, languages, onLanguageChange } = props;
classes, const classes = useStyles(props);
currentLanguage,
languages,
onLanguageChange
}: LanguageSwitchProps & WithStyles<typeof styles>) => {
const [isExpanded, setExpandedState] = React.useState(false); const [isExpanded, setExpandedState] = React.useState(false);
const anchor = React.useRef(); const anchor = React.useRef();
@ -128,7 +119,6 @@ const LanguageSwitch = withStyles(styles, { name: "LanguageSwitch" })(
</Popper> </Popper>
</div> </div>
); );
} };
);
LanguageSwitch.displayName = "LanguageSwitch"; LanguageSwitch.displayName = "LanguageSwitch";
export default LanguageSwitch; export default LanguageSwitch;

View file

@ -1,2 +1,2 @@
export { default } from './LanguageSwitch'; export { default } from "./LanguageSwitch";
export * from './LanguageSwitch'; export * from "./LanguageSwitch";

View file

@ -1,15 +1,9 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography, { TypographyProps } from "@material-ui/core/Typography"; import Typography, { TypographyProps } from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
primary: { primary: {
color: theme.palette.primary.main color: theme.palette.primary.main
}, },
@ -23,27 +17,28 @@ const styles = theme =>
underline: { underline: {
textDecoration: "underline" textDecoration: "underline"
} }
}); }));
interface LinkProps interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
extends React.AnchorHTMLAttributes<HTMLAnchorElement>,
WithStyles<typeof styles> {
color?: "primary" | "secondary"; color?: "primary" | "secondary";
underline?: boolean; underline?: boolean;
typographyProps?: TypographyProps; typographyProps?: TypographyProps;
onClick: () => void; onClick: () => void;
} }
const Link = withStyles(styles, { name: "Link" })( const Link: React.FC<LinkProps> = props => {
({ const {
classes,
className, className,
children, children,
color = "primary", color = "primary",
underline = false, underline = false,
onClick, onClick,
...linkProps ...linkProps
}: LinkProps) => ( } = props;
const classes = useStyles(props);
return (
<Typography <Typography
component="a" component="a"
className={classNames({ className={classNames({
@ -59,7 +54,7 @@ const Link = withStyles(styles, { name: "Link" })(
> >
{children} {children}
</Typography> </Typography>
)
); );
};
Link.displayName = "Link"; Link.displayName = "Link";
export default Link; export default Link;

View file

@ -1,4 +1,3 @@
import { Omit } from "@material-ui/core";
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import { import {
createStyles, createStyles,
@ -17,7 +16,7 @@ interface ListFieldState {
value: string; value: string;
} }
const styles = theme => const styles = (theme: Theme) =>
createStyles({ createStyles({
chip: { chip: {
marginBottom: theme.spacing(1) marginBottom: theme.spacing(1)

View file

@ -2,15 +2,13 @@ import React from "react";
interface MenuToggleProps { interface MenuToggleProps {
ariaOwns?: string; ariaOwns?: string;
children: (( children: (props: {
props: {
actions: { actions: {
open: () => void; open: () => void;
close: () => void; close: () => void;
}; };
open: boolean; open: boolean;
} }) => React.ReactElement<any>;
) => React.ReactElement<any>);
} }
interface MenuToggleState { interface MenuToggleState {

View file

@ -1,15 +1,15 @@
import Money from "./Money"; import { IMoney } from "./Money";
export { default } from "./Money"; export { default } from "./Money";
export * from "./Money"; export * from "./Money";
export function addMoney(init: Money, ...args: Money[]): Money { export function addMoney(init: IMoney, ...args: IMoney[]): IMoney {
return { return {
amount: args.reduce((acc, curr) => acc + curr.amount, init.amount), amount: args.reduce((acc, curr) => acc + curr.amount, init.amount),
currency: init.currency currency: init.currency
}; };
} }
export function subtractMoney(init: Money, ...args: Money[]): Money { export function subtractMoney(init: IMoney, ...args: IMoney[]): IMoney {
return { return {
amount: args.reduce((acc, curr) => acc - curr.amount, init.amount), amount: args.reduce((acc, curr) => acc - curr.amount, init.amount),
currency: init.currency currency: init.currency

View file

@ -2,7 +2,7 @@ import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { LocaleConsumer } from "../Locale"; import { LocaleConsumer } from "../Locale";
import IMoney from "../Money"; import { IMoney } from "../Money";
export interface MoneyRangeProps { export interface MoneyRangeProps {
from?: IMoney; from?: IMoney;

View file

@ -1,2 +1,2 @@
export { default } from './MoneyRange'; export { default } from "./MoneyRange";
export * from './MoneyRange'; export * from "./MoneyRange";

View file

@ -1,10 +1,5 @@
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import CloseIcon from "@material-ui/icons/Close"; import CloseIcon from "@material-ui/icons/Close";
@ -20,8 +15,7 @@ import MultiAutocompleteSelectFieldContent, {
MultiAutocompleteChoiceType MultiAutocompleteChoiceType
} from "./MultiAutocompleteSelectFieldContent"; } from "./MultiAutocompleteSelectFieldContent";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
chip: { chip: {
width: "100%" width: "100%"
}, },
@ -56,7 +50,7 @@ const styles = theme =>
flexGrow: 1, flexGrow: 1,
position: "relative" position: "relative"
} }
}); }));
export interface MultiAutocompleteSelectFieldProps export interface MultiAutocompleteSelectFieldProps
extends Partial<FetchMoreProps> { extends Partial<FetchMoreProps> {
@ -77,14 +71,15 @@ const DebounceAutocomplete: React.ComponentType<
DebounceProps<string> DebounceProps<string>
> = Debounce; > = Debounce;
export const MultiAutocompleteSelectFieldComponent = withStyles(styles, { const MultiAutocompleteSelectFieldComponent: React.FC<
name: "MultiAutocompleteSelectField" MultiAutocompleteSelectFieldProps
})( > = props => {
({ const {
allowCustomValues, allowCustomValues,
choices, choices,
classes,
displayValues, displayValues,
hasMore, hasMore,
helperText, helperText,
label, label,
@ -95,8 +90,10 @@ export const MultiAutocompleteSelectFieldComponent = withStyles(styles, {
fetchChoices, fetchChoices,
onChange, onChange,
onFetchMore, onFetchMore,
...props ...rest
}: MultiAutocompleteSelectFieldProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const handleSelect = ( const handleSelect = (
item: string, item: string,
downshiftOpts?: ControllerStateAndHelpers downshiftOpts?: ControllerStateAndHelpers
@ -129,12 +126,11 @@ export const MultiAutocompleteSelectFieldComponent = withStyles(styles, {
inputValue.length > 0 && inputValue.length > 0 &&
allowCustomValues && allowCustomValues &&
!choices.find( !choices.find(
choice => choice => choice.label.toLowerCase() === inputValue.toLowerCase()
choice.label.toLowerCase() === inputValue.toLowerCase()
); );
return ( return (
<div className={classes.container} {...props}> <div className={classes.container} {...rest}>
<TextField <TextField
InputProps={{ InputProps={{
...getInputProps({ ...getInputProps({
@ -142,7 +138,7 @@ export const MultiAutocompleteSelectFieldComponent = withStyles(styles, {
}), }),
endAdornment: ( endAdornment: (
<div> <div>
<ArrowDropdownIcon onClick={toggleMenu} /> <ArrowDropdownIcon onClick={() => toggleMenu()} />
</div> </div>
), ),
id: undefined, id: undefined,
@ -190,12 +186,13 @@ export const MultiAutocompleteSelectFieldComponent = withStyles(styles, {
</div> </div>
</> </>
); );
} };
);
const MultiAutocompleteSelectField: React.FC< const MultiAutocompleteSelectField: React.FC<
MultiAutocompleteSelectFieldProps MultiAutocompleteSelectFieldProps
> = ({ choices, fetchChoices, ...props }) => { > = ({ choices, fetchChoices, ...props }) => {
const [query, setQuery] = React.useState(""); const [query, setQuery] = React.useState("");
if (fetchChoices) { if (fetchChoices) {
return ( return (
<DebounceAutocomplete debounceFn={fetchChoices}> <DebounceAutocomplete debounceFn={fetchChoices}>
@ -220,5 +217,6 @@ const MultiAutocompleteSelectField: React.FC<
/> />
); );
}; };
MultiAutocompleteSelectField.displayName = "MultiAutocompleteSelectField"; MultiAutocompleteSelectField.displayName = "MultiAutocompleteSelectField";
export default MultiAutocompleteSelectField; export default MultiAutocompleteSelectField;

View file

@ -4,19 +4,13 @@ import FormHelperText from "@material-ui/core/FormHelperText";
import InputLabel from "@material-ui/core/InputLabel"; import InputLabel from "@material-ui/core/InputLabel";
import MenuItem from "@material-ui/core/MenuItem"; import MenuItem from "@material-ui/core/MenuItem";
import Select, { SelectProps } from "@material-ui/core/Select"; import Select, { SelectProps } from "@material-ui/core/Select";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import Checkbox from "../Checkbox"; import Checkbox from "../Checkbox";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
checkbox: { checkbox: {
marginRight: -theme.spacing(2) marginRight: -theme.spacing(2)
}, },
@ -29,9 +23,9 @@ const styles = theme =>
justifyContent: "space-between", justifyContent: "space-between",
width: "100%" width: "100%"
} }
}); }));
interface MultiSelectFieldProps extends WithStyles<typeof styles> { interface MultiSelectFieldProps {
choices: Array<{ choices: Array<{
value: string; value: string;
label: string; label: string;
@ -46,11 +40,8 @@ interface MultiSelectFieldProps extends WithStyles<typeof styles> {
onChange(event: any); onChange(event: any);
} }
export const MultiSelectField = withStyles(styles, { export const MultiSelectField: React.FC<MultiSelectFieldProps> = props => {
name: "MultiSelectField" const {
})(
({
classes,
disabled, disabled,
error, error,
label, label,
@ -60,7 +51,9 @@ export const MultiSelectField = withStyles(styles, {
name, name,
hint, hint,
selectProps selectProps
}: MultiSelectFieldProps) => { } = props;
const classes = useStyles(props);
const choicesByKey = disabled const choicesByKey = disabled
? {} ? {}
: choices.reduce((prev, curr) => { : choices.reduce((prev, curr) => {
@ -118,8 +111,7 @@ export const MultiSelectField = withStyles(styles, {
{hint && <FormHelperText>{hint}</FormHelperText>} {hint && <FormHelperText>{hint}</FormHelperText>}
</FormControl> </FormControl>
); );
} };
);
MultiSelectField.defaultProps = { MultiSelectField.defaultProps = {
value: [] value: []
}; };

View file

@ -1,10 +1,5 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import React from "react"; import React from "react";
import SVG from "react-inlinesvg"; import SVG from "react-inlinesvg";
@ -12,8 +7,7 @@ import { FormattedMessage } from "react-intl";
import notFoundImage from "@assets/images/not-found-404.svg"; import notFoundImage from "@assets/images/not-found-404.svg";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
button: { button: {
marginTop: theme.spacing(2), marginTop: theme.spacing(2),
padding: 20 padding: 20
@ -52,14 +46,18 @@ const styles = theme =>
height: "100vh", height: "100vh",
width: "100vw" width: "100vw"
} }
}); }));
interface NotFoundPageProps extends WithStyles<typeof styles> { interface NotFoundPageProps {
onBack: () => void; onBack: () => void;
} }
const NotFoundPage = withStyles(styles, { name: "NotFoundPage" })( const NotFoundPage: React.FC<NotFoundPageProps> = props => {
({ classes, onBack }: NotFoundPageProps) => ( const { onBack } = props;
const classes = useStyles(props);
return (
<div className={classes.root}> <div className={classes.root}>
<div className={classes.container}> <div className={classes.container}>
<div className={classes.innerContainer}> <div className={classes.innerContainer}>
@ -93,7 +91,7 @@ const NotFoundPage = withStyles(styles, { name: "NotFoundPage" })(
</div> </div>
</div> </div>
</div> </div>
)
); );
};
NotFoundPage.displayName = "NotFoundPage"; NotFoundPage.displayName = "NotFoundPage";
export default NotFoundPage; export default NotFoundPage;

View file

@ -1,17 +1,11 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import React from "react"; import React from "react";
import ExtendedPageHeader from "../ExtendedPageHeader"; import ExtendedPageHeader from "../ExtendedPageHeader";
import Skeleton from "../Skeleton"; import Skeleton from "../Skeleton";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
display: "flex" display: "flex"
}, },
@ -20,16 +14,20 @@ const styles = theme =>
fontSize: 24, fontSize: 24,
paddingBottom: theme.spacing(2) paddingBottom: theme.spacing(2)
} }
}); }));
interface PageHeaderProps extends WithStyles<typeof styles> { interface PageHeaderProps {
children?: React.ReactNode; children?: React.ReactNode;
className?: string; className?: string;
title?: string; title?: string;
} }
const PageHeader = withStyles(styles)( const PageHeader: React.FC<PageHeaderProps> = props => {
({ children, classes, className, title }: PageHeaderProps) => ( const { children, className, title } = props;
const classes = useStyles(props);
return (
<ExtendedPageHeader <ExtendedPageHeader
className={className} className={className}
title={ title={
@ -40,7 +38,8 @@ const PageHeader = withStyles(styles)(
> >
<div className={classes.root}>{children}</div> <div className={classes.root}>{children}</div>
</ExtendedPageHeader> </ExtendedPageHeader>
)
); );
};
PageHeader.displayName = "PageHeader"; PageHeader.displayName = "PageHeader";
export default PageHeader; export default PageHeader;

View file

@ -1,24 +1,18 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import React from "react"; import React from "react";
import SingleSelectField from "@saleor/components/SingleSelectField"; import SingleSelectField from "@saleor/components/SingleSelectField";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
display: "grid", display: "grid",
gridColumnGap: theme.spacing(2), gridColumnGap: theme.spacing(2),
gridTemplateColumns: "5rem 1fr" gridTemplateColumns: "5rem 1fr"
} }
}); }));
interface PhoneFieldProps extends WithStyles<typeof styles> { interface PhoneFieldProps {
name: string; name: string;
prefix: string; prefix: string;
number: string; number: string;
@ -27,16 +21,19 @@ interface PhoneFieldProps extends WithStyles<typeof styles> {
onChange(event: React.ChangeEvent<any>); onChange(event: React.ChangeEvent<any>);
} }
const PhoneField = withStyles(styles, { name: "PhoneField" })( const PhoneField: React.FC<PhoneFieldProps> = props => {
({ const {
classes,
name, name,
number: phoneNumber, number: phoneNumber,
prefix, prefix,
prefixes, prefixes,
label, label,
onChange onChange
}: PhoneFieldProps) => ( } = props;
const classes = useStyles(props);
return (
<div className={classes.root}> <div className={classes.root}>
<SingleSelectField <SingleSelectField
name={name + "_prefix"} name={name + "_prefix"}
@ -52,7 +49,7 @@ const PhoneField = withStyles(styles, { name: "PhoneField" })(
label="&nbsp;" label="&nbsp;"
/> />
</div> </div>
)
); );
};
PhoneField.displayName = "PhoneField"; PhoneField.displayName = "PhoneField";
export default PhoneField; export default PhoneField;

View file

@ -1,11 +1,10 @@
import { InputProps } from "@material-ui/core/Input"; import { InputProps } from "@material-ui/core/Input";
import InputAdornment from "@material-ui/core/InputAdornment"; import InputAdornment from "@material-ui/core/InputAdornment";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
currencySymbol: { currencySymbol: {
fontSize: "0.875rem" fontSize: "0.875rem"
}, },
@ -24,9 +23,9 @@ const styles = theme =>
widgetContainer: { widgetContainer: {
marginTop: theme.spacing(2) marginTop: theme.spacing(2)
} }
}); }));
interface PriceFieldProps extends WithStyles<typeof styles> { interface PriceFieldProps {
className?: string; className?: string;
currencySymbol?: string; currencySymbol?: string;
disabled?: boolean; disabled?: boolean;
@ -39,8 +38,8 @@ interface PriceFieldProps extends WithStyles<typeof styles> {
onChange(event: any); onChange(event: any);
} }
export const PriceField = withStyles(styles, { name: "PriceField" })( export const PriceField: React.FC<PriceFieldProps> = props => {
({ const {
className, className,
disabled, disabled,
error, error,
@ -48,11 +47,14 @@ export const PriceField = withStyles(styles, { name: "PriceField" })(
hint, hint,
currencySymbol, currencySymbol,
name, name,
classes,
onChange, onChange,
value, value,
InputProps InputProps
}: PriceFieldProps) => ( } = props;
const classes = useStyles(props);
return (
<TextField <TextField
className={className} className={className}
error={error} error={error}
@ -75,8 +77,8 @@ export const PriceField = withStyles(styles, { name: "PriceField" })(
disabled={disabled} disabled={disabled}
onChange={onChange} onChange={onChange}
/> />
)
); );
};
PriceField.defaultProps = { PriceField.defaultProps = {
name: "price" name: "price"
}; };

View file

@ -2,11 +2,11 @@ import FormControl from "@material-ui/core/FormControl";
import FormControlLabel from "@material-ui/core/FormControlLabel"; import FormControlLabel from "@material-ui/core/FormControlLabel";
import Radio from "@material-ui/core/Radio"; import Radio from "@material-ui/core/Radio";
import RadioGroup from "@material-ui/core/RadioGroup"; import RadioGroup from "@material-ui/core/RadioGroup";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = createStyles({ const useStyles = makeStyles({
formControl: { formControl: {
padding: 0, padding: 0,
width: "100%" width: "100%"
@ -37,12 +37,9 @@ interface RadioSwitchFieldProps {
onChange: (event: React.ChangeEvent<any>) => void; onChange: (event: React.ChangeEvent<any>) => void;
} }
export const RadioSwitchField = withStyles(styles, { export const RadioSwitchField: React.FC<RadioSwitchFieldProps> = props => {
name: "RadioSwitchField" const {
})(
({
className, className,
classes,
disabled, disabled,
error, error,
firstOptionLabel, firstOptionLabel,
@ -50,7 +47,9 @@ export const RadioSwitchField = withStyles(styles, {
name, name,
secondOptionLabel, secondOptionLabel,
value value
}: RadioSwitchFieldProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const initialValue = value ? "true" : "false"; const initialValue = value ? "true" : "false";
const change = event => { const change = event => {
@ -91,7 +90,6 @@ export const RadioSwitchField = withStyles(styles, {
</RadioGroup> </RadioGroup>
</FormControl> </FormControl>
); );
} };
);
RadioSwitchField.displayName = "RadioSwitchField"; RadioSwitchField.displayName = "RadioSwitchField";
export default RadioSwitchField; export default RadioSwitchField;

View file

@ -4,12 +4,7 @@ import Grow from "@material-ui/core/Grow";
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import Paper from "@material-ui/core/Paper"; import Paper from "@material-ui/core/Paper";
import Popper from "@material-ui/core/Popper"; import Popper from "@material-ui/core/Popper";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import DeleteIcon from "@material-ui/icons/Delete"; import DeleteIcon from "@material-ui/icons/Delete";
import { ContentState } from "draft-js"; import { ContentState } from "draft-js";
import React from "react"; import React from "react";
@ -23,8 +18,7 @@ interface ImageEntityProps {
onRemove: (entityKey: string) => void; onRemove: (entityKey: string) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
anchor: { anchor: {
display: "inline-block" display: "inline-block"
}, },
@ -42,18 +36,12 @@ const styles = theme =>
minHeight: 72, minHeight: 72,
padding: theme.spacing(1.5) padding: theme.spacing(1.5)
} }
}); }));
const ImageEntity: React.FC<ImageEntityProps> = props => {
const { contentState, entityKey, onEdit, onRemove } = props;
const classes = useStyles(props);
const ImageEntity = withStyles(styles, {
name: "ImageEntity"
})(
({
classes,
contentState,
entityKey,
onEdit,
onRemove
}: ImageEntityProps & WithStyles<typeof styles>) => {
const [isOpened, setOpenStatus] = React.useState(false); const [isOpened, setOpenStatus] = React.useState(false);
const anchor = React.useRef<HTMLDivElement>(); const anchor = React.useRef<HTMLDivElement>();
@ -109,6 +97,5 @@ const ImageEntity = withStyles(styles, {
/> />
</> </>
); );
} };
);
export default ImageEntity; export default ImageEntity;

View file

@ -4,12 +4,7 @@ import Grow from "@material-ui/core/Grow";
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import Paper from "@material-ui/core/Paper"; import Paper from "@material-ui/core/Paper";
import Popper from "@material-ui/core/Popper"; import Popper from "@material-ui/core/Popper";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import DeleteIcon from "@material-ui/icons/Delete"; import DeleteIcon from "@material-ui/icons/Delete";
import { ContentState } from "draft-js"; import { ContentState } from "draft-js";
@ -27,8 +22,7 @@ interface LinkEntityProps {
onRemove: (entityKey: string) => void; onRemove: (entityKey: string) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
anchor: { anchor: {
display: "inline-block" display: "inline-block"
}, },
@ -56,19 +50,12 @@ const styles = theme =>
marginRight: theme.spacing(), marginRight: theme.spacing(),
width: 1 width: 1
} }
}); }));
const LinkEntity: React.FC<LinkEntityProps> = props => {
const { children, contentState, entityKey, onEdit, onRemove } = props;
const classes = useStyles(props);
const LinkEntity = withStyles(styles, {
name: "LinkEntity"
})(
({
classes,
children,
contentState,
entityKey,
onEdit,
onRemove
}: LinkEntityProps & WithStyles<typeof styles>) => {
const [isOpened, setOpenStatus] = React.useState(false); const [isOpened, setOpenStatus] = React.useState(false);
const anchor = React.useRef<HTMLDivElement>(); const anchor = React.useRef<HTMLDivElement>();
@ -127,6 +114,5 @@ const LinkEntity = withStyles(styles, {
</Link> </Link>
</> </>
); );
} };
);
export default LinkEntity; export default LinkEntity;

View file

@ -1,9 +1,4 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import { fade } from "@material-ui/core/styles/colorManipulator"; import { fade } from "@material-ui/core/styles/colorManipulator";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
@ -45,8 +40,7 @@ export interface RichTextEditorProps {
onChange: (event: React.ChangeEvent<any>) => void; onChange: (event: React.ChangeEvent<any>) => void;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
error: { error: {
color: theme.palette.error.main color: theme.palette.error.main
}, },
@ -101,7 +95,7 @@ const styles = theme =>
"&:hover": { "&:hover": {
borderColor: theme.palette.primary.main borderColor: theme.palette.primary.main
}, },
border: `1px ${theme.overrides.MuiOutlinedInput.root.borderColor} solid`, border: `1px ${theme.palette.divider} solid`,
borderRadius: 4, borderRadius: 4,
padding: "27px 12px 10px", padding: "27px 12px 10px",
position: "relative", position: "relative",
@ -139,7 +133,7 @@ const styles = theme =>
alignItems: "center", alignItems: "center",
background: "none", background: "none",
border: "none", border: "none",
borderRight: `1px ${theme.overrides.MuiCard.root.borderColor} solid`, borderRight: `1px ${theme.palette.divider} solid`,
color: theme.typography.body1.color, color: theme.typography.body1.color,
cursor: "pointer", cursor: "pointer",
display: "inline-flex", display: "inline-flex",
@ -160,7 +154,7 @@ const styles = theme =>
display: "flex" display: "flex"
}, },
background: theme.palette.background.default, background: theme.palette.background.default,
border: `1px ${theme.overrides.MuiCard.root.borderColor} solid`, border: `1px ${theme.palette.divider} solid`,
display: "inline-flex", display: "inline-flex",
flexWrap: "wrap", flexWrap: "wrap",
marginBottom: theme.spacing(), marginBottom: theme.spacing(),
@ -171,7 +165,7 @@ const styles = theme =>
}, },
"&-block": { "&-block": {
"&--blockquote": { "&--blockquote": {
borderLeft: `2px solid ${theme.overrides.MuiCard.root.borderColor}`, borderLeft: `2px solid ${theme.palette.divider}`,
margin: 0, margin: 0,
padding: theme.spacing(1, 2) padding: theme.spacing(1, 2)
} }
@ -197,7 +191,7 @@ const styles = theme =>
smallIcon: { smallIcon: {
marginLeft: 10 marginLeft: 10
} }
}); }));
function handleSave( function handleSave(
value: any, value: any,
@ -215,17 +209,12 @@ function handleSave(
} }
} }
const RichTextEditor = withStyles(styles, { name: "RichTextEditor" })( const RichTextEditor: React.FC<RichTextEditorProps> = props => {
({ const { error, helperText, initial, label, name, scroll, onChange } = props;
classes,
error, const classes = useStyles(props);
helperText,
initial, return (
label,
name,
scroll,
onChange
}: RichTextEditorProps & WithStyles<typeof styles>) => (
<div <div
className={classNames({ className={classNames({
[classes.error]: error, [classes.error]: error,
@ -302,8 +291,9 @@ const RichTextEditor = withStyles(styles, { name: "RichTextEditor" })(
</Typography> </Typography>
)} )}
</div> </div>
)
); );
};
RichTextEditor.displayName = "RichTextEditor"; RichTextEditor.displayName = "RichTextEditor";
RichTextEditor.defaultProps = { RichTextEditor.defaultProps = {
scroll: true scroll: true

View file

@ -1,2 +1,2 @@
export { default } from './RichTextEditor'; export { default } from "./RichTextEditor";
export * from './RichTextEditor'; export * from "./RichTextEditor";

View file

@ -1,11 +1,6 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import Portal from "@material-ui/core/Portal"; import Portal from "@material-ui/core/Portal";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
@ -19,8 +14,7 @@ import ConfirmButton, {
} from "../ConfirmButton/ConfirmButton"; } from "../ConfirmButton/ConfirmButton";
import Container from "../Container"; import Container from "../Container";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
button: { button: {
marginRight: theme.spacing(1) marginRight: theme.spacing(1)
}, },
@ -45,7 +39,7 @@ const styles = theme =>
root: { root: {
background: theme.palette.background.default, background: theme.palette.background.default,
borderTop: "1px solid transparent", borderTop: "1px solid transparent",
boxShadow: `0 -5px 5px 0 ${theme.overrides.MuiCard.root.borderColor}`, boxShadow: `0 -5px 5px 0 ${theme.palette.divider}`,
height: "100%", height: "100%",
transition: `box-shadow ${theme.transitions.duration.shortest}ms` transition: `box-shadow ${theme.transitions.duration.shortest}ms`
}, },
@ -54,13 +48,13 @@ const styles = theme =>
}, },
stop: { stop: {
"&$root": { "&$root": {
borderTopColor: theme.overrides.MuiCard.root.borderColor, borderTopColor: theme.palette.divider,
boxShadow: `0 0 0 0 ${theme.overrides.MuiCard.root.borderColor}` boxShadow: `0 0 0 0 ${theme.palette.divider}`
} }
} }
}); }));
interface SaveButtonBarProps extends WithStyles<typeof styles> { interface SaveButtonBarProps {
disabled: boolean; disabled: boolean;
state: ConfirmButtonTransitionState; state: ConfirmButtonTransitionState;
labels?: { labels?: {
@ -73,17 +67,18 @@ interface SaveButtonBarProps extends WithStyles<typeof styles> {
onSave(event: any); onSave(event: any);
} }
export const SaveButtonBar = withStyles(styles, { name: "SaveButtonBar" })( export const SaveButtonBar: React.FC<SaveButtonBarProps> = props => {
({ const {
classes,
disabled, disabled,
labels, labels,
state, state,
onCancel, onCancel,
onDelete, onDelete,
onSave, onSave,
...props ...rest
}: SaveButtonBarProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const scrollPosition = useWindowScroll(); const scrollPosition = useWindowScroll();
const scrolledToBottom = const scrolledToBottom =
@ -98,7 +93,7 @@ export const SaveButtonBar = withStyles(styles, { name: "SaveButtonBar" })(
className={classNames(classes.root, { className={classNames(classes.root, {
[classes.stop]: scrolledToBottom [classes.stop]: scrolledToBottom
})} })}
{...props} {...rest}
> >
<Container className={classes.container}> <Container className={classes.container}>
{!!onDelete && ( {!!onDelete && (
@ -143,7 +138,6 @@ export const SaveButtonBar = withStyles(styles, { name: "SaveButtonBar" })(
} }
</AppActionContext.Consumer> </AppActionContext.Consumer>
); );
} };
);
SaveButtonBar.displayName = "SaveButtonBar"; SaveButtonBar.displayName = "SaveButtonBar";
export default SaveButtonBar; export default SaveButtonBar;

View file

@ -1,2 +1,2 @@
export { default } from './SaveFilterTabDialog'; export { default } from "./SaveFilterTabDialog";
export * from './SaveFilterTabDialog'; export * from "./SaveFilterTabDialog";

View file

@ -1,12 +1,7 @@
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import Card from "@material-ui/core/Card"; import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent"; import CardContent from "@material-ui/core/CardContent";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
@ -16,8 +11,7 @@ import { FormattedMessage, useIntl } from "react-intl";
import CardTitle from "../CardTitle"; import CardTitle from "../CardTitle";
import FormSpacer from "../FormSpacer"; import FormSpacer from "../FormSpacer";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
addressBar: { addressBar: {
color: "#006621", color: "#006621",
fontSize: "13px", fontSize: "13px",
@ -62,9 +56,9 @@ const styles = theme =>
textDecoration: "none", textDecoration: "none",
wordWrap: "break-word" wordWrap: "break-word"
} }
}); }));
interface SeoFormProps extends WithStyles<typeof styles> { interface SeoFormProps {
description?: string; description?: string;
descriptionPlaceholder: string; descriptionPlaceholder: string;
disabled?: boolean; disabled?: boolean;
@ -76,9 +70,8 @@ interface SeoFormProps extends WithStyles<typeof styles> {
onClick?(); onClick?();
} }
const SeoForm = withStyles(styles, { name: "SeoForm" })( const SeoForm: React.FC<SeoFormProps> = props => {
({ const {
classes,
description, description,
descriptionPlaceholder, descriptionPlaceholder,
disabled, disabled,
@ -87,7 +80,9 @@ const SeoForm = withStyles(styles, { name: "SeoForm" })(
title, title,
titlePlaceholder, titlePlaceholder,
onChange onChange
}: SeoFormProps) => { } = props;
const classes = useStyles(props);
const intl = useIntl(); const intl = useIntl();
const [expanded, setExpansionStatus] = React.useState(false); const [expanded, setExpansionStatus] = React.useState(false);
const toggleExpansion = () => setExpansionStatus(!expanded); const toggleExpansion = () => setExpansionStatus(!expanded);
@ -187,7 +182,6 @@ const SeoForm = withStyles(styles, { name: "SeoForm" })(
</CardContent> </CardContent>
</Card> </Card>
); );
} };
);
SeoForm.displayName = "SeoForm"; SeoForm.displayName = "SeoForm";
export default SeoForm; export default SeoForm;

View file

@ -1,5 +1,5 @@
import { InputProps } from "@material-ui/core/Input"; import { InputProps } from "@material-ui/core/Input";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField"; import TextField from "@material-ui/core/TextField";
import Downshift from "downshift"; import Downshift from "downshift";
import { filter } from "fuzzaldrin"; import { filter } from "fuzzaldrin";
@ -13,7 +13,7 @@ import { FetchMoreProps } from "@saleor/types";
import ArrowDropdownIcon from "../../icons/ArrowDropdown"; import ArrowDropdownIcon from "../../icons/ArrowDropdown";
import Debounce, { DebounceProps } from "../Debounce"; import Debounce, { DebounceProps } from "../Debounce";
const styles = createStyles({ const useStyles = makeStyles({
container: { container: {
flexGrow: 1, flexGrow: 1,
position: "relative" position: "relative"
@ -42,12 +42,12 @@ const DebounceAutocomplete: React.ComponentType<
DebounceProps<string> DebounceProps<string>
> = Debounce; > = Debounce;
const SingleAutocompleteSelectFieldComponent = withStyles(styles, { const SingleAutocompleteSelectFieldComponent: React.FC<
name: "SingleAutocompleteSelectField" SingleAutocompleteSelectFieldProps
})( > = props => {
({ const {
choices, choices,
classes,
allowCustomValues, allowCustomValues,
disabled, disabled,
displayValue, displayValue,
@ -64,8 +64,10 @@ const SingleAutocompleteSelectFieldComponent = withStyles(styles, {
fetchChoices, fetchChoices,
onChange, onChange,
onFetchMore, onFetchMore,
...props ...rest
}: SingleAutocompleteSelectFieldProps & WithStyles<typeof styles>) => { } = props;
const classes = useStyles(props);
const [prevDisplayValue] = useStateFromProps(displayValue); const [prevDisplayValue] = useStateFromProps(displayValue);
const handleChange = item => const handleChange = item =>
@ -117,7 +119,7 @@ const SingleAutocompleteSelectFieldComponent = withStyles(styles, {
); );
return ( return (
<div className={classes.container} {...props}> <div className={classes.container} {...rest}>
<TextField <TextField
InputProps={{ InputProps={{
...InputProps, ...InputProps,
@ -162,12 +164,11 @@ const SingleAutocompleteSelectFieldComponent = withStyles(styles, {
)} )}
</DebounceAutocomplete> </DebounceAutocomplete>
); );
} };
);
const SingleAutocompleteSelectField: React.FC< const SingleAutocompleteSelectField: React.FC<
SingleAutocompleteSelectFieldProps SingleAutocompleteSelectFieldProps
> = ({ choices, fetchChoices, ...props }) => { > = ({ choices, fetchChoices, ...rest }) => {
const [query, setQuery] = React.useState(""); const [query, setQuery] = React.useState("");
if (fetchChoices) { if (fetchChoices) {
return ( return (
@ -175,7 +176,7 @@ const SingleAutocompleteSelectField: React.FC<
{debounceFn => ( {debounceFn => (
<SingleAutocompleteSelectFieldComponent <SingleAutocompleteSelectFieldComponent
choices={choices} choices={choices}
{...props} {...rest}
fetchChoices={debounceFn} fetchChoices={debounceFn}
/> />
)} )}
@ -189,7 +190,7 @@ const SingleAutocompleteSelectField: React.FC<
choices={filter(choices, query, { choices={filter(choices, query, {
key: "label" key: "label"
})} })}
{...props} {...rest}
/> />
); );
}; };

View file

@ -4,12 +4,12 @@ import InputLabel from "@material-ui/core/InputLabel";
import MenuItem from "@material-ui/core/MenuItem"; import MenuItem from "@material-ui/core/MenuItem";
import OutlinedInput from "@material-ui/core/OutlinedInput"; import OutlinedInput from "@material-ui/core/OutlinedInput";
import Select, { SelectProps } from "@material-ui/core/Select"; import Select, { SelectProps } from "@material-ui/core/Select";
import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import { makeStyles } from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
const styles = createStyles({ const useStyles = makeStyles({
formControl: { formControl: {
"& label": { "& label": {
top: "-3px" top: "-3px"
@ -18,7 +18,7 @@ const styles = createStyles({
} }
}); });
interface SingleSelectFieldProps extends WithStyles<typeof styles> { interface SingleSelectFieldProps {
choices: Array<{ choices: Array<{
value: string; value: string;
label: string | React.ReactNode; label: string | React.ReactNode;
@ -35,12 +35,10 @@ interface SingleSelectFieldProps extends WithStyles<typeof styles> {
onChange(event: any); onChange(event: any);
} }
export const SingleSelectField = withStyles(styles, { export const SingleSelectField: React.FC<SingleSelectFieldProps> = props => {
name: "SingleSelectField" const {
})(
({
className, className,
classes,
disabled, disabled,
error, error,
label, label,
@ -51,7 +49,9 @@ export const SingleSelectField = withStyles(styles, {
hint, hint,
selectProps, selectProps,
placeholder placeholder
}: SingleSelectFieldProps) => { } = props;
const classes = useStyles(props);
const choicesByKey: { [key: string]: string } = const choicesByKey: { [key: string]: string } =
choices === undefined choices === undefined
? {} ? {}
@ -93,7 +93,6 @@ export const SingleSelectField = withStyles(styles, {
{hint && <FormHelperText>{hint}</FormHelperText>} {hint && <FormHelperText>{hint}</FormHelperText>}
</FormControl> </FormControl>
); );
} };
);
SingleSelectField.displayName = "SingleSelectField"; SingleSelectField.displayName = "SingleSelectField";
export default SingleSelectField; export default SingleSelectField;

View file

@ -1,14 +1,8 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
"@keyframes skeleton-animation": { "@keyframes skeleton-animation": {
"0%": { "0%": {
opacity: 0.6 opacity: 0.6
@ -30,16 +24,20 @@ const styles = theme =>
height: "0.8em", height: "0.8em",
margin: "0.2em 0" margin: "0.2em 0"
} }
}); }));
interface SkeletonProps extends WithStyles<typeof styles> { interface SkeletonProps {
className?: string; className?: string;
primary?: boolean; primary?: boolean;
style?: React.CSSProperties; style?: React.CSSProperties;
} }
const Skeleton = withStyles(styles, { name: "Skeleton" })( const Skeleton: React.FC<SkeletonProps> = props => {
({ className, classes, primary, style }: SkeletonProps) => ( const { className, primary, style } = props;
const classes = useStyles(props);
return (
<span <span
className={classNames(classes.skeleton, className, { className={classNames(classes.skeleton, className, {
[classes.primary]: primary [classes.primary]: primary
@ -48,8 +46,8 @@ const Skeleton = withStyles(styles, { name: "Skeleton" })(
> >
&zwnj; &zwnj;
</span> </span>
)
); );
};
Skeleton.displayName = "Skeleton"; Skeleton.displayName = "Skeleton";
export default Skeleton; export default Skeleton;

View file

@ -20,13 +20,14 @@ const useStyles = makeStyles(theme => ({
}, },
background: theme.palette.background.paper, background: theme.palette.background.paper,
fontFamily: theme.typography.fontFamily, fontFamily: theme.typography.fontFamily,
fontSize: theme.overrides.MuiTableCell.root.fontSize, // FIXME: you damn know what
// fontSize: theme.overrides.MuiTableCell.root.fontSize,
opacity: 0.5 opacity: 0.5
} }
})); }));
const SortableTableBody: React.FC< const SortableTableBody: React.FC<
TableBodyProps & SortableTableBodyProps Omit<TableBodyProps & SortableTableBodyProps, "ref">
> = props => { > = props => {
const classes = useStyles({}); const classes = useStyles({});

View file

@ -1,15 +1,10 @@
import yellow from "@material-ui/core/colors/yellow"; import yellow from "@material-ui/core/colors/yellow";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Typography, { TypographyProps } from "@material-ui/core/Typography"; import Typography, { TypographyProps } from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => { const useStyles = makeStyles(theme => {
const dot = { const dot = {
borderRadius: "100%", borderRadius: "100%",
content: "''", content: "''",
@ -20,7 +15,8 @@ const styles = theme => {
top: "calc(50% - 5px)", top: "calc(50% - 5px)",
width: 8 width: 8
}; };
return createStyles({
return {
errorDot: { errorDot: {
"&:before": { backgroundColor: theme.palette.error.main, ...dot } "&:before": { backgroundColor: theme.palette.error.main, ...dot }
}, },
@ -38,24 +34,22 @@ const styles = theme => {
successDot: { successDot: {
"&:before": { backgroundColor: theme.palette.primary.main, ...dot } "&:before": { backgroundColor: theme.palette.primary.main, ...dot }
} }
});
}; };
});
interface StatusLabelProps extends WithStyles<typeof styles> { interface StatusLabelProps {
className?: string; className?: string;
label: string | React.ReactNode; label: string | React.ReactNode;
status: "success" | "neutral" | "error" | string; status: "success" | "neutral" | "error" | string;
typographyProps?: TypographyProps; typographyProps?: TypographyProps;
} }
const StatusLabel = withStyles(styles, { name: "StatusLabel" })( const StatusLabel: React.FC<StatusLabelProps> = props => {
({ const { className, label, status, typographyProps } = props;
classes,
className, const classes = useStyles(props);
label,
status, return (
typographyProps
}: StatusLabelProps) => (
<div <div
className={classNames({ className={classNames({
[classes.root]: true, [classes.root]: true,
@ -77,7 +71,7 @@ const StatusLabel = withStyles(styles, { name: "StatusLabel" })(
label label
)} )}
</div> </div>
)
); );
};
StatusLabel.displayName = "StatusLabel"; StatusLabel.displayName = "StatusLabel";
export default StatusLabel; export default StatusLabel;

View file

@ -1,16 +1,11 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import { fade } from "@material-ui/core/styles/colorManipulator"; import { fade } from "@material-ui/core/styles/colorManipulator";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(
createStyles({ theme => ({
active: { active: {
color: theme.typography.caption.color color: theme.typography.caption.color
}, },
@ -35,17 +30,23 @@ const styles = theme =>
padding: theme.spacing(1), padding: theme.spacing(1),
transition: theme.transitions.duration.short + "ms" transition: theme.transitions.duration.short + "ms"
} }
}); }),
{ name: "Tab" }
);
interface TabProps<T> extends WithStyles<typeof styles> { interface TabProps<T> {
children?: React.ReactNode; children?: React.ReactNode;
isActive: boolean; isActive: boolean;
changeTab: (index: T) => void; changeTab: (index: T) => void;
} }
export function Tab<T>(value: T) { export function Tab<T>(value: T) {
return withStyles(styles, { name: "Tab" })( const Component: React.FC<TabProps<T>> = props => {
({ classes, children, isActive, changeTab }: TabProps<T>) => ( const { children, isActive, changeTab } = props;
const classes = useStyles(props);
return (
<Typography <Typography
component="span" component="span"
className={classNames({ className={classNames({
@ -56,8 +57,10 @@ export function Tab<T>(value: T) {
> >
{children} {children}
</Typography> </Typography>
)
); );
};
return Component;
} }
export default Tab; export default Tab;

View file

@ -1,27 +1,23 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import React from "react"; import React from "react";
export interface TabContainerProps { export interface TabContainerProps {
children: React.ReactNode | React.ReactNodeArray; children: React.ReactNode | React.ReactNodeArray;
} }
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
root: { root: {
borderBottom: `1px solid ${theme.overrides.MuiCard.root.borderColor}` borderBottom: `1px solid ${theme.palette.divider}`
} }
}); }));
const TabContainer = withStyles(styles, { const TabContainer: React.FC<TabContainerProps> = props => {
name: "TabContainer" const { children } = props;
})(({ classes, children }: TabContainerProps & WithStyles<typeof styles>) => (
<div className={classes.root}>{children}</div> const classes = useStyles(props);
));
return <div className={classes.root}>{children}</div>;
};
TabContainer.displayName = "TabContainer"; TabContainer.displayName = "TabContainer";
export default TabContainer; export default TabContainer;

View file

@ -1,12 +1,10 @@
import React from "react"; import React from "react";
export interface TabsProps { export interface TabsProps {
children: ( children: (props: {
props: {
changeTab: (index: number) => void; changeTab: (index: number) => void;
currentTab: number; currentTab: number;
} }) => React.ReactNode;
) => React.ReactNode;
} }
interface TabsState { interface TabsState {

View file

@ -1,10 +1,5 @@
import Avatar from "@material-ui/core/Avatar"; import Avatar from "@material-ui/core/Avatar";
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import TableCell from "@material-ui/core/TableCell"; import TableCell from "@material-ui/core/TableCell";
import Cached from "@material-ui/icons/Cached"; import Cached from "@material-ui/icons/Cached";
import classNames from "classnames"; import classNames from "classnames";
@ -14,15 +9,14 @@ import Image from "../../icons/Image";
export const AVATAR_MARGIN = 56; export const AVATAR_MARGIN = 56;
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
avatar: { avatar: {
background: "none", background: "none",
border: `1px solid ${theme.overrides.MuiCard.root.borderColor}`, border: `1px solid ${theme.palette}`,
borderRadius: 2, borderRadius: 2,
color: "#bdbdbd", color: "#bdbdbd",
display: "inline-flex", display: "inline-flex",
padding: theme.spacing(.5) padding: theme.spacing(0.5)
}, },
children: { children: {
alignSelf: "center", alignSelf: "center",
@ -37,25 +31,22 @@ const styles = theme =>
paddingRight: theme.spacing(3), paddingRight: theme.spacing(3),
width: "1%" width: "1%"
} }
}); }));
interface TableCellAvatarProps extends WithStyles<typeof styles> { interface TableCellAvatarProps {
className?: string; className?: string;
thumbnail?: string; thumbnail?: string;
avatarProps?: string; avatarProps?: string;
children?: React.ReactNode | React.ReactNodeArray; children?: React.ReactNode | React.ReactNodeArray;
} }
const TableCellAvatar = withStyles(styles, { name: "TableCellAvatar" })( const TableCellAvatar: React.FC<TableCellAvatarProps> = props => {
({ const { children, className, thumbnail, avatarProps, ...rest } = props;
classes,
children, const classes = useStyles(props);
className,
thumbnail, return (
avatarProps, <TableCell className={classNames(classes.root, className)} {...rest}>
...props
}: TableCellAvatarProps) => (
<TableCell className={classNames(classes.root, className)} {...props}>
<div className={classes.content}> <div className={classes.content}>
{thumbnail === undefined ? ( {thumbnail === undefined ? (
<Avatar className={classNames(classes.avatar, avatarProps)}> <Avatar className={classNames(classes.avatar, avatarProps)}>
@ -74,7 +65,7 @@ const TableCellAvatar = withStyles(styles, { name: "TableCellAvatar" })(
<div className={classes.children}>{children}</div> <div className={classes.children}>{children}</div>
</div> </div>
</TableCell> </TableCell>
)
); );
};
TableCellAvatar.displayName = "TableCellAvatar"; TableCellAvatar.displayName = "TableCellAvatar";
export default TableCellAvatar; export default TableCellAvatar;

View file

@ -6,7 +6,6 @@ import ClearIcon from "@material-ui/icons/Clear";
import React from "react"; import React from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import Filter from "../Filter";
import FilterActions, { FilterActionsProps } from "../Filter/FilterActions"; import FilterActions, { FilterActionsProps } from "../Filter/FilterActions";
import Hr from "../Hr"; import Hr from "../Hr";
import Link from "../Link"; import Link from "../Link";

View file

@ -1,15 +1,9 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Tab from "@material-ui/core/Tab"; import Tab from "@material-ui/core/Tab";
import classNames from "classnames"; import classNames from "classnames";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
selectedTabLabel: { selectedTabLabel: {
"&$tabLabel": { "&$tabLabel": {
color: theme.typography.body1.color color: theme.typography.body1.color
@ -29,17 +23,21 @@ const styles = theme =>
paddingTop: theme.spacing(1), paddingTop: theme.spacing(1),
textTransform: "initial" as "initial" textTransform: "initial" as "initial"
} }
}); }));
interface FilterTabProps extends WithStyles<typeof styles> { interface FilterTabProps {
onClick: () => void; onClick: () => void;
label: string; label: string;
selected?: boolean; selected?: boolean;
value?: number; value?: number;
} }
export const FilterTab = withStyles(styles, { name: "FilterTab" })( export const FilterTab: React.FC<FilterTabProps> = props => {
({ classes, onClick, label, selected, value }: FilterTabProps) => ( const { onClick, label, selected, value } = props;
const classes = useStyles(props);
return (
<Tab <Tab
disableRipple disableRipple
label={label} label={label}
@ -52,7 +50,7 @@ export const FilterTab = withStyles(styles, { name: "FilterTab" })(
onClick={onClick} onClick={onClick}
value={value} value={value}
/> />
)
); );
};
FilterTab.displayName = "FilterTab"; FilterTab.displayName = "FilterTab";
export default FilterTab; export default FilterTab;

View file

@ -1,27 +1,25 @@
import { import { makeStyles } from "@material-ui/core/styles";
createStyles,
Theme,
withStyles,
WithStyles
} from "@material-ui/core/styles";
import Tabs from "@material-ui/core/Tabs"; import Tabs from "@material-ui/core/Tabs";
import React from "react"; import React from "react";
const styles = theme => const useStyles = makeStyles(theme => ({
createStyles({
tabsRoot: { tabsRoot: {
borderBottom: `1px solid ${theme.overrides.MuiCard.root.borderColor}`, borderBottom: `1px solid ${theme.palette.divider}`,
paddingLeft: theme.spacing(3) paddingLeft: theme.spacing(3)
} }
}); }));
interface FilterTabsProps extends WithStyles<typeof styles> { interface FilterTabsProps {
children?: React.ReactNode; children?: React.ReactNode;
currentTab: number; currentTab: number;
} }
export const FilterTabs = withStyles(styles, { name: "FilterTabs" })( export const FilterTabs: React.FC<FilterTabsProps> = props => {
({ classes, children, currentTab }: FilterTabsProps) => ( const { children, currentTab } = props;
const classes = useStyles(props);
return (
<Tabs <Tabs
className={classes.tabsRoot} className={classes.tabsRoot}
value={currentTab} value={currentTab}
@ -29,7 +27,7 @@ export const FilterTabs = withStyles(styles, { name: "FilterTabs" })(
> >
{children} {children}
</Tabs> </Tabs>
)
); );
};
export default FilterTabs; export default FilterTabs;

Some files were not shown because too many files have changed in this diff Show more