From f18e3a9dc57947356b4e37648424e3baaefd3a49 Mon Sep 17 00:00:00 2001 From: Joie Cosby Date: Fri, 12 May 2023 15:44:03 -0700 Subject: [PATCH 1/7] =?UTF-8?q?Allow=20user=20to=20add=20a=20name=20to=20a?= =?UTF-8?q?=20deployment=20so=20that=20in=20history=20it=20can=20be=20more?= =?UTF-8?q?=20easily=20identified=C2=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adding new functionality that will allow users to save deployments. This should be accessible from all deployment options resolves #331 --- .../DeployMetadataHistoryTable.tsx | 6 ++++++ .../deploy/utils/DeployMetadataOptions.tsx | 15 ++++++++++++++- .../deploy/utils/DeployMetadataStatusModal.tsx | 5 ++++- .../deploy/utils/deploy-metadata.utils.tsx | 1 + libs/types/src/lib/salesforce/types.ts | 2 ++ libs/types/src/lib/ui/types.ts | 1 + 6 files changed, 28 insertions(+), 2 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx index 7d55f9f95..f968b7400 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx @@ -19,6 +19,12 @@ const COLUMNS: ColumnWithFilter[] = [ key: 'start', width: 200, }, + { + ...setColumnFromType('name', 'text'), + name: 'Deployment History Name', + key: 'deploymentHistoryName', + width: 165, + }, { ...setColumnFromType('type', 'text'), name: 'Type', diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx index d91615d12..9c74e4e05 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/react'; import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; import { DeployOptions, DeployOptionsTestLevel } from '@jetstream/types'; -import { Checkbox, Icon, Radio, RadioGroup, Textarea, Tooltip } from '@jetstream/ui'; +import { Checkbox, Icon, Input, Radio, RadioGroup, Textarea, Tooltip } from '@jetstream/ui'; import { Fragment, FunctionComponent, useState } from 'react'; const SPLIT_LINE_COMMA = /(\n|, |,)/g; @@ -38,6 +38,7 @@ export const DeployMetadataOptions: FunctionComponent(deployOptions.testLevel ?? undefined); const [runTests, setRunTests] = useState(deployOptions.runTests ?? []); + const [deploymentHistoryName, setDeploymentHistoryName] = useState(deployOptions.deploymentHistoryName ?? 'Joie Test'); const [runSpecifiedTestsVisible, setRunSpecifiedTestsVisible] = useState(testLevel === 'RunSpecifiedTests'); const [runTestsStr, setRunTestsStr] = useState(deployOptions.runTests?.join('\n') ?? ''); @@ -83,6 +84,18 @@ export const DeployMetadataOptions: FunctionComponent +
+ + + setDeploymentHistoryName(ev.target.value)} + autoComplete="off" + /> + +
Deployment Options
diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx index 00226a8bb..fbb642c13 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx @@ -4,9 +4,9 @@ import { DeployResult, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { Grid, GridCol, Icon, Modal, TabsRef } from '@jetstream/ui'; import formatDate from 'date-fns/format'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; +import { useAmplitude } from '../../core/analytics'; import ConfirmPageChange from '../../core/ConfirmPageChange'; import OrgLabelBadge from '../../core/OrgLabelBadge'; -import { useAmplitude } from '../../core/analytics'; import { DeployMetadataStatus } from '../deploy-metadata.types'; import DeployMetadataProgressSummary from './DeployMetadataProgressSummary'; import DeployMetadataResultsTables from './DeployMetadataResultsTables'; @@ -111,6 +111,7 @@ export const DeployMetadataStatusModal: FunctionComponent )} + {results?.deploymentHistoryName && 'Deployment History Name:' + results?.deploymentHistoryName} + 'Deployment History Name:' + {results?.deploymentHistoryName} {results && } diff --git a/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx b/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx index 1123b8b8d..52ae333bd 100644 --- a/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx @@ -108,6 +108,7 @@ export async function saveHistory({ label: destinationOrg.label, orgName: destinationOrg.orgName || '', }, + deploymentHistoryName: results?.deploymentHistoryName, start, finish: new Date(), url: results?.id ? getDeploymentStatusUrl(results.id) : null, diff --git a/libs/types/src/lib/salesforce/types.ts b/libs/types/src/lib/salesforce/types.ts index 18f270e9a..1630adce4 100644 --- a/libs/types/src/lib/salesforce/types.ts +++ b/libs/types/src/lib/salesforce/types.ts @@ -465,6 +465,7 @@ export interface DeployOptions { allowMissingFiles?: boolean; autoUpdatePackage?: boolean; checkOnly?: boolean; + deploymentHistoryName?: string; ignoreWarnings?: boolean; performRetrieve?: boolean; purgeOnDelete?: boolean; @@ -484,6 +485,7 @@ export interface DeployResult { createdBy: string; createdByName: string; createdDate: string; + deploymentHistoryName?: string; details?: { componentFailures: DeployMessage[]; componentSuccesses: DeployMessage[]; diff --git a/libs/types/src/lib/ui/types.ts b/libs/types/src/lib/ui/types.ts index c23b4bd3e..80528d60e 100644 --- a/libs/types/src/lib/ui/types.ts +++ b/libs/types/src/lib/ui/types.ts @@ -563,6 +563,7 @@ export interface SalesforceDeployHistoryItem { key: string; // org:type:timestamp fileKey?: string; destinationOrg: SalesforceDeploymentHistoryOrg; + deploymentHistoryName?: string; sourceOrg?: SalesforceDeploymentHistoryOrg; start: Date; finish: Date; From 02055be0701c2ad3feb682ba76b87b5464d74c8b Mon Sep 17 00:00:00 2001 From: Joie Cosby Date: Mon, 15 May 2023 19:15:04 -0700 Subject: [PATCH 2/7] Adding logic to input deployment history name and then display/save it --- .../DeployMetadataToOrg.tsx | 5 ++++ .../DeployMetadataToOrgConfigModal.tsx | 9 ++++++- .../DeployMetadataToOrgStatusModal.tsx | 6 ++++- .../deploy/utils/DeployMetadataOptions.tsx | 7 +++--- .../utils/DeployMetadataStatusModal.tsx | 3 ++- .../utils/useDeployMetadataBetweenOrgs.tsx | 24 ++++++++++++------- .../ui-utils/src/lib/shared-ui-utils.ts | 8 ++++--- libs/types/src/lib/salesforce/types.ts | 3 +-- 8 files changed, 45 insertions(+), 20 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx index a4426272a..55141e149 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx @@ -29,6 +29,7 @@ export const DeployMetadataToOrg: FunctionComponent = const [deployMetadataOptions, setDeployMetadataOptions] = useState(null); const [selectedMetadata, setSelectedMetadata] = useState>(); + const [deploymentHistoryName, setDeploymentHistoryName] = useState(undefined); function handleClick() { setConfigModalOpen(true); @@ -58,6 +59,8 @@ export const DeployMetadataToOrg: FunctionComponent = setDownloadResultsModalOpen(true); } + console.log('deploymentHistoryName Parent:', deploymentHistoryName); + return (
diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx index e8b1e6af9..c0875630b 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx @@ -18,6 +18,7 @@ export interface DeployMetadataToOrgStatusModalProps { onGoBack: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; + deploymentHistoryName?: string | undefined; } export const DeployMetadataToOrgStatusModal: FunctionComponent = ({ @@ -29,6 +30,7 @@ export const DeployMetadataToOrgStatusModal: FunctionComponent { const [{ serverUrl }] = useRecoilState(applicationCookieState); const [deployStatusUrl, setDeployStatusUrl] = useState(null); @@ -36,7 +38,8 @@ export const DeployMetadataToOrgStatusModal: FunctionComponent { @@ -76,6 +79,7 @@ export const DeployMetadataToOrgStatusModal: FunctionComponent ); }; diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx index 9c74e4e05..3adf6243b 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx @@ -20,6 +20,7 @@ export interface DeployMetadataOptionsProps { disabledOptions?: Set; isSinglePackage?: boolean; onChange: (deployOptions: DeployOptions) => void; + setDeploymentHistoryName?: (deploymentHistoryName: string | undefined) => void; } export const DeployMetadataOptions: FunctionComponent = ({ @@ -28,6 +29,7 @@ export const DeployMetadataOptions: FunctionComponent { const [allowMissingFiles, setAllowMissingFiles] = useState(deployOptions.allowMissingFiles ?? false); const [autoUpdatePackage, setAutoUpdatePackage] = useState(deployOptions.autoUpdatePackage ?? false); @@ -38,7 +40,6 @@ export const DeployMetadataOptions: FunctionComponent(deployOptions.testLevel ?? undefined); const [runTests, setRunTests] = useState(deployOptions.runTests ?? []); - const [deploymentHistoryName, setDeploymentHistoryName] = useState(deployOptions.deploymentHistoryName ?? 'Joie Test'); const [runSpecifiedTestsVisible, setRunSpecifiedTestsVisible] = useState(testLevel === 'RunSpecifiedTests'); const [runTestsStr, setRunTestsStr] = useState(deployOptions.runTests?.join('\n') ?? ''); @@ -89,9 +90,9 @@ export const DeployMetadataOptions: FunctionComponent setDeploymentHistoryName(ev.target.value)} + onChange={(event) => setDeploymentHistoryName(event.target.value)} autoComplete="off" /> diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx index fbb642c13..fdd518cfa 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx @@ -49,6 +49,7 @@ export interface DeployMetadataStatusModalProps { onGoBack?: () => void; onClose: () => void; onDownload?: (deployResults: DeployResult, deploymentUrl: string) => void; + deploymentHistoryName?: string | undefined; } export const DeployMetadataStatusModal: FunctionComponent = ({ @@ -72,6 +73,7 @@ export const DeployMetadataStatusModal: FunctionComponent { const isDone = results?.done; const { trackEvent } = useAmplitude(); @@ -296,7 +298,6 @@ export const DeployMetadataStatusModal: FunctionComponent )} {results?.deploymentHistoryName && 'Deployment History Name:' + results?.deploymentHistoryName} - 'Deployment History Name:' + {results?.deploymentHistoryName} {results && } diff --git a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx index b3cadb713..f76cef773 100644 --- a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx @@ -1,7 +1,7 @@ import { logger } from '@jetstream/shared/client-logger'; import { retrieveMetadataFromListMetadata } from '@jetstream/shared/data'; import { pollAndDeployMetadataResultsWhenReady, pollMetadataResultsUntilDone, useBrowserNotifications } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; import { useCallback, useEffect, useReducer, useRef, useState } from 'react'; import { useRecoilState } from 'recoil'; import { applicationCookieState } from '../../../app-state'; @@ -75,7 +75,8 @@ export function useDeployMetadataBetweenOrgs( sourceOrg: SalesforceOrgUi, destinationOrg: SalesforceOrgUi, selectedMetadata: MapOf, - deployOptions: DeployOptions + deployOptions: DeployOptions, + deploymentHistoryName?: string | undefined ) { const isMounted = useRef(true); @@ -113,13 +114,18 @@ export function useDeployMetadataBetweenOrgs( if (isMounted.current) { dispatch({ type: 'DEPLOY_IN_PROG', payload: { deployId: deployResults.id } }); - const results = await pollMetadataResultsUntilDone(destinationOrg, deployResults.id, { - includeDetails: true, - onChecked: (results) => { - dispatch({ type: 'DEPLOY_IN_PROG', payload: { deployId: deployResults.id, results } }); - setLastChecked(new Date()); + const results = await pollMetadataResultsUntilDone( + destinationOrg, + deployResults.id, + { + includeDetails: true, + onChecked: (results) => { + dispatch({ type: 'DEPLOY_IN_PROG', payload: { deployId: deployResults.id, results } }); + setLastChecked(new Date()); + }, }, - }); + deploymentHistoryName + ); dispatch({ type: 'SUCCESS', payload: { results } }); saveHistory({ sourceOrg, @@ -150,7 +156,7 @@ export function useDeployMetadataBetweenOrgs( dispatch({ type: 'ERROR', payload: { errorMessage: ex.message } }); } } - }, [deployOptions, destinationOrg, selectedMetadata, sourceOrg]); + }, [deployOptions, destinationOrg, selectedMetadata, sourceOrg, deploymentHistoryName]); return { deployMetadata, results, deployId, hasLoaded, loading, status, lastChecked, hasError, errorMessage }; } diff --git a/libs/shared/ui-utils/src/lib/shared-ui-utils.ts b/libs/shared/ui-utils/src/lib/shared-ui-utils.ts index b7c4c05bd..f197a138b 100644 --- a/libs/shared/ui-utils/src/lib/shared-ui-utils.ts +++ b/libs/shared/ui-utils/src/lib/shared-ui-utils.ts @@ -6,7 +6,7 @@ import { checkMetadataRetrieveResults, checkMetadataRetrieveResultsAndDeployToTarget, } from '@jetstream/shared/data'; -import { NOOP, REGEX, delay, ensureBoolean, orderObjectsBy } from '@jetstream/shared/utils'; +import { delay, ensureBoolean, NOOP, orderObjectsBy, REGEX } from '@jetstream/shared/utils'; import type { AndOr, BulkJobWithBatches, @@ -43,7 +43,7 @@ import isNil from 'lodash/isNil'; import isString from 'lodash/isString'; import isUndefined from 'lodash/isUndefined'; import numeral from 'numeral'; -import { UnparseConfig, parse as parseCsv, unparse, unparse as unparseCsv } from 'papaparse'; +import { parse as parseCsv, unparse, unparse as unparseCsv, UnparseConfig } from 'papaparse'; import { HavingClause, HavingClauseWithRightCondition, @@ -965,7 +965,8 @@ export function checkIfBulkApiJobIsDone(jobInfo: BulkJobWithBatches, totalBatche export async function pollMetadataResultsUntilDone( selectedOrg: SalesforceOrgUi, id: string, - options?: { includeDetails?: boolean; interval?: number; maxAttempts?: number; onChecked?: (deployResults: DeployResult) => void } + options?: { includeDetails?: boolean; interval?: number; maxAttempts?: number; onChecked?: (deployResults: DeployResult) => void }, + deploymentHistoryName?: string ) { let { includeDetails, interval, maxAttempts, onChecked } = options || {}; includeDetails = includeDetails || false; @@ -979,6 +980,7 @@ export async function pollMetadataResultsUntilDone( while (!done && attempts <= maxAttempts) { await delay(interval); deployResults = await checkMetadataResults(selectedOrg, id, includeDetails); + deployResults = { ...deployResults, deploymentHistoryName: deploymentHistoryName }; logger.log({ deployResults }); onChecked(deployResults); done = deployResults.done; diff --git a/libs/types/src/lib/salesforce/types.ts b/libs/types/src/lib/salesforce/types.ts index 1630adce4..58160e120 100644 --- a/libs/types/src/lib/salesforce/types.ts +++ b/libs/types/src/lib/salesforce/types.ts @@ -465,7 +465,6 @@ export interface DeployOptions { allowMissingFiles?: boolean; autoUpdatePackage?: boolean; checkOnly?: boolean; - deploymentHistoryName?: string; ignoreWarnings?: boolean; performRetrieve?: boolean; purgeOnDelete?: boolean; @@ -485,7 +484,7 @@ export interface DeployResult { createdBy: string; createdByName: string; createdDate: string; - deploymentHistoryName?: string; + deploymentHistoryName?: string | undefined; details?: { componentFailures: DeployMessage[]; componentSuccesses: DeployMessage[]; From 756399fe45c7795e2ac2932609336b0de0e8220b Mon Sep 17 00:00:00 2001 From: Joie Cosby Date: Sat, 10 Jun 2023 08:36:59 -0700 Subject: [PATCH 3/7] Adding Maybe as type for deploymentHistoryName --- .../DeployMetadataHistoryTable.tsx | 12 ++++++------ .../DeployMetadataToOrgStatusModal.tsx | 4 ++-- .../deploy/utils/DeployMetadataOptions.tsx | 4 ++-- .../deploy/utils/DeployMetadataStatusModal.tsx | 2 +- .../deploy/utils/useDeployMetadataBetweenOrgs.tsx | 4 ++-- .../deploy/utils/useDeployMetadataPackage.tsx | 2 +- libs/shared/ui-utils/src/lib/shared-ui-utils.ts | 2 +- libs/types/src/lib/salesforce/types.ts | 2 +- libs/types/src/lib/ui/types.ts | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx index f968b7400..51d9788a6 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-history/DeployMetadataHistoryTable.tsx @@ -13,18 +13,18 @@ const TYPE_MAP = { }; const COLUMNS: ColumnWithFilter[] = [ + { + ...setColumnFromType('name', 'text'), + name: 'Name', + key: 'deploymentHistoryName', + width: 165, + }, { ...setColumnFromType('start', 'date'), name: 'Started', key: 'start', width: 200, }, - { - ...setColumnFromType('name', 'text'), - name: 'Deployment History Name', - key: 'deploymentHistoryName', - width: 165, - }, { ...setColumnFromType('type', 'text'), name: 'Type', diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx index c0875630b..dbf288a9a 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx @@ -1,5 +1,5 @@ import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { SalesforceLogin } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -18,7 +18,7 @@ export interface DeployMetadataToOrgStatusModalProps { onGoBack: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; - deploymentHistoryName?: string | undefined; + deploymentHistoryName?: Maybe; } export const DeployMetadataToOrgStatusModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx index 3adf6243b..3e62c9583 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployOptionsTestLevel } from '@jetstream/types'; +import { DeployOptions, DeployOptionsTestLevel, Maybe } from '@jetstream/types'; import { Checkbox, Icon, Input, Radio, RadioGroup, Textarea, Tooltip } from '@jetstream/ui'; import { Fragment, FunctionComponent, useState } from 'react'; @@ -20,7 +20,7 @@ export interface DeployMetadataOptionsProps { disabledOptions?: Set; isSinglePackage?: boolean; onChange: (deployOptions: DeployOptions) => void; - setDeploymentHistoryName?: (deploymentHistoryName: string | undefined) => void; + setDeploymentHistoryName?: (deploymentHistoryName: Maybe) => void; } export const DeployMetadataOptions: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx index fdd518cfa..c36285d47 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx @@ -49,7 +49,7 @@ export interface DeployMetadataStatusModalProps { onGoBack?: () => void; onClose: () => void; onDownload?: (deployResults: DeployResult, deploymentUrl: string) => void; - deploymentHistoryName?: string | undefined; + deploymentHistoryName?: Maybe; } export const DeployMetadataStatusModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx index f76cef773..dbe98fd1e 100644 --- a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx @@ -1,7 +1,7 @@ import { logger } from '@jetstream/shared/client-logger'; import { retrieveMetadataFromListMetadata } from '@jetstream/shared/data'; import { pollAndDeployMetadataResultsWhenReady, pollMetadataResultsUntilDone, useBrowserNotifications } from '@jetstream/shared/ui-utils'; -import { DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployResult, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { useCallback, useEffect, useReducer, useRef, useState } from 'react'; import { useRecoilState } from 'recoil'; import { applicationCookieState } from '../../../app-state'; @@ -76,7 +76,7 @@ export function useDeployMetadataBetweenOrgs( destinationOrg: SalesforceOrgUi, selectedMetadata: MapOf, deployOptions: DeployOptions, - deploymentHistoryName?: string | undefined + deploymentHistoryName?: Maybe ) { const isMounted = useRef(true); diff --git a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx index 7fe913141..91025cdd3 100644 --- a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx @@ -134,7 +134,7 @@ export function useDeployMetadataPackage(destinationOrg: SalesforceOrgUi, deploy } } }, - [deployOptions, destinationOrg, file] + [deployOptions, destinationOrg, file, notifyUser] ); return { deployMetadata, results, deployId, hasLoaded, loading, status, lastChecked, hasError, errorMessage }; diff --git a/libs/shared/ui-utils/src/lib/shared-ui-utils.ts b/libs/shared/ui-utils/src/lib/shared-ui-utils.ts index f197a138b..74f10ff35 100644 --- a/libs/shared/ui-utils/src/lib/shared-ui-utils.ts +++ b/libs/shared/ui-utils/src/lib/shared-ui-utils.ts @@ -966,7 +966,7 @@ export async function pollMetadataResultsUntilDone( selectedOrg: SalesforceOrgUi, id: string, options?: { includeDetails?: boolean; interval?: number; maxAttempts?: number; onChecked?: (deployResults: DeployResult) => void }, - deploymentHistoryName?: string + deploymentHistoryName?: Maybe ) { let { includeDetails, interval, maxAttempts, onChecked } = options || {}; includeDetails = includeDetails || false; diff --git a/libs/types/src/lib/salesforce/types.ts b/libs/types/src/lib/salesforce/types.ts index 58160e120..417919a5b 100644 --- a/libs/types/src/lib/salesforce/types.ts +++ b/libs/types/src/lib/salesforce/types.ts @@ -484,7 +484,7 @@ export interface DeployResult { createdBy: string; createdByName: string; createdDate: string; - deploymentHistoryName?: string | undefined; + deploymentHistoryName?: Maybe; details?: { componentFailures: DeployMessage[]; componentSuccesses: DeployMessage[]; diff --git a/libs/types/src/lib/ui/types.ts b/libs/types/src/lib/ui/types.ts index 80528d60e..0e1706540 100644 --- a/libs/types/src/lib/ui/types.ts +++ b/libs/types/src/lib/ui/types.ts @@ -563,7 +563,7 @@ export interface SalesforceDeployHistoryItem { key: string; // org:type:timestamp fileKey?: string; destinationOrg: SalesforceDeploymentHistoryOrg; - deploymentHistoryName?: string; + deploymentHistoryName?: Maybe; sourceOrg?: SalesforceDeploymentHistoryOrg; start: Date; finish: Date; From e6f1d1509a01bc9a58f42fff335b592330a2419a Mon Sep 17 00:00:00 2001 From: Joie Cosby Date: Sat, 10 Jun 2023 10:52:04 -0700 Subject: [PATCH 4/7] Adding functionality to Delete functionality --- .../DeleteMetadataConfigModal.tsx | 11 ++++++-- .../delete-metadata/DeleteMetadataModal.tsx | 6 ++++- .../DeleteMetadataStatusModal.tsx | 10 ++++++-- .../DeployMetadataToOrg.tsx | 4 +-- .../DeployMetadataToOrgConfigModal.tsx | 4 +-- .../DeployMetadataToOrgStatusModal.tsx | 4 +-- .../deploy/utils/DeployMetadataOptions.tsx | 7 +++--- .../utils/DeployMetadataStatusModal.tsx | 8 +++--- .../deploy/utils/deploy-metadata.utils.tsx | 5 +++- .../deploy/utils/useAddItemsToChangeset.tsx | 1 + .../utils/useDeployMetadataBetweenOrgs.tsx | 22 +++++++--------- .../deploy/utils/useDeployMetadataPackage.tsx | 25 ++++++++++++++++--- .../ui-utils/src/lib/shared-ui-utils.ts | 5 ++-- libs/types/src/lib/salesforce/types.ts | 1 - libs/types/src/lib/types.ts | 1 + 15 files changed, 74 insertions(+), 40 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx index 961364407..6650aa46a 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { useNonInitialEffect, useRollbar } from '@jetstream/shared/ui-utils'; -import { DeployOptions, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { Grid, GridCol, Icon, Modal } from '@jetstream/ui'; import JSZip from 'jszip'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; @@ -17,6 +17,7 @@ export interface DeleteMetadataConfigModalProps { onSelection?: (deployOptions: DeployOptions) => void; onClose: () => void; onDeploy: (file: ArrayBuffer, deployOptions: DeployOptions) => void; + setDeploymentHistoryName?: Undefinable; } export const DeleteMetadataConfigModal: FunctionComponent = ({ @@ -27,6 +28,7 @@ export const DeleteMetadataConfigModal: FunctionComponent { const rollbar = useRollbar(); const modalBodyRef = useRef(null); @@ -141,7 +143,12 @@ export const DeleteMetadataConfigModal: FunctionComponent
{/* OPTIONS */} - +
diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx index 3962de6d7..426fc315c 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx @@ -1,5 +1,5 @@ import { ANALYTICS_KEYS } from '@jetstream/shared/constants'; -import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { FileDownloadModal } from '@jetstream/ui'; import { Fragment, FunctionComponent, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -25,6 +25,7 @@ export const DeleteMetadataModal: FunctionComponent = const [file, setFile] = useState(); const [deployOptions, setDeployOptions] = useState(); const [deployResultsData, setDeployResultsData] = useState>(); + const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); function handleDeploy(file: ArrayBuffer, deployOptions: DeployOptions) { setFile(file); @@ -43,6 +44,7 @@ export const DeleteMetadataModal: FunctionComponent = setDeployResultsData(getDeployResultsExcelData(deployResults, deploymentUrl)); setDownloadResultsModalOpen(true); } + console.log('deploymentHistoryName Delete Parent:', deploymentHistoryName); return ( @@ -55,6 +57,7 @@ export const DeleteMetadataModal: FunctionComponent = initialOptions={deployOptions} onClose={() => onClose()} onDeploy={handleDeploy} + setDeploymentHistoryName={setDeploymentHistoryName} /> )} {deployStatusModalOpen && deployOptions && file && ( @@ -66,6 +69,7 @@ export const DeleteMetadataModal: FunctionComponent = onGoBack={handleGoBackFromDeploy} onClose={onClose} onDownload={handleDeployResultsDownload} + deploymentHistoryName={deploymentHistoryName} /> )} {downloadResultsModalOpen && deployResultsData && ( diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx index cf44e02a7..1bc096c62 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx @@ -1,5 +1,5 @@ import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { SalesforceLogin } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -17,6 +17,7 @@ export interface DeployMetadataPackageStatusModalProps { onGoBack?: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; + deploymentHistoryName?: Undefinable; } export const DeployMetadataPackageStatusModal: FunctionComponent = ({ @@ -27,13 +28,15 @@ export const DeployMetadataPackageStatusModal: FunctionComponent { const [{ serverUrl }] = useRecoilState(applicationCookieState); const [deployStatusUrl, setDeployStatusUrl] = useState(null); const { deployMetadata, results, deployId, loading, status, lastChecked, hasError, errorMessage } = useDeployMetadataPackage( destinationOrg, deployOptions, - file + file, + deploymentHistoryName ); useEffect(() => { @@ -47,6 +50,8 @@ export const DeployMetadataPackageStatusModal: FunctionComponent ); }; diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx index 55141e149..9aff345fd 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrg.tsx @@ -1,5 +1,5 @@ import { ANALYTICS_KEYS } from '@jetstream/shared/constants'; -import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { FileDownloadModal, Icon } from '@jetstream/ui'; import { Fragment, FunctionComponent, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -29,7 +29,7 @@ export const DeployMetadataToOrg: FunctionComponent = const [deployMetadataOptions, setDeployMetadataOptions] = useState(null); const [selectedMetadata, setSelectedMetadata] = useState>(); - const [deploymentHistoryName, setDeploymentHistoryName] = useState(undefined); + const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); function handleClick() { setConfigModalOpen(true); diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx index 830d64666..c69a4dd6d 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { Grid, GridCol, Icon, Modal } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; import { useRecoilValue } from 'recoil'; @@ -19,7 +19,7 @@ export interface DeployMetadataToOrgConfigModalProps { onSelection?: (deployOptions: DeployOptions) => void; onClose: () => void; onDeploy: (destinationOrg: SalesforceOrgUi, deployOptions: DeployOptions) => void; - setDeploymentHistoryName?: string | undefined; + setDeploymentHistoryName?: Undefinable; } export const DeployMetadataToOrgConfigModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx index dbf288a9a..83c22476a 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgStatusModal.tsx @@ -1,5 +1,5 @@ import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { SalesforceLogin } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -18,7 +18,7 @@ export interface DeployMetadataToOrgStatusModalProps { onGoBack: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; - deploymentHistoryName?: Maybe; + deploymentHistoryName?: Undefinable; } export const DeployMetadataToOrgStatusModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx index 3e62c9583..f8cbbcf7a 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployOptionsTestLevel, Maybe } from '@jetstream/types'; +import { DeployOptions, DeployOptionsTestLevel, Undefinable } from '@jetstream/types'; import { Checkbox, Icon, Input, Radio, RadioGroup, Textarea, Tooltip } from '@jetstream/ui'; import { Fragment, FunctionComponent, useState } from 'react'; @@ -20,7 +20,7 @@ export interface DeployMetadataOptionsProps { disabledOptions?: Set; isSinglePackage?: boolean; onChange: (deployOptions: DeployOptions) => void; - setDeploymentHistoryName?: (deploymentHistoryName: Maybe) => void; + setDeploymentHistoryName?: (deploymentHistoryName: Undefinable) => void; } export const DeployMetadataOptions: FunctionComponent = ({ @@ -40,6 +40,7 @@ export const DeployMetadataOptions: FunctionComponent(deployOptions.testLevel ?? undefined); const [runTests, setRunTests] = useState(deployOptions.runTests ?? []); + const [deployName, setDeployName] = useState>(setDeploymentHistoryName); const [runSpecifiedTestsVisible, setRunSpecifiedTestsVisible] = useState(testLevel === 'RunSpecifiedTests'); const [runTestsStr, setRunTestsStr] = useState(deployOptions.runTests?.join('\n') ?? ''); @@ -90,7 +91,7 @@ export const DeployMetadataOptions: FunctionComponent setDeploymentHistoryName(event.target.value)} autoComplete="off" diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx index c36285d47..e9a62fe1a 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataStatusModal.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { ANALYTICS_KEYS, DATE_FORMATS } from '@jetstream/shared/constants'; -import { DeployResult, Maybe, SalesforceOrgUi } from '@jetstream/types'; +import { DeployResult, Maybe, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { Grid, GridCol, Icon, Modal, TabsRef } from '@jetstream/ui'; import formatDate from 'date-fns/format'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; @@ -49,7 +49,7 @@ export interface DeployMetadataStatusModalProps { onGoBack?: () => void; onClose: () => void; onDownload?: (deployResults: DeployResult, deploymentUrl: string) => void; - deploymentHistoryName?: Maybe; + deploymentHistoryName?: Undefinable; } export const DeployMetadataStatusModal: FunctionComponent = ({ @@ -113,7 +113,6 @@ export const DeployMetadataStatusModal: FunctionComponent )} - {results?.deploymentHistoryName && 'Deployment History Name:' + results?.deploymentHistoryName} + {deploymentHistoryName && 'Deployment History Name:' + deploymentHistoryName} {results && } diff --git a/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx b/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx index 52ae333bd..2eb06bbdd 100644 --- a/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/deploy-metadata.utils.tsx @@ -11,6 +11,7 @@ import { SalesforceDeployHistoryItem, SalesforceDeployHistoryType, SalesforceOrgUi, + Undefinable, } from '@jetstream/types'; import { ColumnWithFilter, @@ -68,6 +69,7 @@ export async function getHistoryItemFile(item: SalesforceDeployHistoryItem) { export async function saveHistory({ sourceOrg, destinationOrg, + deploymentHistoryName, type, start, metadata, @@ -77,6 +79,7 @@ export async function saveHistory({ }: { sourceOrg?: SalesforceOrgUi; destinationOrg: SalesforceOrgUi; + deploymentHistoryName?: Undefinable; type: SalesforceDeployHistoryType; start: Date; metadata?: MapOf; @@ -108,7 +111,7 @@ export async function saveHistory({ label: destinationOrg.label, orgName: destinationOrg.orgName || '', }, - deploymentHistoryName: results?.deploymentHistoryName, + deploymentHistoryName: deploymentHistoryName, start, finish: new Date(), url: results?.id ? getDeploymentStatusUrl(results.id) : null, diff --git a/apps/jetstream/src/app/components/deploy/utils/useAddItemsToChangeset.tsx b/apps/jetstream/src/app/components/deploy/utils/useAddItemsToChangeset.tsx index 007596f8c..d45ff0b06 100644 --- a/apps/jetstream/src/app/components/deploy/utils/useAddItemsToChangeset.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/useAddItemsToChangeset.tsx @@ -135,6 +135,7 @@ export function useAddItemsToChangeset( dispatch({ type: 'SUCCESS', payload: { results } }); saveHistory({ destinationOrg: selectedOrg, + deploymentHistoryName: 'test change set', type: 'changeset', start, metadata: selectedMetadata, diff --git a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx index dbe98fd1e..72c3c6c03 100644 --- a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataBetweenOrgs.tsx @@ -1,7 +1,7 @@ import { logger } from '@jetstream/shared/client-logger'; import { retrieveMetadataFromListMetadata } from '@jetstream/shared/data'; import { pollAndDeployMetadataResultsWhenReady, pollMetadataResultsUntilDone, useBrowserNotifications } from '@jetstream/shared/ui-utils'; -import { DeployResult, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; +import { DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { useCallback, useEffect, useReducer, useRef, useState } from 'react'; import { useRecoilState } from 'recoil'; import { applicationCookieState } from '../../../app-state'; @@ -76,7 +76,7 @@ export function useDeployMetadataBetweenOrgs( destinationOrg: SalesforceOrgUi, selectedMetadata: MapOf, deployOptions: DeployOptions, - deploymentHistoryName?: Maybe + deploymentHistoryName?: Undefinable ) { const isMounted = useRef(true); @@ -114,22 +114,18 @@ export function useDeployMetadataBetweenOrgs( if (isMounted.current) { dispatch({ type: 'DEPLOY_IN_PROG', payload: { deployId: deployResults.id } }); - const results = await pollMetadataResultsUntilDone( - destinationOrg, - deployResults.id, - { - includeDetails: true, - onChecked: (results) => { - dispatch({ type: 'DEPLOY_IN_PROG', payload: { deployId: deployResults.id, results } }); - setLastChecked(new Date()); - }, + const results = await pollMetadataResultsUntilDone(destinationOrg, deployResults.id, { + includeDetails: true, + onChecked: (results) => { + dispatch({ type: 'DEPLOY_IN_PROG', payload: { deployId: deployResults.id, results } }); + setLastChecked(new Date()); }, - deploymentHistoryName - ); + }); dispatch({ type: 'SUCCESS', payload: { results } }); saveHistory({ sourceOrg, destinationOrg, + deploymentHistoryName, type: 'orgToOrg', start, metadata: selectedMetadata, diff --git a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx index 91025cdd3..7959205a2 100644 --- a/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/useDeployMetadataPackage.tsx @@ -1,7 +1,7 @@ import { logger } from '@jetstream/shared/client-logger'; import { deployMetadataZip } from '@jetstream/shared/data'; import { pollMetadataResultsUntilDone, useBrowserNotifications } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, SalesforceDeployHistoryType, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, SalesforceDeployHistoryType, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { useCallback, useEffect, useReducer, useRef, useState } from 'react'; import { useRecoilState } from 'recoil'; import { applicationCookieState } from '../../../app-state'; @@ -74,7 +74,14 @@ function reducer(state: State, action: Action): State { * @param selectedOrg * @param changesetName */ -export function useDeployMetadataPackage(destinationOrg: SalesforceOrgUi, deployOptions: DeployOptions, file: ArrayBuffer) { +export function useDeployMetadataPackage( + destinationOrg: SalesforceOrgUi, + deployOptions: DeployOptions, + file: ArrayBuffer, + deploymentHistoryName?: Undefinable +) { + console.log('deploymentHistoryName SAVE INSIDE', deploymentHistoryName); + const isMounted = useRef(true); const [{ hasLoaded, loading, hasError, errorMessage, status, deployId, results }, dispatch] = useReducer(reducer, { @@ -99,6 +106,8 @@ export function useDeployMetadataPackage(destinationOrg: SalesforceOrgUi, deploy const deployMetadata = useCallback( async (deployType: SalesforceDeployHistoryType = 'package') => { + console.log('deploymentHistoryName SAVE', deploymentHistoryName); + try { const start = new Date(); dispatch({ type: 'UPLOAD' }); @@ -114,7 +123,15 @@ export function useDeployMetadataPackage(destinationOrg: SalesforceOrgUi, deploy }, }); dispatch({ type: 'SUCCESS', payload: { results } }); - saveHistory({ destinationOrg, type: deployType, start, deployOptions, results, file }); + saveHistory({ + destinationOrg, + deploymentHistoryName: deploymentHistoryName, + type: deployType, + start, + deployOptions, + results, + file, + }); if (results.success) { notifyUser(`Deployment finished successfully`, { body: getNotificationMessageBody(results), @@ -134,7 +151,7 @@ export function useDeployMetadataPackage(destinationOrg: SalesforceOrgUi, deploy } } }, - [deployOptions, destinationOrg, file, notifyUser] + [deployOptions, destinationOrg, file, notifyUser, deploymentHistoryName] ); return { deployMetadata, results, deployId, hasLoaded, loading, status, lastChecked, hasError, errorMessage }; diff --git a/libs/shared/ui-utils/src/lib/shared-ui-utils.ts b/libs/shared/ui-utils/src/lib/shared-ui-utils.ts index 74f10ff35..8a9b83cbe 100644 --- a/libs/shared/ui-utils/src/lib/shared-ui-utils.ts +++ b/libs/shared/ui-utils/src/lib/shared-ui-utils.ts @@ -965,8 +965,7 @@ export function checkIfBulkApiJobIsDone(jobInfo: BulkJobWithBatches, totalBatche export async function pollMetadataResultsUntilDone( selectedOrg: SalesforceOrgUi, id: string, - options?: { includeDetails?: boolean; interval?: number; maxAttempts?: number; onChecked?: (deployResults: DeployResult) => void }, - deploymentHistoryName?: Maybe + options?: { includeDetails?: boolean; interval?: number; maxAttempts?: number; onChecked?: (deployResults: DeployResult) => void } ) { let { includeDetails, interval, maxAttempts, onChecked } = options || {}; includeDetails = includeDetails || false; @@ -980,7 +979,7 @@ export async function pollMetadataResultsUntilDone( while (!done && attempts <= maxAttempts) { await delay(interval); deployResults = await checkMetadataResults(selectedOrg, id, includeDetails); - deployResults = { ...deployResults, deploymentHistoryName: deploymentHistoryName }; + deployResults = { ...deployResults }; logger.log({ deployResults }); onChecked(deployResults); done = deployResults.done; diff --git a/libs/types/src/lib/salesforce/types.ts b/libs/types/src/lib/salesforce/types.ts index 417919a5b..18f270e9a 100644 --- a/libs/types/src/lib/salesforce/types.ts +++ b/libs/types/src/lib/salesforce/types.ts @@ -484,7 +484,6 @@ export interface DeployResult { createdBy: string; createdByName: string; createdDate: string; - deploymentHistoryName?: Maybe; details?: { componentFailures: DeployMessage[]; componentSuccesses: DeployMessage[]; diff --git a/libs/types/src/lib/types.ts b/libs/types/src/lib/types.ts index 16203046b..771c7dd9c 100644 --- a/libs/types/src/lib/types.ts +++ b/libs/types/src/lib/types.ts @@ -3,6 +3,7 @@ import { InsertUpdateUpsertDeleteQuery, SalesforceOrgEdition, SalesforceOrgLocal export type Maybe = T | null | undefined; export type Nullable = T | null; +export type Undefinable = T | undefined; export const isNotNullish = (input: T | null | undefined): input is T => input != null; export const isNotEmpty = (input: T[]) => input.length !== 0; From 6ee9ba91284bc6bbf7f9acf50bd53cdf2d1a3ce4 Mon Sep 17 00:00:00 2001 From: Joie Cosby Date: Sat, 10 Jun 2023 11:09:21 -0700 Subject: [PATCH 5/7] Adding functionality for deploy via metadata package --- .../deploy-metadata-package/DeployMetadataPackage.tsx | 5 ++++- .../DeployMetadataPackageConfigModal.tsx | 11 +++++++++-- .../DeployMetadataPackageStatusModal.tsx | 10 +++++++--- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackage.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackage.tsx index 0fab4390d..eccb26f1f 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackage.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackage.tsx @@ -1,5 +1,5 @@ import { ANALYTICS_KEYS } from '@jetstream/shared/constants'; -import { DeployOptions, DeployResult, MapOf, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { FileDownloadModal, Icon } from '@jetstream/ui'; import classNames from 'classnames'; import { Fragment, FunctionComponent, useState } from 'react'; @@ -28,6 +28,7 @@ export const DeployMetadataPackage: FunctionComponent(); const [deployResultsData, setDeployResultsData] = useState>(); + const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); function handleClick() { setDestinationOrg(initialSelectedOrg); @@ -79,6 +80,7 @@ export const DeployMetadataPackage: FunctionComponent setConfigModalOpen(false)} onDeploy={handleDeploy} + setDeploymentHistoryName={setDeploymentHistoryName} /> )} {deployStatusModalOpen && deployOptions && fileInfo.file && ( @@ -90,6 +92,7 @@ export const DeployMetadataPackage: FunctionComponent )} {downloadResultsModalOpen && deployResultsData && ( diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx index a90959e0a..b960799b9 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx @@ -2,7 +2,7 @@ import { css } from '@emotion/react'; import { logger } from '@jetstream/shared/client-logger'; import { INPUT_ACCEPT_FILETYPES } from '@jetstream/shared/constants'; import { useNonInitialEffect, useRollbar } from '@jetstream/shared/ui-utils'; -import { DeployOptions, InputReadFileContent, Maybe, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, InputReadFileContent, Maybe, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { FileSelector, Grid, GridCol, Modal } from '@jetstream/ui'; import JSZip from 'jszip'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; @@ -29,6 +29,7 @@ export interface DeployMetadataPackageConfigModalProps { destinationOrg: SalesforceOrgUi, deployOptions: DeployOptions ) => void; + setDeploymentHistoryName?: Undefinable; } export const DeployMetadataPackageConfigModal: FunctionComponent = ({ @@ -41,6 +42,7 @@ export const DeployMetadataPackageConfigModal: FunctionComponent { const rollbar = useRollbar(); const orgs = useRecoilValue(salesforceOrgsState); @@ -175,7 +177,12 @@ export const DeployMetadataPackageConfigModal: FunctionComponent
{/* OPTIONS */} - +
diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx index 2b873d358..c6ff928e0 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx @@ -1,5 +1,5 @@ import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, SalesforceOrgUi } from '@jetstream/types'; +import { DeployOptions, DeployResult, SalesforceOrgUi, Undefinable } from '@jetstream/types'; import { SalesforceLogin } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -17,6 +17,7 @@ export interface DeployMetadataPackageStatusModalProps { onGoBack?: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; + deploymentHistoryName?: Undefinable; } export const DeployMetadataPackageStatusModal: FunctionComponent = ({ @@ -27,13 +28,15 @@ export const DeployMetadataPackageStatusModal: FunctionComponent { const [{ serverUrl }] = useRecoilState(applicationCookieState); const [deployStatusUrl, setDeployStatusUrl] = useState(null); const { deployMetadata, results, deployId, loading, status, lastChecked, hasError, errorMessage } = useDeployMetadataPackage( destinationOrg, deployOptions, - file + file, + deploymentHistoryName ); useEffect(() => { @@ -46,7 +49,7 @@ export const DeployMetadataPackageStatusModal: FunctionComponent ); }; From 88049fece0ffe4445de6e3d08189a4819f91737a Mon Sep 17 00:00:00 2001 From: Joie Cosby Date: Sat, 10 Jun 2023 11:38:16 -0700 Subject: [PATCH 6/7] Fixing error when passing around data from Parent to Child --- .../deploy/delete-metadata/DeleteMetadataConfigModal.tsx | 2 +- .../DeployMetadataPackageConfigModal.tsx | 2 +- .../DeployMetadataToOrgConfigModal.tsx | 2 +- .../src/app/components/deploy/utils/DeployMetadataOptions.tsx | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx index 6650aa46a..16fb42d60 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx @@ -17,7 +17,7 @@ export interface DeleteMetadataConfigModalProps { onSelection?: (deployOptions: DeployOptions) => void; onClose: () => void; onDeploy: (file: ArrayBuffer, deployOptions: DeployOptions) => void; - setDeploymentHistoryName?: Undefinable; + setDeploymentHistoryName?: (deploymentHistoryName: Undefinable) => void; } export const DeleteMetadataConfigModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx index b960799b9..5e47443bd 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx @@ -29,7 +29,7 @@ export interface DeployMetadataPackageConfigModalProps { destinationOrg: SalesforceOrgUi, deployOptions: DeployOptions ) => void; - setDeploymentHistoryName?: Undefinable; + setDeploymentHistoryName?: (deploymentHistoryName: Undefinable) => void; } export const DeployMetadataPackageConfigModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx index c69a4dd6d..7fab9bdb2 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-to-different-org/DeployMetadataToOrgConfigModal.tsx @@ -19,7 +19,7 @@ export interface DeployMetadataToOrgConfigModalProps { onSelection?: (deployOptions: DeployOptions) => void; onClose: () => void; onDeploy: (destinationOrg: SalesforceOrgUi, deployOptions: DeployOptions) => void; - setDeploymentHistoryName?: Undefinable; + setDeploymentHistoryName?: (deploymentHistoryName: Undefinable) => void; } export const DeployMetadataToOrgConfigModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx index f8cbbcf7a..50340d6cd 100644 --- a/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx +++ b/apps/jetstream/src/app/components/deploy/utils/DeployMetadataOptions.tsx @@ -40,7 +40,7 @@ export const DeployMetadataOptions: FunctionComponent(deployOptions.testLevel ?? undefined); const [runTests, setRunTests] = useState(deployOptions.runTests ?? []); - const [deployName, setDeployName] = useState>(setDeploymentHistoryName); + // const [deployName, setDeployName] = useState>(); const [runSpecifiedTestsVisible, setRunSpecifiedTestsVisible] = useState(testLevel === 'RunSpecifiedTests'); const [runTestsStr, setRunTestsStr] = useState(deployOptions.runTests?.join('\n') ?? ''); @@ -91,7 +91,7 @@ export const DeployMetadataOptions: FunctionComponent setDeploymentHistoryName(event.target.value)} autoComplete="off" From cd7749719b85ea6a3e54d41e074fe27b4bb4cde8 Mon Sep 17 00:00:00 2001 From: Austin Turner Date: Fri, 22 Mar 2024 19:15:43 -0600 Subject: [PATCH 7/7] WIP - Remove console.log etc.. --- .../delete-metadata/DeleteMetadataConfigModal.tsx | 4 ++-- .../deploy/delete-metadata/DeleteMetadataModal.tsx | 5 ++--- .../delete-metadata/DeleteMetadataStatusModal.tsx | 8 +++----- .../DeployMetadataPackage.tsx | 4 ++-- .../DeployMetadataPackageConfigModal.tsx | 4 ++-- .../DeployMetadataPackageStatusModal.tsx | 12 ++++++------ .../deploy-to-different-org/DeployMetadataToOrg.tsx | 6 ++---- .../DeployMetadataToOrgConfigModal.tsx | 4 ++-- .../DeployMetadataToOrgStatusModal.tsx | 6 +++--- .../deploy/utils/DeployMetadataOptions.tsx | 6 +++--- .../deploy/utils/DeployMetadataStatusModal.tsx | 8 ++------ .../deploy/utils/deploy-metadata.utils.tsx | 6 +++--- .../deploy/utils/useAddItemsToChangeset.tsx | 1 - .../deploy/utils/useDeployMetadataBetweenOrgs.tsx | 4 ++-- .../deploy/utils/useDeployMetadataPackage.tsx | 12 ++++-------- libs/shared/ui-utils/src/lib/shared-ui-utils.ts | 1 - libs/types/src/lib/types.ts | 1 - 17 files changed, 38 insertions(+), 54 deletions(-) diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx index 3cbfd9748..1166c1729 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataConfigModal.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { useNonInitialEffect, useRollbar } from '@jetstream/shared/ui-utils'; -import { DeployOptions, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; +import { DeployOptions, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { Grid, GridCol, Icon, Modal } from '@jetstream/ui'; import JSZip from 'jszip'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; @@ -17,7 +17,7 @@ export interface DeleteMetadataConfigModalProps { onSelection?: (deployOptions: DeployOptions) => void; onClose: () => void; onDeploy: (file: ArrayBuffer, deployOptions: DeployOptions) => void; - setDeploymentHistoryName?: (deploymentHistoryName: Undefinable) => void; + setDeploymentHistoryName?: (deploymentHistoryName: Maybe) => void; } export const DeleteMetadataConfigModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx index 426fc315c..734f3004b 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataModal.tsx @@ -1,5 +1,5 @@ import { ANALYTICS_KEYS } from '@jetstream/shared/constants'; -import { DeployOptions, DeployResult, ListMetadataResult, MapOf, SalesforceOrgUi, Undefinable } from '@jetstream/types'; +import { DeployOptions, DeployResult, ListMetadataResult, MapOf, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { FileDownloadModal } from '@jetstream/ui'; import { Fragment, FunctionComponent, useState } from 'react'; import { useRecoilState } from 'recoil'; @@ -25,7 +25,7 @@ export const DeleteMetadataModal: FunctionComponent = const [file, setFile] = useState(); const [deployOptions, setDeployOptions] = useState(); const [deployResultsData, setDeployResultsData] = useState>(); - const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); + const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); function handleDeploy(file: ArrayBuffer, deployOptions: DeployOptions) { setFile(file); @@ -44,7 +44,6 @@ export const DeleteMetadataModal: FunctionComponent = setDeployResultsData(getDeployResultsExcelData(deployResults, deploymentUrl)); setDownloadResultsModalOpen(true); } - console.log('deploymentHistoryName Delete Parent:', deploymentHistoryName); return ( diff --git a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx index fe5fbde1d..262779ea7 100644 --- a/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/delete-metadata/DeleteMetadataStatusModal.tsx @@ -1,5 +1,5 @@ import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, SalesforceOrgUi, Undefinable } from '@jetstream/types'; +import { DeployOptions, DeployResult, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { SalesforceLogin } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useState } from 'react'; import { useRecoilValue } from 'recoil'; @@ -11,24 +11,24 @@ import { getStatusValue, useDeployMetadataPackage } from '../utils/useDeployMeta export interface DeployMetadataPackageStatusModalProps { destinationOrg: SalesforceOrgUi; deployOptions: DeployOptions; + deploymentHistoryName?: Maybe; file: ArrayBuffer; // used to hide while download window is open hideModal: boolean; onGoBack?: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; - deploymentHistoryName?: Undefinable; } export const DeployMetadataPackageStatusModal: FunctionComponent = ({ destinationOrg, deployOptions, + deploymentHistoryName, file, hideModal, onGoBack, onClose, onDownload, - deploymentHistoryName, }) => { const { serverUrl } = useRecoilValue(applicationCookieState); const skipFrontDoorAuth = useRecoilValue(selectSkipFrontdoorAuth); @@ -51,8 +51,6 @@ export const DeployMetadataPackageStatusModal: FunctionComponent(); const [deployResultsData, setDeployResultsData] = useState>(); - const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); + const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); function handleClick() { setDestinationOrg(initialSelectedOrg); diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx index 2c7d74ee7..b5320dc18 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageConfigModal.tsx @@ -2,7 +2,7 @@ import { css } from '@emotion/react'; import { logger } from '@jetstream/shared/client-logger'; import { INPUT_ACCEPT_FILETYPES } from '@jetstream/shared/constants'; import { useNonInitialEffect, useRollbar } from '@jetstream/shared/ui-utils'; -import { DeployOptions, InputReadFileContent, Maybe, SalesforceOrgUi, Undefinable } from '@jetstream/types'; +import { DeployOptions, InputReadFileContent, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { FileSelector, Grid, GridCol, Modal } from '@jetstream/ui'; import JSZip from 'jszip'; import { Fragment, FunctionComponent, useEffect, useRef, useState } from 'react'; @@ -29,7 +29,7 @@ export interface DeployMetadataPackageConfigModalProps { destinationOrg: SalesforceOrgUi, deployOptions: DeployOptions ) => void; - setDeploymentHistoryName?: (deploymentHistoryName: Undefinable) => void; + setDeploymentHistoryName?: (deploymentHistoryName: Maybe) => void; } export const DeployMetadataPackageConfigModal: FunctionComponent = ({ diff --git a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx index 0cfd29cee..f7a40ea89 100644 --- a/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx +++ b/apps/jetstream/src/app/components/deploy/deploy-metadata-package/DeployMetadataPackageStatusModal.tsx @@ -1,5 +1,5 @@ import { useNonInitialEffect } from '@jetstream/shared/ui-utils'; -import { DeployOptions, DeployResult, SalesforceOrgUi, Undefinable } from '@jetstream/types'; +import { DeployOptions, DeployResult, Maybe, SalesforceOrgUi } from '@jetstream/types'; import { SalesforceLogin } from '@jetstream/ui'; import { Fragment, FunctionComponent, useEffect, useState } from 'react'; import { useRecoilValue } from 'recoil'; @@ -11,24 +11,24 @@ import { getStatusValue, useDeployMetadataPackage } from '../utils/useDeployMeta export interface DeployMetadataPackageStatusModalProps { destinationOrg: SalesforceOrgUi; deployOptions: DeployOptions; + deploymentHistoryName?: Maybe; file: ArrayBuffer; // used to hide while download window is open hideModal: boolean; onGoBack?: () => void; onClose: () => void; onDownload: (deployResults: DeployResult, deploymentUrl: string) => void; - deploymentHistoryName?: Undefinable; } export const DeployMetadataPackageStatusModal: FunctionComponent = ({ destinationOrg, deployOptions, + deploymentHistoryName, file, hideModal, onGoBack, onClose, onDownload, - deploymentHistoryName, }) => { const { serverUrl } = useRecoilValue(applicationCookieState); const skipFrontDoorAuth = useRecoilValue(selectSkipFrontdoorAuth); @@ -36,8 +36,8 @@ export const DeployMetadataPackageStatusModal: FunctionComponent { @@ -50,7 +50,7 @@ export const DeployMetadataPackageStatusModal: FunctionComponent = const [deployMetadataOptions, setDeployMetadataOptions] = useState(null); const [selectedMetadata, setSelectedMetadata] = useState>(); - const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); + const [deploymentHistoryName, setDeploymentHistoryName] = useState>(undefined); function handleClick() { setConfigModalOpen(true); @@ -59,8 +59,6 @@ export const DeployMetadataToOrg: FunctionComponent = setDownloadResultsModalOpen(true); } - console.log('deploymentHistoryName Parent:', deploymentHistoryName); - return (