From 5cdb82faaaea9c9a154e94a03959dc53a73987de Mon Sep 17 00:00:00 2001 From: Alan Hoskins Date: Mon, 14 Oct 2019 09:03:08 -0400 Subject: [PATCH 1/2] Refactored app/pages/common/Modals/ForkServerModal --- .../common/Modals/ForkServerModal/index.js | 45 ----------------- .../common/Modals/ForkServerModal/index.tsx | 48 +++++++++++++++++++ 2 files changed, 48 insertions(+), 45 deletions(-) delete mode 100644 packages/app/src/app/pages/common/Modals/ForkServerModal/index.js create mode 100644 packages/app/src/app/pages/common/Modals/ForkServerModal/index.tsx diff --git a/packages/app/src/app/pages/common/Modals/ForkServerModal/index.js b/packages/app/src/app/pages/common/Modals/ForkServerModal/index.js deleted file mode 100644 index 57a3507c403..00000000000 --- a/packages/app/src/app/pages/common/Modals/ForkServerModal/index.js +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; -import { inject, observer } from 'app/componentConnectors'; -import getTemplateDefinition from '@codesandbox/common/lib/templates'; -import { SignInButton } from 'app/pages/common/SignInButton'; - -import { Container, Heading, Explanation } from '../elements'; - -class ForkServerModal extends React.Component { - UNSAFE_componentWillUpdate() { - // Which means that the user signed in in the meantime with the intention to - // fork - if (this.props.store.loggedIn) { - this.props.signals.editor.forkSandboxClicked(); - this.props.signals.modalClosed(); - } - } - - render() { - const { store } = this.props; - const template = - store.editor.currentSandbox && store.editor.currentSandbox.template; - - const templateDefinition = getTemplateDefinition(template); - const niceName = ( - - {templateDefinition.niceName} - - ); - - return ( - - Fork {niceName} Sandbox - - We execute {niceName} sandboxes in a server container. This is still - in beta, so we require you to sign in before you can fork a {niceName}{' '} - sandbox. - - - - - ); - } -} - -export default inject('store', 'signals')(observer(ForkServerModal)); diff --git a/packages/app/src/app/pages/common/Modals/ForkServerModal/index.tsx b/packages/app/src/app/pages/common/Modals/ForkServerModal/index.tsx new file mode 100644 index 00000000000..3c407bee998 --- /dev/null +++ b/packages/app/src/app/pages/common/Modals/ForkServerModal/index.tsx @@ -0,0 +1,48 @@ +import React, { useEffect } from 'react'; +import { useOvermind } from 'app/overmind'; +import getTemplateDefinition from '@codesandbox/common/lib/templates'; +import { SignInButton } from 'app/pages/common/SignInButton'; + +import { Container, Heading, Explanation } from '../elements'; + +export const ForkServerModal: React.FC = () => { + const { + state: { + isLoggedIn, + editor: { currentSandbox }, + }, + actions: { + modalClosed, + editor: { forkSandboxClicked }, + }, + } = useOvermind(); + + useEffect(() => { + // Which means that the user signed in in the meantime with the intention to + // fork + if (isLoggedIn) { + forkSandboxClicked(); + modalClosed(); + } + }, [forkSandboxClicked, isLoggedIn, modalClosed]); + + const templateDefinition = getTemplateDefinition(currentSandbox.template); + const niceName = ( + + {templateDefinition.niceName} + + ); + + return ( + + Fork {niceName} Sandbox + + We execute {niceName} sandboxes in a server container. This is still in + beta, so we require you to sign in before you can fork a {niceName}{' '} + sandbox. + + + + + ); +}; From 1f30ae4fdc25bb004b4bf0d1e8b4903c9c45d46f Mon Sep 17 00:00:00 2001 From: Christian Alfoni Date: Tue, 15 Oct 2019 13:20:55 +0200 Subject: [PATCH 2/2] fix import of ForkServerModal --- .../app/src/app/pages/common/Modals/index.js | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/app/src/app/pages/common/Modals/index.js b/packages/app/src/app/pages/common/Modals/index.js index 62cdd565c85..65892adeb52 100644 --- a/packages/app/src/app/pages/common/Modals/index.js +++ b/packages/app/src/app/pages/common/Modals/index.js @@ -1,38 +1,38 @@ -import React, { Component } from 'react'; +import getTemplateDefinition from '@codesandbox/common/lib/templates'; +import codesandbox from '@codesandbox/common/lib/themes/codesandbox.json'; import { inject, observer } from 'app/componentConnectors'; -import { ThemeProvider } from 'styled-components'; import Modal from 'app/components/Modal'; +import getVSCodeTheme from 'app/src/app/pages/Sandbox/Editor/utils/get-vscode-theme'; import Loadable from 'app/utils/Loadable'; import { templateColor } from 'app/utils/template-color'; -import getTemplateDefinition from '@codesandbox/common/lib/templates'; -import codesandbox from '@codesandbox/common/lib/themes/codesandbox.json'; -import getVSCodeTheme from 'app/src/app/pages/Sandbox/Editor/utils/get-vscode-theme'; +import React, { Component } from 'react'; +import { ThemeProvider } from 'styled-components'; -import NewSandbox from './NewSandbox'; -import PreferencesModal from './PreferencesModal'; -import DeleteSandboxModal from './DeleteSandboxModal'; -import DeleteDeploymentModal from './DeleteDeploymentModal'; -import ShareModal from './ShareModal'; -import DeploymentModal from './DeploymentModal'; -import ExportGitHubModal from './ExportGitHubModal'; import CommitModal from './CommitModal'; -import PRModal from './PRModal'; -import SelectSandboxModal from './SelectSandboxModal'; -import SearchDependenciesModal from './SearchDependenciesModal'; +import DeleteDeploymentModal from './DeleteDeploymentModal'; import DeleteProfileSandboxModal from './DeleteProfileSandboxModal'; +import DeleteSandboxModal from './DeleteSandboxModal'; +import DeploymentModal from './DeploymentModal'; import EmptyTrash from './EmptyTrash'; +import ExportGitHubModal from './ExportGitHubModal'; +import FeedbackModal from './FeedbackModal'; +import { ForkServerModal } from './ForkServerModal'; import LiveSessionEnded from './LiveSessionEnded'; import LiveSessionVersionMismatch from './LiveSessionVersionMismatch'; -import UploadModal from './UploadModal'; -import StorageManagementModal from './StorageManagementModal'; -import ForkServerModal from './ForkServerModal'; -import PrivacyServerWarning from './PrivacyServerWarning'; -import PickSandboxModal from './PickSandboxModal'; -import FeedbackModal from './FeedbackModal'; import NetlifyLogs from './NetlifyLogs'; +import NewSandbox from './NewSandbox'; +import PickSandboxModal from './PickSandboxModal'; +import PreferencesModal from './PreferencesModal'; +import PrivacyServerWarning from './PrivacyServerWarning'; +import PRModal from './PRModal'; +import SearchDependenciesModal from './SearchDependenciesModal'; +import SelectSandboxModal from './SelectSandboxModal'; +import ShareModal from './ShareModal'; // eslint-disable-next-line import SignInForTemplates from './SignInForTemplates/index.ts'; +import StorageManagementModal from './StorageManagementModal'; import { SurveyModal } from './SurveyModal'; +import UploadModal from './UploadModal'; const MoveSandboxFolderModal = Loadable(() => import('./MoveSandboxFolderModal')