diff --git a/.all-contributorsrc b/.all-contributorsrc index a7b41bd699e..abb18ce8409 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1440,6 +1440,15 @@ "contributions": [ "code" ] + }, + { + "login": "sajadhsm", + "name": "Sajad Hashemian", + "avatar_url": "https://avatars3.githubusercontent.com/u/20022818?v=4", + "profile": "https://github.com/sajadhsm", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 096bf5ad22f..f92cd187494 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,7 @@ Thanks goes to these wonderful people milap1296
milap1296

💻 yevhen orlov
yevhen orlov

💻 Nilesh Patel
Nilesh Patel

💻 + Sajad Hashemian
Sajad Hashemian

💻 diff --git a/packages/app/src/app/components/IntegrationModal/IntegrationModal.tsx b/packages/app/src/app/components/IntegrationModal/IntegrationModal.tsx index 725a2d11f6d..ac2b390410a 100644 --- a/packages/app/src/app/components/IntegrationModal/IntegrationModal.tsx +++ b/packages/app/src/app/components/IntegrationModal/IntegrationModal.tsx @@ -13,7 +13,7 @@ import { interface IIntegrationModalProps { title: string; - subtitle: string; + subtitle: string | React.ReactNode; signedIn: boolean; Integration: React.ComponentType; name: string; diff --git a/packages/app/src/app/pages/common/Modals/DeploymentModal/Cube/elements.js b/packages/app/src/app/pages/common/Modals/DeploymentModal/Cube/elements.js deleted file mode 100644 index 16c89b8164c..00000000000 --- a/packages/app/src/app/pages/common/Modals/DeploymentModal/Cube/elements.js +++ /dev/null @@ -1,42 +0,0 @@ -import styled, { css, keyframes } from 'styled-components'; - -const rotateAnimation = keyframes` - 0% { - transform: rotateX(-37.5deg) rotateY(45deg); - } - 100% { - transform: rotateX(-37.5deg) rotateY(405deg); - } -`; -export const Cube = styled.div` - position: absolute; - width: ${props => props.size + 1}px; - height: ${props => props.size + 1}px; - - * { - position: absolute; - width: ${props => props.size + 1}px; - height: ${props => props.size + 1}px; - } -`; - -export const Sides = styled.div` - ${({ noAnimation }) => - !noAnimation && - css` - animation: ${rotateAnimation} 1s linear infinite; - `}; - transform-style: preserve-3d; - transform: rotateX(-37.5deg) rotateY(45deg); - - * { - box-sizing: border-box; - background-color: rgba(242, 119, 119, 0.5); - border: ${({ size }) => size / 10}px solid white; - } -`; - -export const Side = styled.div` - transform-origin: 50% 50%; - transform: ${({ rotate }) => rotate} translateZ(${({ size }) => size / 2}px); -`; diff --git a/packages/app/src/app/pages/common/Modals/DeploymentModal/Cube/index.js b/packages/app/src/app/pages/common/Modals/DeploymentModal/Cube/index.js deleted file mode 100644 index e282765360c..00000000000 --- a/packages/app/src/app/pages/common/Modals/DeploymentModal/Cube/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import { Cube, Sides, Side } from './elements'; - -function CubeComponent({ size = 150, noAnimation, className }) { - return ( - - - - - - - - - - - ); -} - -export default CubeComponent; diff --git a/packages/app/src/app/pages/common/Modals/DeploymentModal/index.js b/packages/app/src/app/pages/common/Modals/DeploymentModal/DeploymentModal.tsx similarity index 77% rename from packages/app/src/app/pages/common/Modals/DeploymentModal/index.js rename to packages/app/src/app/pages/common/Modals/DeploymentModal/DeploymentModal.tsx index 8f9cb16e8b0..a9ec3c3f4c5 100644 --- a/packages/app/src/app/pages/common/Modals/DeploymentModal/index.js +++ b/packages/app/src/app/pages/common/Modals/DeploymentModal/DeploymentModal.tsx @@ -1,8 +1,8 @@ -import React from 'react'; +import React, { FunctionComponent } from 'react'; import { Button } from '@codesandbox/common/lib/components/Button'; import Centered from '@codesandbox/common/lib/components/flex/Centered'; import Margin from '@codesandbox/common/lib/components/spacing/Margin'; -import { inject, observer } from 'app/componentConnectors'; +import { useOvermind } from 'app/overmind'; import { ZeitIntegration } from 'app/pages/common/ZeitIntegration'; import { IntegrationModal } from 'app/components/IntegrationModal'; import track from '@codesandbox/common/lib/utils/analytics'; @@ -17,10 +17,20 @@ import { DeploymentManagementNotice, } from './elements'; -function DeploymentModal({ store, signals }) { - const { user } = store; +export const DeploymentModal: FunctionComponent = () => { + const { + state: { + user: { + integrations: { zeit }, + }, + deployment: { deploying, url }, + }, + actions: { + deployment: { deployClicked }, + }, + } = useOvermind(); - const zeitSignedIn = user.integrations.zeit; + const zeitSignedIn = !!zeit; return ( - {store.deployment.deploying && ( + {deploying && ( Deploying sandbox... - + {[0, 1, 2, 3].map(i => ( @@ -56,17 +66,17 @@ function DeploymentModal({ store, signals }) { )} - {store.deployment.url ? ( + {url ? ( Deployed! - {store.deployment.url} + {url} @@ -83,13 +93,13 @@ function DeploymentModal({ store, signals }) { ) : ( - + @@ -98,6 +108,4 @@ function DeploymentModal({ store, signals }) { ); -} - -export default inject('store', 'signals')(observer(DeploymentModal)); +}; diff --git a/packages/app/src/app/pages/common/Modals/DeploymentModal/elements.js b/packages/app/src/app/pages/common/Modals/DeploymentModal/elements.ts similarity index 67% rename from packages/app/src/app/pages/common/Modals/DeploymentModal/elements.js rename to packages/app/src/app/pages/common/Modals/DeploymentModal/elements.ts index d795276db1b..4ff73195f8f 100644 --- a/packages/app/src/app/pages/common/Modals/DeploymentModal/elements.js +++ b/packages/app/src/app/pages/common/Modals/DeploymentModal/elements.ts @@ -1,9 +1,9 @@ -import styled, { keyframes } from 'styled-components'; +import styled, { css, keyframes } from 'styled-components'; import delayInEffect from '@codesandbox/common/lib/utils/animation/delay-effect'; import delayOutEffect from '@codesandbox/common/lib/utils/animation/delay-out-effect'; import { NowLogo } from 'app/components/NowLogo'; import { OpaqueLogo } from 'app/components/OpaqueLogo'; -import Cube from './Cube'; +import { Cube } from 'app/components/Cube'; const cubeAnimation = keyframes` 0% { @@ -23,24 +23,28 @@ const cubeAnimation = keyframes` } `; -export const ButtonContainer = styled.div` - margin: 2rem 4rem; - margin-bottom: 3rem; - ${delayInEffect()} ${({ deploying }) => - deploying && delayOutEffect(0, false)}; +export const ButtonContainer = styled.div<{ deploying: boolean }>` + ${({ deploying }) => css` + margin: 2rem 4rem; + margin-bottom: 3rem; + ${delayInEffect()} + ${deploying && delayOutEffect(0, false)}; + `} `; -export const DeployAnimationContainer = styled.div` - display: flex; - justify-content: center; - align-items: center; - position: absolute; - top: 16px; - bottom: 10px; - right: 0; - left: 0; +export const DeployAnimationContainer = styled.div<{ deploying: boolean }>` + ${({ deploying }) => css` + display: flex; + justify-content: center; + align-items: center; + position: absolute; + top: 16px; + bottom: 10px; + right: 0; + left: 0; - ${({ deploying }) => deploying && delayInEffect(0, false)}; + ${deploying && delayInEffect(0, false)}; + `} `; export const StyledNowLogo = styled(NowLogo)` @@ -49,7 +53,7 @@ export const StyledNowLogo = styled(NowLogo)` transform: translateY(10px) translateX(80px); `; -export const StyledCube = styled(Cube)` +export const StyledCube = styled(Cube)<{ i: number }>` position: absolute; animation: ${cubeAnimation} 2s ease-in infinite; animation-delay: ${({ i }) => i * 0.5}s; diff --git a/packages/app/src/app/pages/common/Modals/DeploymentModal/index.ts b/packages/app/src/app/pages/common/Modals/DeploymentModal/index.ts new file mode 100644 index 00000000000..6a65fee8a25 --- /dev/null +++ b/packages/app/src/app/pages/common/Modals/DeploymentModal/index.ts @@ -0,0 +1 @@ +export { DeploymentModal } from './DeploymentModal'; diff --git a/packages/app/src/app/pages/common/Modals/index.js b/packages/app/src/app/pages/common/Modals/index.js index 7bac3e035f5..b073f0e6b65 100644 --- a/packages/app/src/app/pages/common/Modals/index.js +++ b/packages/app/src/app/pages/common/Modals/index.js @@ -12,7 +12,7 @@ import CommitModal from './CommitModal'; import { DeleteDeploymentModal } from './DeleteDeploymentModal'; import { DeleteProfileSandboxModal } from './DeleteProfileSandboxModal'; import DeleteSandboxModal from './DeleteSandboxModal'; -import DeploymentModal from './DeploymentModal'; +import { DeploymentModal } from './DeploymentModal'; import { EmptyTrash } from './EmptyTrash'; import ExportGitHubModal from './ExportGitHubModal'; import { FeedbackModal } from './FeedbackModal';