From 1ed3460fb07383bf5918dd6abfffab6b8af261f1 Mon Sep 17 00:00:00 2001 From: Brad Adams Date: Wed, 10 May 2023 02:14:22 +0200 Subject: [PATCH 1/3] feat: initial `@emotion` migration --- packages/react/.babelrc | 3 +- packages/react/package.json | 10 +- packages/react/rollup.config.js | 4 +- .../src/components/Card/CardAnimation.js | 2 +- .../react/src/components/Card/CardContent.js | 25 +- .../react/src/components/Card/CardEmpty.js | 2 +- .../Card/CardMedia/Controls/FooterControls.js | 20 +- .../Card/CardMedia/Controls/MediaButton.js | 2 +- .../Card/CardMedia/Controls/PlaybackButton.js | 9 +- .../Controls/ProgressBar/Scrubber.js | 26 +- .../CardMedia/Controls/ProgressBar/Tooltip.js | 24 +- .../CardMedia/Controls/ProgressBar/index.js | 78 +- .../Card/CardMedia/Controls/SeekButton.js | 2 +- .../Card/CardMedia/Controls/Spinner.js | 17 +- .../Card/CardMedia/Controls/index.js | 9 +- .../src/components/Card/CardMedia/Image.js | 8 +- .../src/components/Card/CardMedia/Video.js | 2 +- .../src/components/Card/CardMedia/Wrap.js | 10 +- .../src/components/Card/CardMedia/loader.js | 13 +- .../react/src/components/Card/CardText.js | 3 +- .../react/src/components/Card/CardWrap.js | 34 +- packages/react/src/utils/index.js | 2 +- .../stories/__snapshots__/index.test.js.snap | 19465 +++++++++------- packages/react/stories/createStoryEntry.js | 2 +- packages/react/stories/index.test.js | 5 +- 25 files changed, 11392 insertions(+), 8385 deletions(-) diff --git a/packages/react/.babelrc b/packages/react/.babelrc index bc21ecb9c..5550e1a23 100644 --- a/packages/react/.babelrc +++ b/packages/react/.babelrc @@ -16,7 +16,8 @@ ], "plugins": [ "@babel/plugin-proposal-class-properties", - "@babel/plugin-proposal-object-rest-spread" + "@babel/plugin-proposal-object-rest-spread", + "@emotion" ], "env": { "production": { diff --git a/packages/react/package.json b/packages/react/package.json index cfa630ab8..cf0f1d8af 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -37,6 +37,9 @@ "@babel/preset-env": "latest", "@babel/preset-react": "latest", "@babel/runtime": "latest", + "@emotion/jest": "latest", + "@emotion/react": "latest", + "@emotion/styled": "latest", "@microlink/demo-links": "latest", "@rollup/plugin-babel": "latest", "@rollup/plugin-commonjs": "latest", @@ -56,7 +59,6 @@ "jest": "26", "jest-environment-enzyme": "latest", "jest-enzyme": "latest", - "jest-styled-components": "latest", "lodash": "latest", "prop-types": "latest", "react": "^17", @@ -64,7 +66,6 @@ "rollup": "latest", "rollup-plugin-filesize": "latest", "rollup-plugin-visualizer": "latest", - "styled-components": "latest", "unfetch": "latest" }, "engines": { @@ -91,9 +92,10 @@ "verbose": true }, "peerDependencies": { + "@emotion/react": "^11", + "@emotion/styled": "^11", "react": ">= 17", - "react-dom": ">= 17", - "styled-components": "^5" + "react-dom": ">= 17" }, "publishConfig": { "access": "public" diff --git a/packages/react/rollup.config.js b/packages/react/rollup.config.js index 61f2f424a..46874ad68 100644 --- a/packages/react/rollup.config.js +++ b/packages/react/rollup.config.js @@ -12,7 +12,8 @@ const babelRc = JSON.parse(fs.readFileSync('./.babelrc')) const globals = { react: 'React', 'react-dom': 'ReactDOM', - 'styled-components': 'styled', + '@emotion/styled': 'emotionStyled', + '@emotion/react': 'emotionReact', '@microlink/mql': 'mql' } @@ -40,7 +41,6 @@ const build = ({ file, format, name, exports }) => { return { input: './src/index.js', output: { - interop: id => (id === 'styled-components' ? 'esModule' : 'default'), sourcemap: compress, file, format, diff --git a/packages/react/src/components/Card/CardAnimation.js b/packages/react/src/components/Card/CardAnimation.js index f067544b4..7cde74a7e 100644 --- a/packages/react/src/components/Card/CardAnimation.js +++ b/packages/react/src/components/Card/CardAnimation.js @@ -1,4 +1,4 @@ -import { css, keyframes } from 'styled-components' +import { css, keyframes } from '@emotion/react' const emptyStatePulse = keyframes` 0% { diff --git a/packages/react/src/components/Card/CardContent.js b/packages/react/src/components/Card/CardContent.js index 2b1e1399c..ac2d54de4 100644 --- a/packages/react/src/components/Card/CardContent.js +++ b/packages/react/src/components/Card/CardContent.js @@ -1,9 +1,10 @@ /* global URL */ import React, { useCallback, useMemo, useContext } from 'react' -import styled, { css } from 'styled-components' -import CardText from './CardText' +import { css } from '@emotion/react' +import styled from '@emotion/styled' +import CardText from './CardText' import { transition } from '../../theme' import { classNames, media, isLarge, isSmall, isNil } from '../../utils' import { GlobalContext } from '../../context/GlobalState' @@ -28,7 +29,7 @@ const mobileDescriptionStyle = css` `}; ` -export const Content = styled('div').attrs({ className: classNames.content })` +export const Content = styled('div')` display: flex; padding: 10px 15px; min-width: 0; @@ -41,7 +42,9 @@ export const Content = styled('div').attrs({ className: classNames.content })` `}; ` -const Header = styled('header').attrs({ className: classNames.title })` +Content.defaultProps = { className: classNames.content } + +const Header = styled('header')` text-align: left; font-weight: bold; margin: 0; @@ -58,7 +61,7 @@ const Header = styled('header').attrs({ className: classNames.title })` `} ` -const Description = styled('div').attrs({ className: classNames.description })` +const Description = styled('div')` text-align: left; font-size: 14px; flex-grow: 2; @@ -68,7 +71,7 @@ const Description = styled('div').attrs({ className: classNames.description })` ${({ cardSize }) => !isLarge(cardSize) && mobileDescriptionStyle}; ` -const Footer = styled('footer').attrs({ className: classNames.url })` +const Footer = styled('footer')` display: flex; align-items: center; justify-content: space-between; @@ -92,7 +95,7 @@ const Author = styled(CardText)` } ` -const PoweredBy = styled('span').attrs({ title: 'microlink.io' })` +const PoweredBy = styled('span')` background: url('https://cdn.microlink.io/logo/logo.svg') no-repeat center center; display: block; @@ -124,17 +127,17 @@ const CardContent = () => { return ( -
+
{title}
{!isSmallCard && ( - + {description} )} -