From b58068d108055130777b3a48a4fc0cf3420c9fc3 Mon Sep 17 00:00:00 2001 From: Arkadyuti Sarkar Date: Sat, 29 Mar 2025 16:01:00 +0530 Subject: [PATCH] refactored get started flow & code --- ...nSetupForm.jsx => DomainSetupForm-old.jsx} | 0 .../DeploymentOptions/AppDeployment.jsx | 30 ++ .../DeploymentOptions/SourceDeployment.jsx | 79 ++++++ .../DeploymentOptions/StaticDeployment.jsx | 53 ++++ .../DeploymentOptions/TemplateDeployment.jsx | 46 +++ .../DeploymentOptions/index.jsx | 98 +++++++ .../DomainConfiguration/CustomDomain.jsx | 155 ++++++++++ .../DomainConfiguration/DnsConfiguration.jsx | 161 +++++++++++ .../DomainConfiguration/index.jsx | 91 ++++++ src/components/DomainSetupForm/index.jsx | 136 +++++++++ .../atoms/SelectWithLabel/SelectWithLabel.tsx | 22 ++ .../atoms/SelectWithLabel/index.tsx | 0 src/components/shared/TemplatePreview.jsx | 80 ++++++ src/components/shared/Toast.jsx | 20 ++ src/hooks/useDeploymentConfig.js | 103 +++++++ src/hooks/useDnsVerification.js | 62 ++++ src/hooks/useDomainConfig.js | 267 ++++++++++++++++++ src/hooks/useFormValidation.js | 57 ++++ src/hooks/useToast.js | 36 +++ src/utils/domainUtils.js | 72 +++++ 20 files changed, 1568 insertions(+) rename src/components/{DomainSetupForm.jsx => DomainSetupForm-old.jsx} (100%) create mode 100644 src/components/DomainSetupForm/DeploymentOptions/AppDeployment.jsx create mode 100644 src/components/DomainSetupForm/DeploymentOptions/SourceDeployment.jsx create mode 100644 src/components/DomainSetupForm/DeploymentOptions/StaticDeployment.jsx create mode 100644 src/components/DomainSetupForm/DeploymentOptions/TemplateDeployment.jsx create mode 100644 src/components/DomainSetupForm/DeploymentOptions/index.jsx create mode 100644 src/components/DomainSetupForm/DomainConfiguration/CustomDomain.jsx create mode 100644 src/components/DomainSetupForm/DomainConfiguration/DnsConfiguration.jsx create mode 100644 src/components/DomainSetupForm/DomainConfiguration/index.jsx create mode 100644 src/components/DomainSetupForm/index.jsx create mode 100644 src/components/atoms/SelectWithLabel/SelectWithLabel.tsx create mode 100644 src/components/atoms/SelectWithLabel/index.tsx create mode 100644 src/components/shared/TemplatePreview.jsx create mode 100644 src/components/shared/Toast.jsx create mode 100644 src/hooks/useDeploymentConfig.js create mode 100644 src/hooks/useDnsVerification.js create mode 100644 src/hooks/useDomainConfig.js create mode 100644 src/hooks/useFormValidation.js create mode 100644 src/hooks/useToast.js create mode 100644 src/utils/domainUtils.js diff --git a/src/components/DomainSetupForm.jsx b/src/components/DomainSetupForm-old.jsx similarity index 100% rename from src/components/DomainSetupForm.jsx rename to src/components/DomainSetupForm-old.jsx diff --git a/src/components/DomainSetupForm/DeploymentOptions/AppDeployment.jsx b/src/components/DomainSetupForm/DeploymentOptions/AppDeployment.jsx new file mode 100644 index 0000000..c6fd7ae --- /dev/null +++ b/src/components/DomainSetupForm/DeploymentOptions/AppDeployment.jsx @@ -0,0 +1,30 @@ +import React from 'react'; + +/** + * Component for app deployment options + * @param {Object} props - Component props + * @param {string} props.appType - Selected app type + * @param {Function} props.onAppTypeChange - Handler for app type change + * @returns {JSX.Element} - Rendered component + */ +const AppDeployment = ({ appType, onAppTypeChange }) => { + return ( +
+ + +
+ ); +}; + +export default AppDeployment; \ No newline at end of file diff --git a/src/components/DomainSetupForm/DeploymentOptions/SourceDeployment.jsx b/src/components/DomainSetupForm/DeploymentOptions/SourceDeployment.jsx new file mode 100644 index 0000000..bc2fbc0 --- /dev/null +++ b/src/components/DomainSetupForm/DeploymentOptions/SourceDeployment.jsx @@ -0,0 +1,79 @@ +import React from 'react'; + +/** + * Component for source code deployment options + * @param {Object} props - Component props + * @param {string} props.sourceType - Source type (public/private) + * @param {string} props.repoUrl - Repository URL + * @param {string} props.deploymentKey - Deployment key for private repos + * @param {Function} props.onSourceTypeChange - Handler for source type change + * @param {Function} props.onRepoUrlChange - Handler for repo URL change + * @param {Function} props.onDeploymentKeyChange - Handler for deployment key change + * @param {Function} props.showToast - Function to show toast notifications + * @returns {JSX.Element} - Rendered component + */ +const SourceDeployment = ({ + sourceType, + repoUrl, + deploymentKey, + onSourceTypeChange, + onRepoUrlChange, + onDeploymentKeyChange, + showToast + }) => { + return ( +
+
+ + +
+ +
+ + +
+ + {sourceType === 'private' && ( +
+
+ + +
+