diff --git a/web/features/deployments/components/create-instance-modal.tsx b/web/features/deployments/components/create-instance-modal.tsx index a649633f6a..16f4b7f842 100644 --- a/web/features/deployments/components/create-instance-modal.tsx +++ b/web/features/deployments/components/create-instance-modal.tsx @@ -232,7 +232,7 @@ const CreateInstanceForm: FC<{ onClose: () => void }> = ({ onClose }) => { onClose() if (thenDeploy) { openDeployDrawer({ - appId: result.appInstanceId, + appInstanceId: result.appInstanceId, releaseId: result.initialRelease?.id, }) return diff --git a/web/features/deployments/components/deploy-drawer.tsx b/web/features/deployments/components/deploy-drawer.tsx index 8ca830efe1..534e6165bb 100644 --- a/web/features/deployments/components/deploy-drawer.tsx +++ b/web/features/deployments/components/deploy-drawer.tsx @@ -15,13 +15,13 @@ import { DeployForm } from './deploy-drawer/form' const DeployDrawer: FC = () => { const { t } = useTranslation('deployments') const drawer = useDeploymentsStore(state => state.deployDrawer) - const drawerAppId = drawer.appId + const drawerAppInstanceId = drawer.appInstanceId const closeDeployDrawer = useDeploymentsStore(state => state.closeDeployDrawer) const startDeploy = useStartDeployment() const open = drawer.open const { data: releaseHistory } = useQuery({ - ...deploymentReleaseHistoryQueryOptions(drawerAppId), - enabled: open && Boolean(drawerAppId), + ...deploymentReleaseHistoryQueryOptions(drawerAppInstanceId), + enabled: open && Boolean(drawerAppInstanceId), }) const { data: environmentOptionsReply } = useQuery({ ...consoleQuery.deployments.deploymentEnvironmentOptions.queryOptions(), @@ -35,7 +35,7 @@ const DeployDrawer: FC = () => { const environments = environmentOptions const releases = releaseHistory?.data?.map(row => row.release ?? row).filter(release => release.id) ?? [] const defaultReleaseId = releases[0]?.id - const formKey = `${drawer.appId ?? 'none'}-${drawer.environmentId ?? 'any'}-${drawer.releaseId ?? 'new'}-${open ? '1' : '0'}` + const formKey = `${drawer.appInstanceId ?? 'none'}-${drawer.environmentId ?? 'any'}-${drawer.releaseId ?? 'new'}-${open ? '1' : '0'}` return ( { > - {!drawerAppId + {!drawerAppInstanceId ?
{t('deployDrawer.notFound')}
: (!releaseHistory || !environmentOptionsReply) ? ( @@ -56,7 +56,7 @@ const DeployDrawer: FC = () => { : ( { onSubmit={({ environmentId, releaseId, releaseNote }) => { closeDeployDrawer() startDeploy.mutate({ - appId: drawerAppId, + appInstanceId: drawerAppInstanceId, environmentId, releaseId, releaseNote, diff --git a/web/features/deployments/components/deploy-drawer/form.tsx b/web/features/deployments/components/deploy-drawer/form.tsx index 420bbec2f3..d4ebb30b0a 100644 --- a/web/features/deployments/components/deploy-drawer/form.tsx +++ b/web/features/deployments/components/deploy-drawer/form.tsx @@ -33,7 +33,7 @@ export type DeployFormSubmit = { } type DeployFormProps = { - appId: string + appInstanceId: string environments: EnvironmentOption[] releases: ConsoleReleaseSummary[] defaultReleaseId?: string @@ -79,7 +79,7 @@ const RuntimeBindingGroup: FC = ({ label, bindings, is } export const DeployForm: FC = ({ - appId, + appInstanceId, environments, releases, defaultReleaseId, @@ -105,9 +105,9 @@ export const DeployForm: FC = ({ const canDeploy = Boolean(selectedEnvironmentId && selectedEnvironment && !selectedEnvironment.disabled && (!isPromote || displayedRelease?.id || defaultReleaseId)) const previewReleaseId = isPromote ? displayedRelease?.id ?? defaultReleaseId : undefined const releasePreview = useQuery(consoleQuery.deployments.previewRelease.queryOptions({ - input: appId && (!isPromote || previewReleaseId) + input: appInstanceId && (!isPromote || previewReleaseId) ? { - params: { appInstanceId: appId }, + params: { appInstanceId }, body: { releaseId: previewReleaseId, }, diff --git a/web/features/deployments/components/rollback-modal.tsx b/web/features/deployments/components/rollback-modal.tsx index fa1cc28906..9880f77e3c 100644 --- a/web/features/deployments/components/rollback-modal.tsx +++ b/web/features/deployments/components/rollback-modal.tsx @@ -46,20 +46,20 @@ const RollbackModal: FC = () => { const closeRollbackModal = useDeploymentsStore(state => state.closeRollbackModal) const rollbackDeployment = useStartDeployment() const { data: overview } = useQuery({ - ...deploymentOverviewQueryOptions(modal.appId), - enabled: modal.open && Boolean(modal.appId), + ...deploymentOverviewQueryOptions(modal.appInstanceId), + enabled: modal.open && Boolean(modal.appInstanceId), }) const { data: environmentDeployments } = useQuery({ - ...deploymentEnvironmentDeploymentsQueryOptions(modal.appId), - enabled: modal.open && Boolean(modal.appId), + ...deploymentEnvironmentDeploymentsQueryOptions(modal.appInstanceId), + enabled: modal.open && Boolean(modal.appInstanceId), }) const { data: environmentOptionsReply } = useQuery({ ...consoleQuery.deployments.deploymentEnvironmentOptions.queryOptions(), enabled: modal.open, }) const { data: releaseHistory } = useQuery({ - ...deploymentReleaseHistoryQueryOptions(modal.appId), - enabled: modal.open && Boolean(modal.appId), + ...deploymentReleaseHistoryQueryOptions(modal.appInstanceId), + enabled: modal.open && Boolean(modal.appInstanceId), }) const environmentOptions = useMemo( () => environmentOptionsFromOptionsReply(environmentOptionsReply), @@ -77,11 +77,11 @@ const RollbackModal: FC = () => { const app = toAppInfoFromOverview(overview?.instance) const confirm = () => { - if (!modal.appId || !modal.environmentId || !modal.targetReleaseId) + if (!modal.appInstanceId || !modal.environmentId || !modal.targetReleaseId) return closeRollbackModal() rollbackDeployment.mutate({ - appId: modal.appId, + appInstanceId: modal.appInstanceId, environmentId: modal.environmentId, releaseId: modal.targetReleaseId, }) diff --git a/web/features/deployments/detail/deploy-tab.tsx b/web/features/deployments/detail/deploy-tab.tsx index 2dd015a420..a3e06f539a 100644 --- a/web/features/deployments/detail/deploy-tab.tsx +++ b/web/features/deployments/detail/deploy-tab.tsx @@ -38,9 +38,9 @@ type DeployTabProps = { instanceId: string } -const DeployTab: FC = ({ instanceId: appId }) => { +const DeployTab: FC = ({ instanceId: appInstanceId }) => { const { t } = useTranslation('deployments') - const { data: environmentDeployments } = useQuery(deploymentEnvironmentDeploymentsQueryOptions(appId)) + const { data: environmentDeployments } = useQuery(deploymentEnvironmentDeploymentsQueryOptions(appInstanceId)) const { data: environmentOptionsReply } = useQuery(consoleQuery.deployments.deploymentEnvironmentOptions.queryOptions()) const openDeployDrawer = useDeploymentsStore(state => state.openDeployDrawer) const undeployDeployment = useUndeployDeployment() @@ -108,7 +108,7 @@ const DeployTab: FC = ({ instanceId: appId }) => { className="gap-2 px-3" onClick={() => { setDeployMenuOpen(false) - openDeployDrawer({ appId }) + openDeployDrawer({ appInstanceId }) }} > {t('deployTab.deployToNewEnv')} @@ -125,7 +125,7 @@ const DeployTab: FC = ({ instanceId: appId }) => { if (env.disabled) return setDeployMenuOpen(false) - openDeployDrawer({ appId, environmentId: env.id }) + openDeployDrawer({ appInstanceId, environmentId: env.id }) }} > @@ -170,7 +170,7 @@ const DeployTab: FC = ({ instanceId: appId }) => { onClick={e => e.stopPropagation()} onKeyDown={e => e.stopPropagation()} > - diff --git a/web/features/deployments/detail/versions-tab.tsx b/web/features/deployments/detail/versions-tab.tsx index 5411833afb..5a2a0d9412 100644 --- a/web/features/deployments/detail/versions-tab.tsx +++ b/web/features/deployments/detail/versions-tab.tsx @@ -99,7 +99,7 @@ const VersionsTab: FC = ({ instanceId: appId }) => {
- +
@@ -150,7 +150,7 @@ const VersionsTab: FC = ({ instanceId: appId }) => { ))}
- +
diff --git a/web/features/deployments/detail/versions-tab/deploy-release-menu.tsx b/web/features/deployments/detail/versions-tab/deploy-release-menu.tsx index 9d07a1efd5..2bd6b06ac2 100644 --- a/web/features/deployments/detail/versions-tab/deploy-release-menu.tsx +++ b/web/features/deployments/detail/versions-tab/deploy-release-menu.tsx @@ -25,17 +25,17 @@ import { } from '../../utils' type DeployReleaseMenuProps = { - appId: string + appInstanceId: string releaseId: string } -export const DeployReleaseMenu: FC = ({ appId, releaseId }) => { +export const DeployReleaseMenu: FC = ({ appInstanceId, releaseId }) => { const { t } = useTranslation('deployments') const openDeployDrawer = useDeploymentsStore(state => state.openDeployDrawer) const openRollbackModal = useDeploymentsStore(state => state.openRollbackModal) const [open, setOpen] = useState(false) const { data: environmentDeployments } = useQuery({ - ...deploymentEnvironmentDeploymentsQueryOptions(appId), + ...deploymentEnvironmentDeploymentsQueryOptions(appInstanceId), enabled: open, }) const { data: environmentOptionsReply } = useQuery({ @@ -81,14 +81,14 @@ export const DeployReleaseMenu: FC = ({ appId, releaseId return if (row) { openRollbackModal({ - appId, + appInstanceId, environmentId: envId, deploymentId: deploymentId(row), targetReleaseId: releaseId, }) return } - openDeployDrawer({ appId, environmentId: envId, releaseId }) + openDeployDrawer({ appInstanceId, environmentId: envId, releaseId }) }} > diff --git a/web/features/deployments/hooks/use-deployment-mutations.ts b/web/features/deployments/hooks/use-deployment-mutations.ts index c3f2901087..14c8c6c36f 100644 --- a/web/features/deployments/hooks/use-deployment-mutations.ts +++ b/web/features/deployments/hooks/use-deployment-mutations.ts @@ -4,7 +4,6 @@ import type { QueryClient, QueryKey } from '@tanstack/react-query' import type { ConsoleReleaseSummary } from '@/contract/console/deployments' import { useMutation, useQueryClient } from '@tanstack/react-query' import { consoleClient, consoleQuery } from '@/service/client' -import { DEPLOYMENT_PAGE_SIZE } from '../data' import { deploymentAccessConfigQueryKey, deploymentAccessStateQueryKeys, @@ -14,6 +13,7 @@ import { deploymentInstanceStateQueryKeys, deploymentReleaseHistoryQueryKey, deploymentsListQueryKey, + deploymentsListQueryOptions, } from '../queries' export type CreateDeploymentInstanceResult = { @@ -22,7 +22,7 @@ export type CreateDeploymentInstanceResult = { } type CreateDeploymentParams = { - appId: string + appInstanceId: string environmentId: string releaseId?: string releaseNote?: string @@ -35,7 +35,7 @@ type CreateInstanceParams = { } type UndeployDeploymentParams = { - appId: string + appInstanceId: string runtimeInstanceId: string isDeploying?: boolean } @@ -106,12 +106,7 @@ export const useCreateDeploymentInstance = () => { if (delay > 0) await wait(delay) - const listResponse = await consoleClient.deployments.list({ - query: { - pageNumber: 1, - resultsPerPage: DEPLOYMENT_PAGE_SIZE, - }, - }).catch(() => undefined) + const listResponse = await queryClient.fetchQuery(deploymentsListQueryOptions()).catch(() => undefined) if (listResponse?.data?.some(app => app.id === response.appInstanceId)) break } @@ -153,7 +148,7 @@ export const useStartDeployment = () => { return useMutation({ mutationKey: consoleQuery.deployments.createDeployment.mutationKey(), mutationFn: async ({ - appId, + appInstanceId, environmentId, releaseId, releaseNote, @@ -162,7 +157,7 @@ export const useStartDeployment = () => { let releaseWasCreated = false await consoleClient.deployments.previewRelease({ params: { - appInstanceId: appId, + appInstanceId, }, body: { releaseId: targetReleaseId, @@ -174,7 +169,7 @@ export const useStartDeployment = () => { const trimmedReleaseNote = releaseNote?.trim() const response = await consoleClient.deployments.createRelease({ params: { - appInstanceId: appId, + appInstanceId, }, body: { name: trimmedReleaseNote || 'Release', @@ -192,7 +187,7 @@ export const useStartDeployment = () => { return await consoleClient.deployments.createDeployment({ params: { - appInstanceId: appId, + appInstanceId, }, body: { environmentId, @@ -203,14 +198,14 @@ export const useStartDeployment = () => { catch (error) { if (releaseWasCreated) { await queryClient.invalidateQueries({ - queryKey: deploymentReleaseHistoryQueryKey(appId), + queryKey: deploymentReleaseHistoryQueryKey(appInstanceId), }) } throw error } }, onSuccess: (_data, variables) => { - return invalidateDeploymentState(queryClient, variables.appId) + return invalidateDeploymentState(queryClient, variables.appInstanceId) }, }) } @@ -220,26 +215,26 @@ export const useUndeployDeployment = () => { return useMutation({ mutationKey: consoleQuery.deployments.undeployEnvironment.mutationKey(), - mutationFn: ({ appId, runtimeInstanceId, isDeploying }: UndeployDeploymentParams) => { + mutationFn: ({ appInstanceId, runtimeInstanceId, isDeploying }: UndeployDeploymentParams) => { if (!runtimeInstanceId) throw new Error('runtimeInstanceId is required to undeploy a deployment.') if (isDeploying) { return consoleClient.deployments.cancelDeployment({ params: { - appInstanceId: appId, + appInstanceId, runtimeInstanceId, }, }) } return consoleClient.deployments.undeployEnvironment({ params: { - appInstanceId: appId, + appInstanceId, runtimeInstanceId, }, }) }, onSuccess: (_data, variables) => { - return invalidateDeploymentState(queryClient, variables.appId) + return invalidateDeploymentState(queryClient, variables.appInstanceId) }, }) } diff --git a/web/features/deployments/list/instance-card.tsx b/web/features/deployments/list/instance-card.tsx index 04e05c4b80..9ba4efca6f 100644 --- a/web/features/deployments/list/instance-card.tsx +++ b/web/features/deployments/list/instance-card.tsx @@ -216,7 +216,7 @@ export const InstanceCard: FC = ({ app, summary }) => { handleMenuAction(e, () => openDeployDrawer({ appId: app.id }))} + onClick={e => handleMenuAction(e, () => openDeployDrawer({ appInstanceId: app.id }))} > {t('card.menu.deploy')} diff --git a/web/features/deployments/store.ts b/web/features/deployments/store.ts index 5e98605d7c..741f791ab5 100644 --- a/web/features/deployments/store.ts +++ b/web/features/deployments/store.ts @@ -1,13 +1,13 @@ import { create } from 'zustand' type OpenDeployDrawerParams = { - appId: string + appInstanceId: string environmentId?: string releaseId?: string } type OpenRollbackParams = { - appId: string + appInstanceId: string environmentId: string targetReleaseId: string deploymentId?: string @@ -16,13 +16,13 @@ type OpenRollbackParams = { type DeploymentsStore = { deployDrawer: { open: boolean - appId?: string + appInstanceId?: string environmentId?: string releaseId?: string } rollbackModal: { open: boolean - appId?: string + appInstanceId?: string environmentId?: string deploymentId?: string targetReleaseId?: string @@ -45,14 +45,14 @@ export const useDeploymentsStore = create()(set => ({ openDeployDrawer: params => set({ deployDrawer: { open: true, - appId: params.appId, + appInstanceId: params.appInstanceId, environmentId: params.environmentId, releaseId: params.releaseId, }, }), closeDeployDrawer: () => set({ deployDrawer: { open: false } }), - openRollbackModal: ({ appId, environmentId, deploymentId, targetReleaseId }) => set({ - rollbackModal: { open: true, appId, environmentId, deploymentId, targetReleaseId }, + openRollbackModal: ({ appInstanceId, environmentId, deploymentId, targetReleaseId }) => set({ + rollbackModal: { open: true, appInstanceId, environmentId, deploymentId, targetReleaseId }, }), closeRollbackModal: () => set({ rollbackModal: { open: false } }), openCreateInstanceModal: () => set({ createInstanceModal: { open: true } }),