diff --git a/coderd/templatebuilder_handler.go b/coderd/templatebuilder_handler.go index 5d4e522ee4473..bd931741f4725 100644 --- a/coderd/templatebuilder_handler.go +++ b/coderd/templatebuilder_handler.go @@ -459,7 +459,7 @@ func (api *API) templateBuilderCreateTemplate(rw http.ResponseWriter, r *http.Re jobCtx, jobCancel := context.WithTimeout(ctx, templateBuilderCreateTemplateTimeout) defer jobCancel() - completedJob, err := api.waitForProvisionerJob(jobCtx, provisionerJob.ID, nil) + completedJob, err := api.waitForProvisionerJob(jobCtx, provisionerJob.ID) if err != nil { if errors.Is(err, context.DeadlineExceeded) { httpapi.Write(ctx, rw, http.StatusGatewayTimeout, codersdk.Response{ @@ -616,11 +616,9 @@ func (api *API) templateBuilderCreateTemplate(rw http.ResponseWriter, r *http.Re } // waitForProvisionerJob polls until the job completes or the context expires. -// If onUpdate is non-nil, it is called after each poll with the latest job state. func (api *API) waitForProvisionerJob( ctx context.Context, jobID uuid.UUID, - onUpdate func(database.ProvisionerJob), ) (database.ProvisionerJob, error) { initialIntervals := []time.Duration{ 100 * time.Millisecond, @@ -648,10 +646,6 @@ func (api *API) waitForProvisionerJob( return database.ProvisionerJob{}, xerrors.Errorf("get provisioner job: %w", err) } - if onUpdate != nil { - onUpdate(job) - } - if job.CompletedAt.Valid { return job, nil } diff --git a/site/src/pages/TemplateBuilder/BuildingTemplateLoader.tsx b/site/src/pages/TemplateBuilder/BuildingTemplateLoader.tsx index 8b6c434aefb39..55ddd7f9dec4b 100644 --- a/site/src/pages/TemplateBuilder/BuildingTemplateLoader.tsx +++ b/site/src/pages/TemplateBuilder/BuildingTemplateLoader.tsx @@ -29,8 +29,9 @@ const ICONS: FloatingIcon[] = [ /** * Full-area animated loader displayed while the template builder compose - * API call is in flight. Shows floating icon boxes, a progress bar, and - * an animated "Building your template..." label. + * API call is in flight. Shows floating icon boxes, an indeterminate progress + * bar that fills once and holds, and an animated "Building your template..." + * label. */ export const BuildingTemplateLoader: FC = () => { return ( @@ -74,11 +75,10 @@ export const BuildingTemplateLoader: FC = () => { diff --git a/site/src/pages/TemplateBuilder/TemplateBuilderPage.tsx b/site/src/pages/TemplateBuilder/TemplateBuilderPage.tsx index 561653e0599ec..b8ed0727574a0 100644 --- a/site/src/pages/TemplateBuilder/TemplateBuilderPage.tsx +++ b/site/src/pages/TemplateBuilder/TemplateBuilderPage.tsx @@ -86,7 +86,7 @@ const TemplateBuilderPage: FC = () => { preselectedBase={preselectedBase} onCreateTemplate={handleCreate} createError={createMutation.error} - isCreating={createMutation.isPending} + isCreating={createMutation.isPending || createMutation.isSuccess} onClearCreateError={() => createMutation.reset()} />