Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Add final fixes
  • Loading branch information
BrunoQuaresma committed Apr 3, 2023
commit d7d8a417044a56812edebf2eef37263a4756f888
4 changes: 3 additions & 1 deletion site/src/components/Workspace/Workspace.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ export interface WorkspaceProps {
builds?: TypesGen.WorkspaceBuild[]
canUpdateWorkspace: boolean
canUpdateTemplate: boolean
canChangeVersions: boolean
hideSSHButton?: boolean
hideVSCodeDesktopButton?: boolean
workspaceErrors: Partial<Record<WorkspaceErrors, Error | unknown>>
Expand Down Expand Up @@ -84,6 +85,7 @@ export const Workspace: FC<React.PropsWithChildren<WorkspaceProps>> = ({
builds,
canUpdateWorkspace,
canUpdateTemplate,
canChangeVersions,
workspaceErrors,
hideSSHButton,
hideVSCodeDesktopButton,
Expand Down Expand Up @@ -145,7 +147,7 @@ export const Workspace: FC<React.PropsWithChildren<WorkspaceProps>> = ({
handleCancel={handleCancel}
handleSettings={handleSettings}
handleChangeVersion={handleChangeVersion}
canUpdateTemplate={canUpdateTemplate}
canChangeVersions={canChangeVersions}
isUpdating={isUpdating}
/>
</Stack>
Expand Down
6 changes: 3 additions & 3 deletions site/src/components/WorkspaceActions/WorkspaceActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export interface WorkspaceActionsProps {
handleChangeVersion: () => void
isUpdating: boolean
children?: ReactNode
canUpdateTemplate: boolean
canChangeVersions: boolean
}

export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
Expand All @@ -40,7 +40,7 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
handleSettings,
handleChangeVersion,
isUpdating,
canUpdateTemplate,
canChangeVersions,
}) => {
const { t } = useTranslation("workspacePage")
const { canCancel, canAcceptJobs, actions } = buttonAbilities(workspaceStatus)
Expand All @@ -55,7 +55,7 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
[ButtonTypesEnum.settings]: (
<SettingsButton handleAction={handleSettings} />
),
[ButtonTypesEnum.changeVersion]: canUpdateTemplate ? (
[ButtonTypesEnum.changeVersion]: canChangeVersions ? (
<ChangeVersionButton handleAction={handleChangeVersion} />
) : (
<></>
Expand Down
19 changes: 9 additions & 10 deletions site/src/pages/WorkspacePage/ChangeVersionDialog.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { DialogProps } from "components/Dialogs/Dialog"
import { FC, useState } from "react"
import { FC, useRef, useState } from "react"
import { FormFields } from "components/Form/Form"
import TextField from "@material-ui/core/TextField"
import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog"
Expand Down Expand Up @@ -30,17 +30,15 @@ export const ChangeVersionDialog: FC<ChangeVersionDialogProps> = ({
...dialogProps
}) => {
const [isAutocompleteOpen, setIsAutocompleteOpen] = useState(false)
const [selectedTemplateVersion, setSelectedTemplateVersion] = useState<
TemplateVersion | undefined
>(defaultTemplateVersion)
const selectedTemplateVersion = useRef<TemplateVersion | undefined>()

return (
<ConfirmDialog
{...dialogProps}
onClose={onClose}
onConfirm={() => {
if (selectedTemplateVersion) {
onConfirm(selectedTemplateVersion)
if (selectedTemplateVersion.current) {
onConfirm(selectedTemplateVersion.current)
}
}}
hideCancel={false}
Expand All @@ -56,12 +54,13 @@ export const ChangeVersionDialog: FC<ChangeVersionDialogProps> = ({
<Autocomplete
disableClearable
options={templateVersions}
value={selectedTemplateVersion}
defaultValue={defaultTemplateVersion}
id="template-version-autocomplete"
open={isAutocompleteOpen}
onChange={(_, newTemplateVersion) =>
setSelectedTemplateVersion(newTemplateVersion ?? undefined)
}
onChange={(_, newTemplateVersion) => {
selectedTemplateVersion.current =
newTemplateVersion ?? undefined
}}
onOpen={() => {
setIsAutocompleteOpen(true)
}}
Expand Down
4 changes: 4 additions & 0 deletions site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ export const WorkspaceReadyPage = ({
queryFn: () => getTemplateVersions(workspace.template_id),
enabled: changeVersionDialogOpen,
})
const dashboard = useDashboard()

// keep banner machine in sync with workspace
useEffect(() => {
Expand Down Expand Up @@ -135,6 +136,9 @@ export const WorkspaceReadyPage = ({
builds={builds}
canUpdateWorkspace={canUpdateWorkspace}
canUpdateTemplate={canUpdateTemplate}
canChangeVersions={
canUpdateTemplate && dashboard.experiments.includes("template_editor")
}
hideSSHButton={featureVisibility["browser_only"]}
hideVSCodeDesktopButton={featureVisibility["browser_only"]}
workspaceErrors={{
Expand Down