From 674eea030e848d85b343cd7c5e0d811abedfa595 Mon Sep 17 00:00:00 2001 From: Abhineet Jain Date: Mon, 27 Jun 2022 13:57:10 +0000 Subject: [PATCH] refactor: update Prettier printWidth to 100 --- site/.prettierrc | 2 +- site/can-ndjson-stream.d.ts | 4 +- site/e2e/playwright.config.ts | 5 +- site/e2e/util.ts | 10 +- site/htmlTemplates/index.html | 6 +- site/jest.setup.ts | 4 +- site/src/AppRouter.tsx | 4 +- site/src/api/api.ts | 96 ++++++++++++++----- site/src/api/errors.ts | 17 +++- site/src/api/typesGenerated.ts | 8 +- site/src/components/AvatarData/AvatarData.tsx | 6 +- .../BorderedMenu/BorderedMenu.stories.tsx | 7 +- .../components/BorderedMenu/BorderedMenu.tsx | 6 +- .../components/BuildsTable/BuildsTable.tsx | 4 +- .../components/CodeExample/CodeExample.tsx | 7 +- .../ConfirmDialog/ConfirmDialog.tsx | 3 +- site/src/components/CopyButton/CopyButton.tsx | 6 +- .../CreateUserForm/CreateUserForm.stories.tsx | 4 +- .../CreateUserForm/CreateUserForm.tsx | 20 ++-- site/src/components/Dialog/Dialog.tsx | 8 +- .../EnterpriseSnackbar.stories.tsx | 4 +- .../EnterpriseSnackbar/EnterpriseSnackbar.tsx | 7 +- .../components/ErrorSummary/ErrorSummary.tsx | 6 +- site/src/components/Footer/Footer.tsx | 7 +- .../FormDropdownField/FormDropdownField.tsx | 5 +- site/src/components/FormFooter/FormFooter.tsx | 14 ++- .../FormTextField/FormTextField.test.tsx | 4 +- .../GlobalSnackbar/GlobalSnackbar.tsx | 3 +- site/src/components/GlobalSnackbar/utils.ts | 10 +- site/src/components/Icons/CloseIcon.tsx | 7 +- site/src/components/Icons/Logo.tsx | 8 +- .../LoadingButton/LoadingButton.tsx | 6 +- .../components/Margins/Margins.stories.tsx | 4 +- site/src/components/NavbarView/NavbarView.tsx | 9 +- .../ParameterInput/ParameterInput.stories.tsx | 4 +- .../PasswordField/PasswordField.tsx | 11 ++- .../ResetPasswordDialog.stories.tsx | 4 +- site/src/components/Resources/Resources.tsx | 12 ++- site/src/components/RoleSelect/RoleSelect.tsx | 8 +- .../RuntimeErrorState/RuntimeErrorReport.tsx | 8 +- .../RuntimeErrorState.test.tsx | 5 +- .../RuntimeErrorState/RuntimeErrorState.tsx | 4 +- .../SearchBarWithFilter.tsx | 13 ++- .../SettingsAccountForm.tsx | 8 +- .../SignInForm/SignInForm.stories.tsx | 5 +- site/src/components/SignInForm/SignInForm.tsx | 8 +- .../components/SplitButton/SplitButton.tsx | 7 +- site/src/components/Stack/Stack.tsx | 8 +- site/src/components/TabSidebar/TabSidebar.tsx | 8 +- site/src/components/Table/Table.tsx | 18 +++- .../components/TableRowMenu/TableRowMenu.tsx | 16 +++- .../TemplateStats/TemplateStats.tsx | 4 +- .../components/TerminalLink/TerminalLink.tsx | 7 +- .../HelpTooltip/HelpTooltip.stories.tsx | 4 +- .../Tooltips/HelpTooltip/HelpTooltip.tsx | 14 ++- .../Tooltips/ResourcesHelpTooltip.tsx | 3 +- site/src/components/UserCell/UserCell.tsx | 7 +- .../components/UserDropdown/UsersDropdown.tsx | 11 ++- .../UserDropdownContent.test.tsx | 4 +- .../UserDropdownContent.tsx | 6 +- site/src/components/Workspace/Workspace.tsx | 5 +- .../WorkspaceActionButton.tsx | 7 +- .../WorkspaceActions/WorkspaceActions.tsx | 12 ++- .../WorkspaceBuildStats.tsx | 4 +- .../WorkspaceDeletedBanner.tsx | 5 +- .../WorkspaceSchedule/WorkspaceSchedule.tsx | 4 +- .../WorkspaceScheduleBanner.stories.tsx | 4 +- .../WorkspaceScheduleBanner.tsx | 6 +- .../WorkspaceScheduleForm.stories.tsx | 6 +- .../WorkspaceScheduleForm.test.ts | 7 +- .../WorkspaceScheduleForm.tsx | 6 +- .../WorkspaceSection.stories.tsx | 4 +- .../WorkspaceSection/WorkspaceSection.tsx | 12 ++- site/src/hooks/events.ts | 5 +- .../CreateWorkspacePageView.stories.tsx | 4 +- .../CreateWorkspacePageView.tsx | 59 ++++++------ .../pages/TemplatePage/TemplatePage.test.tsx | 11 ++- .../pages/TemplatePage/TemplatePageView.tsx | 28 +++++- .../pages/TemplatesPage/TemplatesPageView.tsx | 16 +++- site/src/pages/TerminalPage/TerminalPage.tsx | 14 ++- .../AccountPage/AccountPage.tsx | 4 +- .../SSHKeysPage/SSHKeysPage.test.tsx | 19 +++- .../SecurityPage/SecurityPage.test.tsx | 17 +++- .../CreateUserPage/CreateUserPage.tsx | 4 +- site/src/pages/UsersPage/UsersPage.test.tsx | 44 +++++++-- site/src/pages/UsersPage/UsersPage.tsx | 10 +- .../WorkspaceAppErrorPageView.stories.tsx | 12 ++- .../WorkspaceBuildPage/WorkspaceBuildPage.tsx | 4 +- .../WorkspaceBuildPageView.tsx | 4 +- .../WorkspacePage/WorkspacePage.test.tsx | 16 +++- .../src/pages/WorkspacePage/WorkspacePage.tsx | 3 +- .../WorkspaceSchedulePage.test.tsx | 6 +- .../WorkspaceSchedulePage.tsx | 14 ++- .../WorkspacesPageView.stories.tsx | 5 +- .../WorkspacesPage/WorkspacesPageView.tsx | 21 +++- site/src/testHelpers/entities.ts | 5 +- site/src/testHelpers/handlers.ts | 9 +- site/src/testHelpers/renderHelpers.tsx | 7 +- site/src/util/events.ts | 4 +- site/src/util/workspace.test.ts | 7 +- site/src/util/workspace.ts | 8 +- site/src/xServices/StateContext.tsx | 4 +- .../createWorkspaceXService.ts | 7 +- .../xServices/terminal/terminalXService.ts | 8 +- site/src/xServices/users/usersXService.ts | 8 +- .../xServices/workspace/workspaceXService.ts | 14 ++- .../workspaceBuild/workspaceBuildXService.ts | 3 +- .../workspaces/workspacesXService.ts | 4 +- 108 files changed, 786 insertions(+), 232 deletions(-) diff --git a/site/.prettierrc b/site/.prettierrc index b2caa96bf7edd..30be255796ce9 100644 --- a/site/.prettierrc +++ b/site/.prettierrc @@ -1,5 +1,5 @@ { - "printWidth": 120, + "printWidth": 100, "semi": false, "trailingComma": "all", "overrides": [ diff --git a/site/can-ndjson-stream.d.ts b/site/can-ndjson-stream.d.ts index 5859213801d93..d4fde38eee9ac 100644 --- a/site/can-ndjson-stream.d.ts +++ b/site/can-ndjson-stream.d.ts @@ -1,4 +1,6 @@ declare module "can-ndjson-stream" { - function ndjsonStream(body: ReadableStream | null): Promise> + function ndjsonStream( + body: ReadableStream | null, + ): Promise> export default ndjsonStream } diff --git a/site/e2e/playwright.config.ts b/site/e2e/playwright.config.ts index 71b18659eba96..bd0a6ea4a6518 100644 --- a/site/e2e/playwright.config.ts +++ b/site/e2e/playwright.config.ts @@ -17,7 +17,10 @@ const config: PlaywrightTestConfig = { // https://playwright.dev/docs/test-advanced#launching-a-development-web-server-during-the-tests webServer: { // Run the coder daemon directly. - command: `go run -tags embed ${path.join(__dirname, "../../cmd/coder/main.go")} server --in-memory`, + command: `go run -tags embed ${path.join( + __dirname, + "../../cmd/coder/main.go", + )} server --in-memory`, port: 3000, timeout: 120 * 10000, reuseExistingServer: false, diff --git a/site/e2e/util.ts b/site/e2e/util.ts index c9905ab10d901..072c89eff7fe7 100644 --- a/site/e2e/util.ts +++ b/site/e2e/util.ts @@ -22,7 +22,10 @@ export const timeout = (timeoutInMilliseconds: number): Promise => { * @param timeToWaitInMilliseconds The total time to wait for the condition to be `true`. * @returns */ -export const waitFor = async (f: () => Promise, timeToWaitInMilliseconds = 30000): Promise => { +export const waitFor = async ( + f: () => Promise, + timeToWaitInMilliseconds = 30000, +): Promise => { let elapsedTime = 0 const timeToWaitPerIteration = 1000 @@ -58,7 +61,10 @@ interface WaitForClientSideNavigationOpts { * waitForNavigation waits for load events on the DOM (ex: after a page load * from the server). */ -export const waitForClientSideNavigation = async (page: Page, opts: WaitForClientSideNavigationOpts): Promise => { +export const waitForClientSideNavigation = async ( + page: Page, + opts: WaitForClientSideNavigationOpts, +): Promise => { console.info(`--- waitForClientSideNavigation: start`) await Promise.all([ diff --git a/site/htmlTemplates/index.html b/site/htmlTemplates/index.html index 3fc9d4dd41614..1fb055a67bb95 100644 --- a/site/htmlTemplates/index.html +++ b/site/htmlTemplates/index.html @@ -17,7 +17,11 @@ - + diff --git a/site/jest.setup.ts b/site/jest.setup.ts index d986b4b330209..bd198be448a62 100644 --- a/site/jest.setup.ts +++ b/site/jest.setup.ts @@ -46,7 +46,9 @@ CONSOLE_FAIL_TYPES.forEach((logType: string) => { const consoleAsAny = global.console as any // eslint-disable-next-line @typescript-eslint/no-explicit-any consoleAsAny[logType] = (format: string, ...args: any[]): void => { - throw new Error(`Failing due to console.${logType} while running test!\n\n${util.format(format, ...args)}`) + throw new Error( + `Failing due to console.${logType} while running test!\n\n${util.format(format, ...args)}`, + ) } }) diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx index 253a3c8e8c63f..d76dbc687da77 100644 --- a/site/src/AppRouter.tsx +++ b/site/src/AppRouter.tsx @@ -19,7 +19,9 @@ import { WorkspaceBuildPage } from "./pages/WorkspaceBuildPage/WorkspaceBuildPag import { WorkspacePage } from "./pages/WorkspacePage/WorkspacePage" import { WorkspaceSchedulePage } from "./pages/WorkspaceSchedulePage/WorkspaceSchedulePage" -const WorkspaceAppErrorPage = lazy(() => import("./pages/WorkspaceAppErrorPage/WorkspaceAppErrorPage")) +const WorkspaceAppErrorPage = lazy( + () => import("./pages/WorkspaceAppErrorPage/WorkspaceAppErrorPage"), +) const TerminalPage = lazy(() => import("./pages/TerminalPage/TerminalPage")) const WorkspacesPage = lazy(() => import("./pages/WorkspacesPage/WorkspacesPage")) const CreateWorkspacePage = lazy(() => import("./pages/CreateWorkspacePage/CreateWorkspacePage")) diff --git a/site/src/api/api.ts b/site/src/api/api.ts index c52d03618a3b6..90af2f4d5aba3 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -22,15 +22,22 @@ export const provisioners: TypesGen.ProvisionerDaemon[] = [ }, ] -export const login = async (email: string, password: string): Promise => { +export const login = async ( + email: string, + password: string, +): Promise => { const payload = JSON.stringify({ email, password, }) - const response = await axios.post("/api/v2/users/login", payload, { - headers: { ...CONTENT_TYPE_JSON }, - }) + const response = await axios.post( + "/api/v2/users/login", + payload, + { + headers: { ...CONTENT_TYPE_JSON }, + }, + ) return response.data } @@ -53,7 +60,10 @@ export const checkUserPermissions = async ( userId: string, params: TypesGen.UserAuthorizationRequest, ): Promise => { - const response = await axios.post(`/api/v2/users/${userId}/authorization`, params) + const response = await axios.post( + `/api/v2/users/${userId}/authorization`, + params, + ) return response.data } @@ -83,27 +93,44 @@ export const getTemplate = async (templateId: string): Promise => { - const response = await axios.get(`/api/v2/organizations/${organizationId}/templates`) + const response = await axios.get( + `/api/v2/organizations/${organizationId}/templates`, + ) return response.data } -export const getTemplateByName = async (organizationId: string, name: string): Promise => { - const response = await axios.get(`/api/v2/organizations/${organizationId}/templates/${name}`) +export const getTemplateByName = async ( + organizationId: string, + name: string, +): Promise => { + const response = await axios.get( + `/api/v2/organizations/${organizationId}/templates/${name}`, + ) return response.data } export const getTemplateVersion = async (versionId: string): Promise => { - const response = await axios.get(`/api/v2/templateversions/${versionId}`) + const response = await axios.get( + `/api/v2/templateversions/${versionId}`, + ) return response.data } -export const getTemplateVersionSchema = async (versionId: string): Promise => { - const response = await axios.get(`/api/v2/templateversions/${versionId}/schema`) +export const getTemplateVersionSchema = async ( + versionId: string, +): Promise => { + const response = await axios.get( + `/api/v2/templateversions/${versionId}/schema`, + ) return response.data } -export const getTemplateVersionResources = async (versionId: string): Promise => { - const response = await axios.get(`/api/v2/templateversions/${versionId}/resources`) +export const getTemplateVersionResources = async ( + versionId: string, +): Promise => { + const response = await axios.get( + `/api/v2/templateversions/${versionId}/resources`, + ) return response.data } @@ -111,7 +138,9 @@ export const getWorkspace = async ( workspaceId: string, params?: TypesGen.WorkspaceOptions, ): Promise => { - const response = await axios.get(`/api/v2/workspaces/${workspaceId}`, { params }) + const response = await axios.get(`/api/v2/workspaces/${workspaceId}`, { + params, + }) return response.data } @@ -128,7 +157,9 @@ export const getWorkspacesURL = (filter?: TypesGen.WorkspaceFilter): string => { return searchString ? `${basePath}?${searchString}` : basePath } -export const getWorkspaces = async (filter?: TypesGen.WorkspaceFilter): Promise => { +export const getWorkspaces = async ( + filter?: TypesGen.WorkspaceFilter, +): Promise => { const url = getWorkspacesURL(filter) const response = await axios.get(url) return response.data @@ -139,13 +170,18 @@ export const getWorkspaceByOwnerAndName = async ( workspaceName: string, params?: TypesGen.WorkspaceOptions, ): Promise => { - const response = await axios.get(`/api/v2/users/${username}/workspace/${workspaceName}`, { - params, - }) + const response = await axios.get( + `/api/v2/users/${username}/workspace/${workspaceName}`, + { + params, + }, + ) return response.data } -export const getWorkspaceResources = async (workspaceBuildID: string): Promise => { +export const getWorkspaceResources = async ( + workspaceBuildID: string, +): Promise => { const response = await axios.get( `/api/v2/workspacebuilds/${workspaceBuildID}/resources`, ) @@ -167,7 +203,9 @@ export const startWorkspace = postWorkspaceBuild("start") export const stopWorkspace = postWorkspaceBuild("stop") export const deleteWorkspace = postWorkspaceBuild("delete") -export const cancelWorkspaceBuild = async (workspaceBuildId: TypesGen.WorkspaceBuild["id"]): Promise => { +export const cancelWorkspaceBuild = async ( + workspaceBuildId: TypesGen.WorkspaceBuild["id"], +): Promise => { const response = await axios.patch(`/api/v2/workspacebuilds/${workspaceBuildId}/cancel`) return response.data } @@ -181,7 +219,10 @@ export const createWorkspace = async ( organizationId: string, workspace: TypesGen.CreateWorkspaceRequest, ): Promise => { - const response = await axios.post(`/api/v2/organizations/${organizationId}/workspaces`, workspace) + const response = await axios.post( + `/api/v2/organizations/${organizationId}/workspaces`, + workspace, + ) return response.data } @@ -263,8 +304,12 @@ export const regenerateUserSSHKey = async (userId = "me"): Promise => { - const response = await axios.get(`/api/v2/workspaces/${workspaceId}/builds`) +export const getWorkspaceBuilds = async ( + workspaceId: string, +): Promise => { + const response = await axios.get( + `/api/v2/workspaces/${workspaceId}/builds`, + ) return response.data } @@ -279,7 +324,10 @@ export const getWorkspaceBuildByNumber = async ( return response.data } -export const getWorkspaceBuildLogs = async (buildname: string, before: Date): Promise => { +export const getWorkspaceBuildLogs = async ( + buildname: string, + before: Date, +): Promise => { const response = await axios.get( `/api/v2/workspacebuilds/${buildname}/logs?before=${before.getTime()}`, ) diff --git a/site/src/api/errors.ts b/site/src/api/errors.ts index 747a2459d52ba..81311b7f7b276 100644 --- a/site/src/api/errors.ts +++ b/site/src/api/errors.ts @@ -27,7 +27,8 @@ export const isApiError = (err: any): err is ApiError => { const response = err.response?.data return ( - typeof response.message === "string" && (typeof response.errors === "undefined" || Array.isArray(response.errors)) + typeof response.message === "string" && + (typeof response.errors === "undefined" || Array.isArray(response.errors)) ) } @@ -40,7 +41,8 @@ export const isApiError = (err: any): err is ApiError => { * @param error ApiError * @returns true if the ApiError contains error messages for specific form fields. */ -export const hasApiFieldErrors = (error: ApiError): boolean => Array.isArray(error.response.data.validations) +export const hasApiFieldErrors = (error: ApiError): boolean => + Array.isArray(error.response.data.validations) export const mapApiErrorToFieldErrors = (apiErrorResponse: ApiErrorResponse): FieldErrors => { const result: FieldErrors = {} @@ -60,5 +62,12 @@ export const mapApiErrorToFieldErrors = (apiErrorResponse: ApiErrorResponse): Fi * @param defaultMessage * @returns error's message if ApiError or Error, else defaultMessage */ -export const getErrorMessage = (error: Error | ApiError | unknown, defaultMessage: string): string => - isApiError(error) ? error.response.data.message : error instanceof Error ? error.message : defaultMessage +export const getErrorMessage = ( + error: Error | ApiError | unknown, + defaultMessage: string, +): string => + isApiError(error) + ? error.response.data.message + : error instanceof Error + ? error.message + : defaultMessage diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index a49dd6b947dcc..ebfcdf9238856 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -512,7 +512,13 @@ export type ParameterSourceScheme = "data" | "none" export type ParameterTypeSystem = "hcl" | "none" // From codersdk/provisionerdaemons.go:47:6 -export type ProvisionerJobStatus = "canceled" | "canceling" | "failed" | "pending" | "running" | "succeeded" +export type ProvisionerJobStatus = + | "canceled" + | "canceling" + | "failed" + | "pending" + | "running" + | "succeeded" // From codersdk/organizations.go:14:6 export type ProvisionerStorageMethod = "file" diff --git a/site/src/components/AvatarData/AvatarData.tsx b/site/src/components/AvatarData/AvatarData.tsx index ee9d00138b6bb..3bd00e3af4fb8 100644 --- a/site/src/components/AvatarData/AvatarData.tsx +++ b/site/src/components/AvatarData/AvatarData.tsx @@ -22,7 +22,11 @@ export const AvatarData: FC = ({ title, subtitle, link }) => { {link ? ( - + {title} {subtitle} diff --git a/site/src/components/BorderedMenu/BorderedMenu.stories.tsx b/site/src/components/BorderedMenu/BorderedMenu.stories.tsx index 779f4d8f8a309..439407c83ca23 100644 --- a/site/src/components/BorderedMenu/BorderedMenu.stories.tsx +++ b/site/src/components/BorderedMenu/BorderedMenu.stories.tsx @@ -11,7 +11,12 @@ export default { const Template: Story = (args: BorderedMenuProps) => ( - + = ({ children, variant, ...rest const styles = useStyles() return ( - + {children} ) diff --git a/site/src/components/BuildsTable/BuildsTable.tsx b/site/src/components/BuildsTable/BuildsTable.tsx index d2b09103b6cb4..b5a9c7a8923d5 100644 --- a/site/src/components/BuildsTable/BuildsTable.tsx +++ b/site/src/components/BuildsTable/BuildsTable.tsx @@ -69,7 +69,9 @@ export const BuildsTable: FC = ({ builds, className }) => { > {build.transition} - {displayWorkspaceBuildDuration(build)} + + {displayWorkspaceBuildDuration(build)} + diff --git a/site/src/components/CodeExample/CodeExample.tsx b/site/src/components/CodeExample/CodeExample.tsx index 5a1cac5e2a86d..e317ad47b32a3 100644 --- a/site/src/components/CodeExample/CodeExample.tsx +++ b/site/src/components/CodeExample/CodeExample.tsx @@ -37,7 +37,12 @@ const useStyles = makeStyles((theme) => ({ padding: theme.spacing(0.5), }, code: { - padding: `${theme.spacing(0.5)}px ${theme.spacing(0.75)}px ${theme.spacing(0.5)}px ${theme.spacing(2)}px`, + padding: ` + ${theme.spacing(0.5)}px + ${theme.spacing(0.75)}px + ${theme.spacing(0.5)}px + ${theme.spacing(2)}px + `, whiteSpace: "nowrap", width: "100%", overflowX: "auto", diff --git a/site/src/components/ConfirmDialog/ConfirmDialog.tsx b/site/src/components/ConfirmDialog/ConfirmDialog.tsx index 40be04bbf4efb..70c99f9333495 100644 --- a/site/src/components/ConfirmDialog/ConfirmDialog.tsx +++ b/site/src/components/ConfirmDialog/ConfirmDialog.tsx @@ -25,7 +25,8 @@ const CONFIRM_DIALOG_DEFAULTS: Record { +export interface ConfirmDialogProps + extends Omit { readonly description?: React.ReactNode /** * hideCancel hides the cancel button when set true, and shows the cancel diff --git a/site/src/components/CopyButton/CopyButton.tsx b/site/src/components/CopyButton/CopyButton.tsx index 0b69ef24d4553..6b0c241bd0692 100644 --- a/site/src/components/CopyButton/CopyButton.tsx +++ b/site/src/components/CopyButton/CopyButton.tsx @@ -63,7 +63,11 @@ export const CopyButton: React.FC = ({ onClick={copyToClipboard} size="small" > - {isCopied ? : } + {isCopied ? ( + + ) : ( + + )} {ctaCopy &&
{ctaCopy}
} diff --git a/site/src/components/CreateUserForm/CreateUserForm.stories.tsx b/site/src/components/CreateUserForm/CreateUserForm.stories.tsx index e19884883bf9b..378ede761e131 100644 --- a/site/src/components/CreateUserForm/CreateUserForm.stories.tsx +++ b/site/src/components/CreateUserForm/CreateUserForm.stories.tsx @@ -7,7 +7,9 @@ export default { component: CreateUserForm, } -const Template: Story = (args: CreateUserFormProps) => +const Template: Story = (args: CreateUserFormProps) => ( + +) export const Ready = Template.bind({}) Ready.args = { diff --git a/site/src/components/CreateUserForm/CreateUserForm.tsx b/site/src/components/CreateUserForm/CreateUserForm.tsx index 70a009542d82a..98c66214df78d 100644 --- a/site/src/components/CreateUserForm/CreateUserForm.tsx +++ b/site/src/components/CreateUserForm/CreateUserForm.tsx @@ -43,16 +43,18 @@ export const CreateUserForm: FC = ({ error, myOrgId, }) => { - const form: FormikContextType = useFormik({ - initialValues: { - email: "", - password: "", - username: "", - organization_id: myOrgId, + const form: FormikContextType = useFormik( + { + initialValues: { + email: "", + password: "", + username: "", + organization_id: myOrgId, + }, + validationSchema, + onSubmit, }, - validationSchema, - onSubmit, - }) + ) const getFieldHelpers = getFormHelpers(form, formErrors) return ( diff --git a/site/src/components/Dialog/Dialog.tsx b/site/src/components/Dialog/Dialog.tsx index 411a34c2d8e0a..8da09f2480c50 100644 --- a/site/src/components/Dialog/Dialog.tsx +++ b/site/src/components/Dialog/Dialog.tsx @@ -162,7 +162,8 @@ const useButtonStyles = makeStyles((theme) => ({ }, }, confirmDialogCancelButton: (props: StyleProps) => { - const color = props.type === "info" ? theme.palette.primary.contrastText : theme.palette.error.contrastText + const color = + props.type === "info" ? theme.palette.primary.contrastText : theme.palette.error.contrastText return { background: fade(color, 0.15), color, @@ -299,7 +300,10 @@ const useButtonStyles = makeStyles((theme) => ({ }, })) -export type DialogSearchProps = Omit +export type DialogSearchProps = Omit< + OutlinedInputProps, + "className" | "fullWidth" | "labelWidth" | "startAdornment" +> /** * Formats a search bar right below the title of a Dialog. Passes all props diff --git a/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.stories.tsx b/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.stories.tsx index 751f8544d4e79..517fd48f5b36b 100644 --- a/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.stories.tsx +++ b/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.stories.tsx @@ -6,7 +6,9 @@ export default { component: EnterpriseSnackbar, } -const Template: Story = (args: EnterpriseSnackbarProps) => +const Template: Story = (args: EnterpriseSnackbarProps) => ( + +) export const Error = Template.bind({}) Error.args = { diff --git a/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.tsx b/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.tsx index 03ce89c375624..6719aa12f9a5f 100644 --- a/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.tsx +++ b/site/src/components/EnterpriseSnackbar/EnterpriseSnackbar.tsx @@ -80,7 +80,12 @@ const useStyles = makeStyles((theme) => ({ border: `1px solid ${theme.palette.divider}`, borderLeft: `4px solid ${theme.palette.primary.main}`, borderRadius: theme.shape.borderRadius, - padding: `${theme.spacing(1)}px ${theme.spacing(3)}px ${theme.spacing(1)}px ${theme.spacing(2)}px`, + padding: ` + ${theme.spacing(1)}px + ${theme.spacing(3)}px + ${theme.spacing(1)}px + ${theme.spacing(2)}px + `, boxShadow: theme.shadows[6], alignItems: "inherit", backgroundColor: theme.palette.background.paper, diff --git a/site/src/components/ErrorSummary/ErrorSummary.tsx b/site/src/components/ErrorSummary/ErrorSummary.tsx index 8f50ce91362d7..e47561a1641fc 100644 --- a/site/src/components/ErrorSummary/ErrorSummary.tsx +++ b/site/src/components/ErrorSummary/ErrorSummary.tsx @@ -15,7 +15,11 @@ export interface ErrorSummaryProps { export const ErrorSummary: FC = ({ error, retry }) => ( - {!(error instanceof Error) ?
{Language.unknownErrorMessage}
:
{error.toString()}
} + {!(error instanceof Error) ? ( +
{Language.unknownErrorMessage}
+ ) : ( +
{error.toString()}
+ )} {retry && (
diff --git a/site/src/components/Footer/Footer.tsx b/site/src/components/Footer/Footer.tsx index cf5e5ff0ed8b0..387c9471ade64 100644 --- a/site/src/components/Footer/Footer.tsx +++ b/site/src/components/Footer/Footer.tsx @@ -26,7 +26,12 @@ export const Footer: React.FC = ({ buildInfo }) => {
{Language.copyrightText}
{buildInfo && (
- + {Language.buildInfoText(buildInfo)}  |  diff --git a/site/src/components/FormDropdownField/FormDropdownField.tsx b/site/src/components/FormDropdownField/FormDropdownField.tsx index 6c807396ab225..754063dfffdd5 100644 --- a/site/src/components/FormDropdownField/FormDropdownField.tsx +++ b/site/src/components/FormDropdownField/FormDropdownField.tsx @@ -15,7 +15,10 @@ export interface FormDropdownFieldProps extends FormTextFieldProps { items: FormDropdownItem[] } -export const FormDropdownField = ({ items, ...props }: FormDropdownFieldProps): ReactElement => { +export const FormDropdownField = ({ + items, + ...props +}: FormDropdownFieldProps): ReactElement => { const styles = useStyles() return ( diff --git a/site/src/components/FormFooter/FormFooter.tsx b/site/src/components/FormFooter/FormFooter.tsx index 975997276e3fe..417e0fe981985 100644 --- a/site/src/components/FormFooter/FormFooter.tsx +++ b/site/src/components/FormFooter/FormFooter.tsx @@ -28,14 +28,24 @@ const useStyles = makeStyles((theme) => ({ }, })) -export const FormFooter: FC = ({ onCancel, isLoading, submitLabel = Language.defaultSubmitLabel }) => { +export const FormFooter: FC = ({ + onCancel, + isLoading, + submitLabel = Language.defaultSubmitLabel, +}) => { const styles = useStyles() return (
- + {submitLabel}
diff --git a/site/src/components/FormTextField/FormTextField.test.tsx b/site/src/components/FormTextField/FormTextField.test.tsx index 7b0cb885318f4..78574efe82410 100644 --- a/site/src/components/FormTextField/FormTextField.test.tsx +++ b/site/src/components/FormTextField/FormTextField.test.tsx @@ -11,7 +11,9 @@ namespace Helpers { export const requiredValidationMsg = "required" - export const Component: FC, "form" | "formFieldName">> = (props) => { + export const Component: FC, "form" | "formFieldName">> = ( + props, + ) => { const form = useFormik({ initialValues: { name: "", diff --git a/site/src/components/GlobalSnackbar/GlobalSnackbar.tsx b/site/src/components/GlobalSnackbar/GlobalSnackbar.tsx index b2dc8eae74619..38b9ef574611e 100644 --- a/site/src/components/GlobalSnackbar/GlobalSnackbar.tsx +++ b/site/src/components/GlobalSnackbar/GlobalSnackbar.tsx @@ -82,7 +82,8 @@ export const GlobalSnackbar: React.FC = () => { {notification.msg} - {notification.additionalMsgs && notification.additionalMsgs.map(renderAdditionalMessage)} + {notification.additionalMsgs && + notification.additionalMsgs.map(renderAdditionalMessage)}
} diff --git a/site/src/components/GlobalSnackbar/utils.ts b/site/src/components/GlobalSnackbar/utils.ts index 90e69e238f560..fea01718a7cf4 100644 --- a/site/src/components/GlobalSnackbar/utils.ts +++ b/site/src/components/GlobalSnackbar/utils.ts @@ -24,7 +24,9 @@ export const isNotificationText = (msg: AdditionalMessage): msg is string => { return !Array.isArray(msg) && typeof msg === "string" } -export const isNotificationTextPrefixed = (msg: AdditionalMessage | null): msg is NotificationTextPrefixed => { +export const isNotificationTextPrefixed = ( + msg: AdditionalMessage | null, +): msg is NotificationTextPrefixed => { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition return typeof (msg as NotificationTextPrefixed)?.prefix !== "undefined" } @@ -45,7 +47,11 @@ export const SnackbarEventType = "coder:notification" // Notification Functions /////////////////////////////////////////////////////////////////////////////// -function dispatchNotificationEvent(msgType: MsgType, msg: string, additionalMsgs?: AdditionalMessage[]) { +function dispatchNotificationEvent( + msgType: MsgType, + msg: string, + additionalMsgs?: AdditionalMessage[], +) { dispatchCustomEvent(SnackbarEventType, { msgType, msg, diff --git a/site/src/components/Icons/CloseIcon.tsx b/site/src/components/Icons/CloseIcon.tsx index 42bfb52f33200..5a8faad0597a0 100644 --- a/site/src/components/Icons/CloseIcon.tsx +++ b/site/src/components/Icons/CloseIcon.tsx @@ -2,6 +2,11 @@ import SvgIcon from "@material-ui/core/SvgIcon" export const CloseIcon: typeof SvgIcon = (props) => ( - + ) diff --git a/site/src/components/Icons/Logo.tsx b/site/src/components/Icons/Logo.tsx index 1c65b3e8384a9..e753d8cbadef9 100644 --- a/site/src/components/Icons/Logo.tsx +++ b/site/src/components/Icons/Logo.tsx @@ -1,7 +1,13 @@ import * as React from "react" export const Logo = (props: React.SVGProps): JSX.Element => ( - + Coder logo diff --git a/site/src/components/LoadingButton/LoadingButton.tsx b/site/src/components/LoadingButton/LoadingButton.tsx index f03b694095d4a..9f8aaa3d592a7 100644 --- a/site/src/components/LoadingButton/LoadingButton.tsx +++ b/site/src/components/LoadingButton/LoadingButton.tsx @@ -14,7 +14,11 @@ export interface LoadingButtonProps extends ButtonProps { * In Material-UI 5+ - this is built-in, but since we're on an earlier version, * we have to roll our own. */ -export const LoadingButton: React.FC = ({ loading = false, children, ...rest }) => { +export const LoadingButton: React.FC = ({ + loading = false, + children, + ...rest +}) => { const styles = useStyles() const hidden = loading ? { opacity: 0 } : undefined diff --git a/site/src/components/Margins/Margins.stories.tsx b/site/src/components/Margins/Margins.stories.tsx index 9403a2d738c0d..be798fa22ddf3 100644 --- a/site/src/components/Margins/Margins.stories.tsx +++ b/site/src/components/Margins/Margins.stories.tsx @@ -8,7 +8,9 @@ export default { const Template: Story = (args) => ( -
Here is some content that will not get too wide!
+
+ Here is some content that will not get too wide! +
) diff --git a/site/src/components/NavbarView/NavbarView.tsx b/site/src/components/NavbarView/NavbarView.tsx index 49cc16b80d5f0..26d9fa2d0fb2a 100644 --- a/site/src/components/NavbarView/NavbarView.tsx +++ b/site/src/components/NavbarView/NavbarView.tsx @@ -32,7 +32,10 @@ export const NavbarView: React.FC = ({ user, onSignOut }) => { {Language.workspaces} @@ -50,7 +53,9 @@ export const NavbarView: React.FC = ({ user, onSignOut }) => {
-
{user && }
+
+ {user && } +
) } diff --git a/site/src/components/ParameterInput/ParameterInput.stories.tsx b/site/src/components/ParameterInput/ParameterInput.stories.tsx index 4b801697d536f..a5b79c5f85fd7 100644 --- a/site/src/components/ParameterInput/ParameterInput.stories.tsx +++ b/site/src/components/ParameterInput/ParameterInput.stories.tsx @@ -7,7 +7,9 @@ export default { component: ParameterInput, } -const Template: Story = (args: ParameterInputProps) => +const Template: Story = (args: ParameterInputProps) => ( + +) const createParameterSchema = (partial: Partial): ParameterSchema => { return { diff --git a/site/src/components/PasswordField/PasswordField.tsx b/site/src/components/PasswordField/PasswordField.tsx index 462c1643185b0..657b48462e855 100644 --- a/site/src/components/PasswordField/PasswordField.tsx +++ b/site/src/components/PasswordField/PasswordField.tsx @@ -12,7 +12,10 @@ export const PasswordField: React.FC = ({ variant = "outline const styles = useStyles() const [showPassword, setShowPassword] = useState(false) - const handleVisibilityChange = useCallback(() => setShowPassword((showPassword) => !showPassword), []) + const handleVisibilityChange = useCallback( + () => setShowPassword((showPassword) => !showPassword), + [], + ) const VisibilityIcon = showPassword ? VisibilityOffOutlined : VisibilityOutlined return ( @@ -23,7 +26,11 @@ export const PasswordField: React.FC = ({ variant = "outline InputProps={{ endAdornment: ( - + diff --git a/site/src/components/ResetPasswordDialog/ResetPasswordDialog.stories.tsx b/site/src/components/ResetPasswordDialog/ResetPasswordDialog.stories.tsx index 436d4ee9b5dc7..635f0c07795b4 100644 --- a/site/src/components/ResetPasswordDialog/ResetPasswordDialog.stories.tsx +++ b/site/src/components/ResetPasswordDialog/ResetPasswordDialog.stories.tsx @@ -11,7 +11,9 @@ export default { }, } -const Template: Story = (args: ResetPasswordDialogProps) => +const Template: Story = (args: ResetPasswordDialogProps) => ( + +) export const Example = Template.bind({}) Example.args = { diff --git a/site/src/components/Resources/Resources.tsx b/site/src/components/Resources/Resources.tsx index a32a2d082a6ef..580794a86ffc7 100644 --- a/site/src/components/Resources/Resources.tsx +++ b/site/src/components/Resources/Resources.tsx @@ -31,12 +31,20 @@ interface ResourcesProps { canUpdateWorkspace: boolean } -export const Resources: FC = ({ resources, getResourcesError, workspace, canUpdateWorkspace }) => { +export const Resources: FC = ({ + resources, + getResourcesError, + workspace, + canUpdateWorkspace, +}) => { const styles = useStyles() const theme: Theme = useTheme() return ( - + {getResourcesError ? ( { getResourcesError } ) : ( diff --git a/site/src/components/RoleSelect/RoleSelect.tsx b/site/src/components/RoleSelect/RoleSelect.tsx index 2c96fd4375bc9..a0bfb49bb25ee 100644 --- a/site/src/components/RoleSelect/RoleSelect.tsx +++ b/site/src/components/RoleSelect/RoleSelect.tsx @@ -16,7 +16,13 @@ export interface RoleSelectProps { open?: boolean } -export const RoleSelect: FC = ({ roles, selectedRoles, loading, onChange, open }) => { +export const RoleSelect: FC = ({ + roles, + selectedRoles, + loading, + onChange, + open, +}) => { const styles = useStyles() const value = selectedRoles.map((r) => r.name) const renderValue = () => selectedRoles.map((r) => r.display_name).join(", ") diff --git a/site/src/components/RuntimeErrorState/RuntimeErrorReport.tsx b/site/src/components/RuntimeErrorState/RuntimeErrorReport.tsx index 3b4db9f6744d3..d146bd5f5dd07 100644 --- a/site/src/components/RuntimeErrorState/RuntimeErrorReport.tsx +++ b/site/src/components/RuntimeErrorState/RuntimeErrorReport.tsx @@ -71,7 +71,13 @@ export const RuntimeErrorReport = ({ error, mappedStack }: ReportState): ReactEl } const formattedStackTrace = createFormattedStackTrace(error, mappedStack) - return + return ( + + ) } const useStyles = makeStyles(() => ({ diff --git a/site/src/components/RuntimeErrorState/RuntimeErrorState.test.tsx b/site/src/components/RuntimeErrorState/RuntimeErrorState.test.tsx index 627260aa16234..8caf403a8488f 100644 --- a/site/src/components/RuntimeErrorState/RuntimeErrorState.test.tsx +++ b/site/src/components/RuntimeErrorState/RuntimeErrorState.test.tsx @@ -37,6 +37,9 @@ describe("RuntimeErrorState", () => { it("should have an email link", () => { // Then const emailLink = screen.getByText(RuntimeErrorStateLanguage.link) - expect(emailLink.closest("a")).toHaveAttribute("href", expect.stringContaining("mailto:support@coder.com")) + expect(emailLink.closest("a")).toHaveAttribute( + "href", + expect.stringContaining("mailto:support@coder.com"), + ) }) }) diff --git a/site/src/components/RuntimeErrorState/RuntimeErrorState.tsx b/site/src/components/RuntimeErrorState/RuntimeErrorState.tsx index 9f2c7ec5e9790..ae25cec5e6d9a 100644 --- a/site/src/components/RuntimeErrorState/RuntimeErrorState.tsx +++ b/site/src/components/RuntimeErrorState/RuntimeErrorState.tsx @@ -81,7 +81,9 @@ export const RuntimeErrorState: React.FC = ({ error }) = title={} description={ } > diff --git a/site/src/components/SearchBarWithFilter/SearchBarWithFilter.tsx b/site/src/components/SearchBarWithFilter/SearchBarWithFilter.tsx index 4ef07939025f7..b44218dd8454c 100644 --- a/site/src/components/SearchBarWithFilter/SearchBarWithFilter.tsx +++ b/site/src/components/SearchBarWithFilter/SearchBarWithFilter.tsx @@ -33,7 +33,11 @@ interface FilterFormValues { export type FilterFormErrors = FormikErrors -export const SearchBarWithFilter: React.FC = ({ filter, onFilter, presetFilters }) => { +export const SearchBarWithFilter: React.FC = ({ + filter, + onFilter, + presetFilters, +}) => { const styles = useStyles() const form = useFormik({ @@ -67,7 +71,12 @@ export const SearchBarWithFilter: React.FC = ({ filter return ( {presetFilters && presetFilters.length > 0 && ( - )} diff --git a/site/src/components/SettingsAccountForm/SettingsAccountForm.tsx b/site/src/components/SettingsAccountForm/SettingsAccountForm.tsx index bc633f015815a..6ac89d53a03ce 100644 --- a/site/src/components/SettingsAccountForm/SettingsAccountForm.tsx +++ b/site/src/components/SettingsAccountForm/SettingsAccountForm.tsx @@ -51,7 +51,13 @@ export const AccountForm: FC = ({ <>
- + = ({ variant="outlined" /> {authErrorMessage && {authErrorMessage}} - {methodsErrorMessage && {Language.methodsErrorMessage}} + {methodsErrorMessage && ( + {Language.methodsErrorMessage} + )}
{isLoading ? "" : Language.passwordSignIn} @@ -153,7 +155,9 @@ export const SignInForm: FC = ({
diff --git a/site/src/components/TerminalLink/TerminalLink.tsx b/site/src/components/TerminalLink/TerminalLink.tsx index 4f6036e912ce4..d49f0b519da20 100644 --- a/site/src/components/TerminalLink/TerminalLink.tsx +++ b/site/src/components/TerminalLink/TerminalLink.tsx @@ -25,7 +25,12 @@ export interface TerminalLinkProps { * If no user name is provided "me" is used however it makes the link not * shareable. */ -export const TerminalLink: FC = ({ agentName, userName = "me", workspaceName, className }) => { +export const TerminalLink: FC = ({ + agentName, + userName = "me", + workspaceName, + className, +}) => { const styles = useStyles() const href = `/@${userName}/${workspaceName}${agentName ? `.${agentName}` : ""}/terminal` diff --git a/site/src/components/Tooltips/HelpTooltip/HelpTooltip.stories.tsx b/site/src/components/Tooltips/HelpTooltip/HelpTooltip.stories.tsx index 30e9e7fd49ad8..7c3f40120ab7f 100644 --- a/site/src/components/Tooltips/HelpTooltip/HelpTooltip.stories.tsx +++ b/site/src/components/Tooltips/HelpTooltip/HelpTooltip.stories.tsx @@ -16,7 +16,9 @@ export default { const Template: Story = (args) => ( What is a template? - A template is a common configuration for your team's workspaces. + + A template is a common configuration for your team's workspaces. + Creating a template Updating a template diff --git a/site/src/components/Tooltips/HelpTooltip/HelpTooltip.tsx b/site/src/components/Tooltips/HelpTooltip/HelpTooltip.tsx index 6e767c01d53c7..d8b4e460d26af 100644 --- a/site/src/components/Tooltips/HelpTooltip/HelpTooltip.tsx +++ b/site/src/components/Tooltips/HelpTooltip/HelpTooltip.tsx @@ -15,7 +15,9 @@ export interface HelpTooltipProps { size?: Size } -const HelpTooltipContext = createContext<{ open: boolean; onClose: () => void } | undefined>(undefined) +const HelpTooltipContext = createContext<{ open: boolean; onClose: () => void } | undefined>( + undefined, +) const useHelpTooltip = () => { const helpTooltipContext = useContext(HelpTooltipContext) @@ -77,7 +79,9 @@ export const HelpTooltip: React.FC = ({ children, open, size = }, }} > - {children} + + {children} + ) @@ -106,7 +110,11 @@ export const HelpTooltipLink: React.FC<{ href: string }> = ({ children, href }) ) } -export const HelpTooltipAction: React.FC<{ icon: Icon; onClick: () => void }> = ({ children, icon: Icon, onClick }) => { +export const HelpTooltipAction: React.FC<{ icon: Icon; onClick: () => void }> = ({ + children, + icon: Icon, + onClick, +}) => { const styles = useStyles() const tooltip = useHelpTooltip() diff --git a/site/src/components/Tooltips/ResourcesHelpTooltip.tsx b/site/src/components/Tooltips/ResourcesHelpTooltip.tsx index cb1b6894000e7..ae613b6e18562 100644 --- a/site/src/components/Tooltips/ResourcesHelpTooltip.tsx +++ b/site/src/components/Tooltips/ResourcesHelpTooltip.tsx @@ -8,7 +8,8 @@ import { export const Language = { resourceTooltipTitle: "What is a resource?", - resourceTooltipText: "A resource is an infrastructure object that is created when the workspace is provisioned.", + resourceTooltipText: + "A resource is an infrastructure object that is created when the workspace is provisioned.", resourceTooltipLink: "Persistent and ephemeral resources", } diff --git a/site/src/components/UserCell/UserCell.tsx b/site/src/components/UserCell/UserCell.tsx index c3f54167d3995..12d3ae5c00347 100644 --- a/site/src/components/UserCell/UserCell.tsx +++ b/site/src/components/UserCell/UserCell.tsx @@ -35,7 +35,12 @@ const useStyles = makeStyles((theme) => ({ * UserCell is a single cell in an audit log table row that contains user-level * information */ -export const UserCell: FC = ({ Avatar, caption, primaryText, onPrimaryTextSelect }) => { +export const UserCell: FC = ({ + Avatar, + caption, + primaryText, + onPrimaryTextSelect, +}) => { const styles = useStyles() return ( diff --git a/site/src/components/UserDropdown/UsersDropdown.tsx b/site/src/components/UserDropdown/UsersDropdown.tsx index 7cca88e117c8a..07156c4ca97b4 100644 --- a/site/src/components/UserDropdown/UsersDropdown.tsx +++ b/site/src/components/UserDropdown/UsersDropdown.tsx @@ -14,7 +14,10 @@ export interface UserDropdownProps { onSignOut: () => void } -export const UserDropdown: React.FC = ({ user, onSignOut }: UserDropdownProps) => { +export const UserDropdown: React.FC = ({ + user, + onSignOut, +}: UserDropdownProps) => { const styles = useStyles() const [anchorEl, setAnchorEl] = useState() @@ -27,7 +30,11 @@ export const UserDropdown: React.FC = ({ user, onSignOut }: U return ( <> - +
diff --git a/site/src/components/UserDropdownContent/UserDropdownContent.test.tsx b/site/src/components/UserDropdownContent/UserDropdownContent.test.tsx index 53b6c2bb7b905..0a86647ff4fd8 100644 --- a/site/src/components/UserDropdownContent/UserDropdownContent.test.tsx +++ b/site/src/components/UserDropdownContent/UserDropdownContent.test.tsx @@ -38,7 +38,9 @@ describe("UserDropdownContent", () => { throw new Error("Anchor tag not found for the documentation menu item") } - expect(link.getAttribute("href")).toBe(`https://github.com/coder/coder/tree/${process.env.CODER_VERSION}/docs`) + expect(link.getAttribute("href")).toBe( + `https://github.com/coder/coder/tree/${process.env.CODER_VERSION}/docs`, + ) }) it("has the correct link for the account item", () => { diff --git a/site/src/components/UserDropdownContent/UserDropdownContent.tsx b/site/src/components/UserDropdownContent/UserDropdownContent.tsx index 29bedece93901..e55be7e4500f4 100644 --- a/site/src/components/UserDropdownContent/UserDropdownContent.tsx +++ b/site/src/components/UserDropdownContent/UserDropdownContent.tsx @@ -27,7 +27,11 @@ export interface UserDropdownContentProps { onSignOut: () => void } -export const UserDropdownContent: FC = ({ user, onPopoverClose, onSignOut }) => { +export const UserDropdownContent: FC = ({ + user, + onPopoverClose, + onSignOut, +}) => { const styles = useStyles() return ( diff --git a/site/src/components/Workspace/Workspace.tsx b/site/src/components/Workspace/Workspace.tsx index 93e1b1e960824..ace4c3ba928c6 100644 --- a/site/src/components/Workspace/Workspace.tsx +++ b/site/src/components/Workspace/Workspace.tsx @@ -77,7 +77,10 @@ export const Workspace: FC = ({ workspace={workspace} /> - navigate(`/templates`)} /> + navigate(`/templates`)} + /> diff --git a/site/src/components/WorkspaceActionButton/WorkspaceActionButton.tsx b/site/src/components/WorkspaceActionButton/WorkspaceActionButton.tsx index be8e7161044a9..89fec93dccf99 100644 --- a/site/src/components/WorkspaceActionButton/WorkspaceActionButton.tsx +++ b/site/src/components/WorkspaceActionButton/WorkspaceActionButton.tsx @@ -8,7 +8,12 @@ export interface WorkspaceActionButtonProps { className?: string } -export const WorkspaceActionButton: FC = ({ label, icon, onClick, className }) => { +export const WorkspaceActionButton: FC = ({ + label, + icon, + onClick, + className, +}) => { return ( )} diff --git a/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx b/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx index 5cc9596fe15a1..63537102673ea 100644 --- a/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx +++ b/site/src/components/WorkspaceBuildStats/WorkspaceBuildStats.tsx @@ -54,7 +54,9 @@ export const WorkspaceBuildStats: FC = ({ build }) =>
Action - {build.transition} + + {build.transition} +
diff --git a/site/src/components/WorkspaceDeletedBanner/WorkspaceDeletedBanner.tsx b/site/src/components/WorkspaceDeletedBanner/WorkspaceDeletedBanner.tsx index 310a18fac95f1..be17f293610f6 100644 --- a/site/src/components/WorkspaceDeletedBanner/WorkspaceDeletedBanner.tsx +++ b/site/src/components/WorkspaceDeletedBanner/WorkspaceDeletedBanner.tsx @@ -16,7 +16,10 @@ export interface WorkspaceDeletedBannerProps { handleClick: () => void } -export const WorkspaceDeletedBanner: FC = ({ workspace, handleClick }) => { +export const WorkspaceDeletedBanner: FC = ({ + workspace, + handleClick, +}) => { const styles = useStyles() if (!isWorkspaceDeleted(workspace)) { diff --git a/site/src/components/WorkspaceSchedule/WorkspaceSchedule.tsx b/site/src/components/WorkspaceSchedule/WorkspaceSchedule.tsx index 45184410936b1..e0873db921878 100644 --- a/site/src/components/WorkspaceSchedule/WorkspaceSchedule.tsx +++ b/site/src/components/WorkspaceSchedule/WorkspaceSchedule.tsx @@ -67,7 +67,9 @@ export const Language = { }, editScheduleLink: "Edit schedule", scheduleHeader: (workspace: Workspace): string => { - const tz = workspace.autostart_schedule ? extractTimezone(workspace.autostart_schedule) : dayjs.tz.guess() + const tz = workspace.autostart_schedule + ? extractTimezone(workspace.autostart_schedule) + : dayjs.tz.guess() return `Schedule (${tz})` }, } diff --git a/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.stories.tsx b/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.stories.tsx index 787b9aa2c1d73..8816d78bcac36 100644 --- a/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.stories.tsx +++ b/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.stories.tsx @@ -12,7 +12,9 @@ export default { component: WorkspaceScheduleBanner, } -const Template: Story = (args) => +const Template: Story = (args) => ( + +) export const Example = Template.bind({}) Example.args = { diff --git a/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.tsx b/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.tsx index 100bc502023a6..83d5ecfa33be8 100644 --- a/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.tsx +++ b/site/src/components/WorkspaceScheduleBanner/WorkspaceScheduleBanner.tsx @@ -35,7 +35,11 @@ export const shouldDisplay = (workspace: TypesGen.Workspace): boolean => { } } -export const WorkspaceScheduleBanner: FC = ({ isLoading, onExtend, workspace }) => { +export const WorkspaceScheduleBanner: FC = ({ + isLoading, + onExtend, + workspace, +}) => { if (!shouldDisplay(workspace)) { return null } else { diff --git a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx index 611d75458ece7..8a9c1bcdecbf5 100644 --- a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx +++ b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx @@ -4,7 +4,11 @@ import dayjs from "dayjs" import advancedFormat from "dayjs/plugin/advancedFormat" import timezone from "dayjs/plugin/timezone" import utc from "dayjs/plugin/utc" -import { defaultWorkspaceSchedule, WorkspaceScheduleForm, WorkspaceScheduleFormProps } from "./WorkspaceScheduleForm" +import { + defaultWorkspaceSchedule, + WorkspaceScheduleForm, + WorkspaceScheduleFormProps, +} from "./WorkspaceScheduleForm" dayjs.extend(advancedFormat) dayjs.extend(utc) diff --git a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts index 2d4364543ec91..0b08446f0fcc8 100644 --- a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts +++ b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts @@ -1,4 +1,9 @@ -import { Language, ttlShutdownAt, validationSchema, WorkspaceScheduleFormValues } from "./WorkspaceScheduleForm" +import { + Language, + ttlShutdownAt, + validationSchema, + WorkspaceScheduleFormValues, +} from "./WorkspaceScheduleForm" import { zones } from "./zones" const valid: WorkspaceScheduleFormValues = { diff --git a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx index 51c12e3062328..473719556d60f 100644 --- a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx +++ b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx @@ -281,9 +281,9 @@ export const ttlShutdownAt = (formTTL: number): string => { // Passing an empty value for TTL in the form results in a number that is not zero but less than 1. return Language.ttlCausesNoShutdownHelperText } else { - return `${Language.ttlCausesShutdownHelperText} ${dayjs.duration(formTTL, "hours").humanize()} ${ - Language.ttlCausesShutdownAfterStart - }.` + return `${Language.ttlCausesShutdownHelperText} ${dayjs + .duration(formTTL, "hours") + .humanize()} ${Language.ttlCausesShutdownAfterStart}.` } } diff --git a/site/src/components/WorkspaceSection/WorkspaceSection.stories.tsx b/site/src/components/WorkspaceSection/WorkspaceSection.stories.tsx index 082e880977bc7..7926462b9bd73 100644 --- a/site/src/components/WorkspaceSection/WorkspaceSection.stories.tsx +++ b/site/src/components/WorkspaceSection/WorkspaceSection.stories.tsx @@ -9,7 +9,9 @@ export default { component: WorkspaceSection, } -const Template: Story = (args) => Content +const Template: Story = (args) => ( + Content +) export const NoAction = Template.bind({}) NoAction.args = { diff --git a/site/src/components/WorkspaceSection/WorkspaceSection.tsx b/site/src/components/WorkspaceSection/WorkspaceSection.tsx index 9360b6980a38b..00b8f7f8dd940 100644 --- a/site/src/components/WorkspaceSection/WorkspaceSection.tsx +++ b/site/src/components/WorkspaceSection/WorkspaceSection.tsx @@ -14,7 +14,12 @@ export interface WorkspaceSectionProps { title?: string } -export const WorkspaceSection: React.FC = ({ action, children, contentsProps, title }) => { +export const WorkspaceSection: React.FC = ({ + action, + children, + contentsProps, + title, +}) => { const styles = useStyles() return ( @@ -28,7 +33,10 @@ export const WorkspaceSection: React.FC = ({ action, chil
)} -
+
{children}
diff --git a/site/src/hooks/events.ts b/site/src/hooks/events.ts index f24c37f278612..fe261ab16153e 100644 --- a/site/src/hooks/events.ts +++ b/site/src/hooks/events.ts @@ -7,7 +7,10 @@ import { CustomEventListener } from "../util/events" * @param eventType a unique name defining the type of the event. e.g. `"coder:workspace:ready"` * @param listener a custom event listener. */ -export const useCustomEvent = (eventType: E, listener: CustomEventListener): void => { +export const useCustomEvent = ( + eventType: E, + listener: CustomEventListener, +): void => { useEffect(() => { const handleEvent: CustomEventListener = (event) => { listener(event) diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx index 8a97781aff211..926e0d61f286d 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx @@ -31,7 +31,9 @@ export default { component: CreateWorkspacePageView, } as ComponentMeta -const Template: Story = (args) => +const Template: Story = (args) => ( + +) export const NoParameters = Template.bind({}) NoParameters.args = { diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx index 38fb1ee4169dc..1b4e27d3b08e5 100644 --- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx +++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx @@ -36,37 +36,38 @@ export const CreateWorkspacePageView: FC = (props) const [parameterValues, setParameterValues] = useState>({}) useStyles() - const form: FormikContextType = useFormik({ - initialValues: { - name: "", - template_id: props.selectedTemplate ? props.selectedTemplate.id : "", - }, - enableReinitialize: true, - validationSchema, - onSubmit: (request) => { - if (!props.templateSchema) { - throw new Error("No template schema loaded") - } - - const createRequests: TypesGen.CreateParameterRequest[] = [] - props.templateSchema.forEach((schema) => { - let value = schema.default_source_value - if (schema.name in parameterValues) { - value = parameterValues[schema.name] + const form: FormikContextType = + useFormik({ + initialValues: { + name: "", + template_id: props.selectedTemplate ? props.selectedTemplate.id : "", + }, + enableReinitialize: true, + validationSchema, + onSubmit: (request) => { + if (!props.templateSchema) { + throw new Error("No template schema loaded") } - createRequests.push({ - name: schema.name, - destination_scheme: schema.default_destination_scheme, - source_scheme: schema.default_source_scheme, - source_value: value, + + const createRequests: TypesGen.CreateParameterRequest[] = [] + props.templateSchema.forEach((schema) => { + let value = schema.default_source_value + if (schema.name in parameterValues) { + value = parameterValues[schema.name] + } + createRequests.push({ + name: schema.name, + destination_scheme: schema.default_destination_scheme, + source_scheme: schema.default_source_scheme, + source_value: value, + }) }) - }) - return props.onSubmit({ - ...request, - parameter_values: createRequests, - }) - }, - }) + return props.onSubmit({ + ...request, + parameter_values: createRequests, + }) + }, + }) const getFieldHelpers = getFormHelpers(form) return ( diff --git a/site/src/pages/TemplatePage/TemplatePage.test.tsx b/site/src/pages/TemplatePage/TemplatePage.test.tsx index a9941b7a535a3..19fd0f418a8a3 100644 --- a/site/src/pages/TemplatePage/TemplatePage.test.tsx +++ b/site/src/pages/TemplatePage/TemplatePage.test.tsx @@ -1,10 +1,17 @@ import { screen } from "@testing-library/react" -import { MockTemplate, MockWorkspaceResource, renderWithAuth } from "../../testHelpers/renderHelpers" +import { + MockTemplate, + MockWorkspaceResource, + renderWithAuth, +} from "../../testHelpers/renderHelpers" import { TemplatePage } from "./TemplatePage" describe("TemplatePage", () => { it("shows the template name, readme and resources", async () => { - renderWithAuth(, { route: `/templates/${MockTemplate.id}`, path: "/templates/:template" }) + renderWithAuth(, { + route: `/templates/${MockTemplate.id}`, + path: "/templates/:template", + }) await screen.findByText(MockTemplate.name) screen.getByTestId("markdown") screen.getByText(MockWorkspaceResource.name) diff --git a/site/src/pages/TemplatePage/TemplatePageView.tsx b/site/src/pages/TemplatePage/TemplatePageView.tsx index 73839dc3db870..19b097609febd 100644 --- a/site/src/pages/TemplatePage/TemplatePageView.tsx +++ b/site/src/pages/TemplatePage/TemplatePageView.tsx @@ -8,7 +8,11 @@ import ReactMarkdown from "react-markdown" import { Link as RouterLink } from "react-router-dom" import { Template, TemplateVersion, WorkspaceResource } from "../../api/typesGenerated" import { Margins } from "../../components/Margins/Margins" -import { PageHeader, PageHeaderSubtitle, PageHeaderTitle } from "../../components/PageHeader/PageHeader" +import { + PageHeader, + PageHeaderSubtitle, + PageHeaderTitle, +} from "../../components/PageHeader/PageHeader" import { Stack } from "../../components/Stack/Stack" import { TemplateResourcesTable } from "../../components/TemplateResourcesTable/TemplateResourcesTable" import { TemplateStats } from "../../components/TemplateStats/TemplateStats" @@ -27,7 +31,11 @@ export interface TemplatePageViewProps { templateResources: WorkspaceResource[] } -export const TemplatePageView: FC = ({ template, activeTemplateVersion, templateResources }) => { +export const TemplatePageView: FC = ({ + template, + activeTemplateVersion, + templateResources, +}) => { const styles = useStyles() const readme = frontMatter(activeTemplateVersion.readme) @@ -39,7 +47,11 @@ export const TemplatePageView: FC = ({ template, activeTe + } @@ -52,10 +64,16 @@ export const TemplatePageView: FC = ({ template, activeTe - + - +
@@ -48,7 +53,8 @@ export const Language = { ), templateTooltipTitle: "What is template?", - templateTooltipText: "With templates you can create a common configuration for your workspaces using Terraform.", + templateTooltipText: + "With templates you can create a common configuration for your workspaces using Terraform.", templateTooltipLink: "Manage templates", createdByLabel: "Created by", } @@ -108,7 +114,9 @@ export const TemplatesPageView: FC = (props) => { } /> diff --git a/site/src/pages/TerminalPage/TerminalPage.tsx b/site/src/pages/TerminalPage/TerminalPage.tsx index 43ea72aac3c2e..b35870b465ff1 100644 --- a/site/src/pages/TerminalPage/TerminalPage.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.tsx @@ -59,7 +59,8 @@ const TerminalPage: FC<{ }) const isConnected = terminalState.matches("connected") const isDisconnected = terminalState.matches("disconnected") - const { workspaceError, workspaceAgentError, workspaceAgent, websocketError } = terminalState.context + const { workspaceError, workspaceAgentError, workspaceAgent, websocketError } = + terminalState.context // Create the terminal! useEffect(() => { @@ -177,7 +178,16 @@ const TerminalPage: FC<{ width: terminal.cols, }, }) - }, [workspaceError, workspaceAgentError, websocketError, workspaceAgent, terminal, fitAddon, isConnected, sendEvent]) + }, [ + workspaceError, + workspaceAgentError, + websocketError, + workspaceAgent, + terminal, + fitAddon, + isConnected, + sendEvent, + ]) return ( <> diff --git a/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx b/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx index 5954ac64bcc64..97e2defecb9ac 100644 --- a/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx +++ b/site/src/pages/UserSettingsPage/AccountPage/AccountPage.tsx @@ -16,7 +16,9 @@ export const AccountPage: React.FC = () => { const { me, updateProfileError } = authState.context const hasError = !!updateProfileError const formErrors = - hasError && isApiError(updateProfileError) ? mapApiErrorToFieldErrors(updateProfileError.response.data) : undefined + hasError && isApiError(updateProfileError) + ? mapApiErrorToFieldErrors(updateProfileError.response.data) + : undefined const hasUnknownError = hasError && !isApiError(updateProfileError) if (!me) { diff --git a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx index 077adb1a822ef..01c1ac82dada7 100644 --- a/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx +++ b/site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.test.tsx @@ -25,19 +25,24 @@ describe("SSH keys Page", () => { await screen.findByText(MockGitSSHKey.public_key) // Click on the "Regenerate" button to display the confirm dialog - const regenerateButton = screen.getByRole("button", { name: SSHKeysPageLanguage.regenerateLabel }) + const regenerateButton = screen.getByRole("button", { + name: SSHKeysPageLanguage.regenerateLabel, + }) fireEvent.click(regenerateButton) const confirmDialog = screen.getByRole("dialog") expect(confirmDialog).toHaveTextContent(SSHKeysPageLanguage.regenerateDialogMessage) - const newUserSSHKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDSC/ouD/LqiT1Rd99vDv/MwUmqzJuinLTMTpk5kVy66" + const newUserSSHKey = + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDSC/ouD/LqiT1Rd99vDv/MwUmqzJuinLTMTpk5kVy66" jest.spyOn(API, "regenerateUserSSHKey").mockResolvedValueOnce({ ...MockGitSSHKey, public_key: newUserSSHKey, }) // Click on the "Confirm" button - const confirmButton = within(confirmDialog).getByRole("button", { name: SSHKeysPageLanguage.confirmLabel }) + const confirmButton = within(confirmDialog).getByRole("button", { + name: SSHKeysPageLanguage.confirmLabel, + }) fireEvent.click(confirmButton) // Check if the success message is displayed @@ -66,13 +71,17 @@ describe("SSH keys Page", () => { jest.spyOn(API, "regenerateUserSSHKey").mockRejectedValueOnce({}) // Click on the "Regenerate" button to display the confirm dialog - const regenerateButton = screen.getByRole("button", { name: SSHKeysPageLanguage.regenerateLabel }) + const regenerateButton = screen.getByRole("button", { + name: SSHKeysPageLanguage.regenerateLabel, + }) fireEvent.click(regenerateButton) const confirmDialog = screen.getByRole("dialog") expect(confirmDialog).toHaveTextContent(SSHKeysPageLanguage.regenerateDialogMessage) // Click on the "Confirm" button - const confirmButton = within(confirmDialog).getByRole("button", { name: SSHKeysPageLanguage.confirmLabel }) + const confirmButton = within(confirmDialog).getByRole("button", { + name: SSHKeysPageLanguage.confirmLabel, + }) fireEvent.click(confirmButton) // Check if the error message is displayed diff --git a/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.test.tsx b/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.test.tsx index 5ee505b901989..ffc1800d205f7 100644 --- a/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.test.tsx +++ b/site/src/pages/UserSettingsPage/SecurityPage/SecurityPage.test.tsx @@ -24,16 +24,22 @@ const newData = { const fillAndSubmitForm = async () => { await waitFor(() => screen.findByLabelText("Old Password")) - fireEvent.change(screen.getByLabelText("Old Password"), { target: { value: newData.old_password } }) + fireEvent.change(screen.getByLabelText("Old Password"), { + target: { value: newData.old_password }, + }) fireEvent.change(screen.getByLabelText("New Password"), { target: { value: newData.password } }) - fireEvent.change(screen.getByLabelText("Confirm Password"), { target: { value: newData.confirm_password } }) + fireEvent.change(screen.getByLabelText("Confirm Password"), { + target: { value: newData.confirm_password }, + }) fireEvent.click(screen.getByText(SecurityForm.Language.updatePassword)) } describe("SecurityPage", () => { describe("when it is a success", () => { it("shows the success message", async () => { - jest.spyOn(API, "updateUserPassword").mockImplementationOnce((_userId, _data) => Promise.resolve(undefined)) + jest + .spyOn(API, "updateUserPassword") + .mockImplementationOnce((_userId, _data) => Promise.resolve(undefined)) const { user } = renderPage() await fillAndSubmitForm() @@ -71,7 +77,10 @@ describe("SecurityPage", () => { jest.spyOn(API, "updateUserPassword").mockRejectedValueOnce({ isAxiosError: true, response: { - data: { message: "Invalid password.", validations: [{ detail: "Invalid password.", field: "password" }] }, + data: { + message: "Invalid password.", + validations: [{ detail: "Invalid password.", field: "password" }], + }, }, }) diff --git a/site/src/pages/UsersPage/CreateUserPage/CreateUserPage.tsx b/site/src/pages/UsersPage/CreateUserPage/CreateUserPage.tsx index 4d3f4330b054d..a8d2360b6e335 100644 --- a/site/src/pages/UsersPage/CreateUserPage/CreateUserPage.tsx +++ b/site/src/pages/UsersPage/CreateUserPage/CreateUserPage.tsx @@ -21,7 +21,9 @@ export const CreateUserPage: React.FC = () => { const navigate = useNavigate() // There is no field for organization id in Community Edition, so handle its field error like a generic error const genericError = - createUserErrorMessage || createUserFormErrors?.organization_id || (!myOrgId ? Language.unknownError : undefined) + createUserErrorMessage || + createUserFormErrors?.organization_id || + (!myOrgId ? Language.unknownError : undefined) return ( diff --git a/site/src/pages/UsersPage/UsersPage.test.tsx b/site/src/pages/UsersPage/UsersPage.test.tsx index 3415c8430468f..2b110737f27bd 100644 --- a/site/src/pages/UsersPage/UsersPage.test.tsx +++ b/site/src/pages/UsersPage/UsersPage.test.tsx @@ -6,7 +6,13 @@ import { GlobalSnackbar } from "../../components/GlobalSnackbar/GlobalSnackbar" import { Language as ResetPasswordDialogLanguage } from "../../components/ResetPasswordDialog/ResetPasswordDialog" import { Language as RoleSelectLanguage } from "../../components/RoleSelect/RoleSelect" import { Language as UsersTableLanguage } from "../../components/UsersTable/UsersTable" -import { MockAuditorRole, MockUser, MockUser2, render, SuspendedMockUser } from "../../testHelpers/renderHelpers" +import { + MockAuditorRole, + MockUser, + MockUser2, + render, + SuspendedMockUser, +} from "../../testHelpers/renderHelpers" import { server } from "../../testHelpers/server" import { permissionsToCheck } from "../../xServices/auth/authXService" import { Language as usersXServiceLanguage } from "../../xServices/users/usersXService" @@ -30,7 +36,9 @@ const suspendUser = async (setupActionSpies: () => void) => { // Check if the confirm message is displayed const confirmDialog = screen.getByRole("dialog") - expect(confirmDialog).toHaveTextContent(`${UsersPageLanguage.suspendDialogMessagePrefix} ${MockUser.username}?`) + expect(confirmDialog).toHaveTextContent( + `${UsersPageLanguage.suspendDialogMessagePrefix} ${MockUser.username}?`, + ) // Setup spies to check the actions after setupActionSpies() @@ -86,13 +94,17 @@ const resetUserPassword = async (setupActionSpies: () => void) => { // Check if the confirm message is displayed const confirmDialog = screen.getByRole("dialog") - expect(confirmDialog).toHaveTextContent(`You will need to send ${MockUser.username} the following password:`) + expect(confirmDialog).toHaveTextContent( + `You will need to send ${MockUser.username} the following password:`, + ) // Setup spies to check the actions after setupActionSpies() // Click on the "Confirm" button - const confirmButton = within(confirmDialog).getByRole("button", { name: ResetPasswordDialogLanguage.confirmText }) + const confirmButton = within(confirmDialog).getByRole("button", { + name: ResetPasswordDialogLanguage.confirmText, + }) fireEvent.click(confirmButton) } @@ -169,7 +181,9 @@ describe("Users Page", () => { await suspendUser(() => { jest.spyOn(API, "suspendUser").mockResolvedValueOnce(MockUser) - jest.spyOn(API, "getUsers").mockImplementationOnce(() => Promise.resolve([MockUser, MockUser2])) + jest + .spyOn(API, "getUsers") + .mockImplementationOnce(() => Promise.resolve([MockUser, MockUser2])) }) // Check if the success message is displayed @@ -274,7 +288,10 @@ describe("Users Page", () => { // Check if the API was called correctly expect(API.updateUserPassword).toBeCalledTimes(1) - expect(API.updateUserPassword).toBeCalledWith(MockUser.id, { password: expect.any(String), old_password: "" }) + expect(API.updateUserPassword).toBeCalledWith(MockUser.id, { + password: expect.any(String), + old_password: "", + }) }) }) @@ -296,7 +313,10 @@ describe("Users Page", () => { // Check if the API was called correctly expect(API.updateUserPassword).toBeCalledTimes(1) - expect(API.updateUserPassword).toBeCalledWith(MockUser.id, { password: expect.any(String), old_password: "" }) + expect(API.updateUserPassword).toBeCalledWith(MockUser.id, { + password: expect.any(String), + old_password: "", + }) }) }) }) @@ -324,7 +344,10 @@ describe("Users Page", () => { // Check if the API was called correctly const currentRoles = MockUser.roles.map((r) => r.name) expect(API.updateUserRoles).toBeCalledTimes(1) - expect(API.updateUserRoles).toBeCalledWith([...currentRoles, MockAuditorRole.name], MockUser.id) + expect(API.updateUserRoles).toBeCalledWith( + [...currentRoles, MockAuditorRole.name], + MockUser.id, + ) }) }) @@ -347,7 +370,10 @@ describe("Users Page", () => { // Check if the API was called correctly const currentRoles = MockUser.roles.map((r) => r.name) expect(API.updateUserRoles).toBeCalledTimes(1) - expect(API.updateUserRoles).toBeCalledWith([...currentRoles, MockAuditorRole.name], MockUser.id) + expect(API.updateUserRoles).toBeCalledWith( + [...currentRoles, MockAuditorRole.name], + MockUser.id, + ) }) it("shows an error from the backend", async () => { render( diff --git a/site/src/pages/UsersPage/UsersPage.tsx b/site/src/pages/UsersPage/UsersPage.tsx index e379d03bbaa4d..7f44d5f786fa6 100644 --- a/site/src/pages/UsersPage/UsersPage.tsx +++ b/site/src/pages/UsersPage/UsersPage.tsx @@ -22,8 +22,14 @@ export const UsersPage: React.FC = () => { const xServices = useContext(XServiceContext) const [usersState, usersSend] = useActor(xServices.usersXService) const [rolesState, rolesSend] = useActor(xServices.siteRolesXService) - const { users, getUsersError, userIdToSuspend, userIdToActivate, userIdToResetPassword, newUserPassword } = - usersState.context + const { + users, + getUsersError, + userIdToSuspend, + userIdToActivate, + userIdToResetPassword, + newUserPassword, + } = usersState.context const navigate = useNavigate() const userToBeSuspended = users?.find((u) => u.id === userIdToSuspend) const userToBeActivated = users?.find((u) => u.id === userIdToActivate) diff --git a/site/src/pages/WorkspaceAppErrorPage/WorkspaceAppErrorPageView.stories.tsx b/site/src/pages/WorkspaceAppErrorPage/WorkspaceAppErrorPageView.stories.tsx index e8f0023f62d9f..e2aa38ab529a3 100644 --- a/site/src/pages/WorkspaceAppErrorPage/WorkspaceAppErrorPageView.stories.tsx +++ b/site/src/pages/WorkspaceAppErrorPage/WorkspaceAppErrorPageView.stories.tsx @@ -1,16 +1,22 @@ import { Story } from "@storybook/react" -import { WorkspaceAppErrorPageView, WorkspaceAppErrorPageViewProps } from "./WorkspaceAppErrorPageView" +import { + WorkspaceAppErrorPageView, + WorkspaceAppErrorPageViewProps, +} from "./WorkspaceAppErrorPageView" export default { title: "pages/WorkspaceAppErrorPageView", component: WorkspaceAppErrorPageView, } -const Template: Story = (args) => +const Template: Story = (args) => ( + +) export const NotRunning = Template.bind({}) NotRunning.args = { appName: "code-server", // This is a real message copied and pasted from the backend! - message: "remote dial error: dial 'tcp://localhost:13337': dial tcp 127.0.0.1:13337: connect: connection refused", + message: + "remote dial error: dial 'tcp://localhost:13337': dial tcp 127.0.0.1:13337: connect: connection refused", } diff --git a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx index fdb39e06d21ea..470f38a70e912 100644 --- a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx +++ b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx @@ -16,7 +16,9 @@ export const WorkspaceBuildPage: FC = () => { return ( <> - {build ? pageTitle(`Build #${build.build_number} · ${build.workspace_name}`) : ""} + + {build ? pageTitle(`Build #${build.build_number} · ${build.workspace_name}`) : ""} + diff --git a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx index 2734a9d82a75a..874d11b3290a4 100644 --- a/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx +++ b/site/src/pages/WorkspaceBuildPage/WorkspaceBuildPageView.tsx @@ -8,7 +8,9 @@ import { WorkspaceBuildLogs } from "../../components/WorkspaceBuildLogs/Workspac import { WorkspaceBuildStats } from "../../components/WorkspaceBuildStats/WorkspaceBuildStats" const sortLogsByCreatedAt = (logs: ProvisionerJobLog[]) => { - return [...logs].sort((a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime()) + return [...logs].sort( + (a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime(), + ) } export interface WorkspaceBuildPageViewProps { diff --git a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx index b7923c5530f78..88cb09c6591fa 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx @@ -77,11 +77,15 @@ describe("Workspace Page", () => { expect(status).toHaveTextContent("Running") }) it("requests a stop job when the user presses Stop", async () => { - const stopWorkspaceMock = jest.spyOn(api, "stopWorkspace").mockResolvedValueOnce(MockWorkspaceBuild) + const stopWorkspaceMock = jest + .spyOn(api, "stopWorkspace") + .mockResolvedValueOnce(MockWorkspaceBuild) await testButton(Language.stop, stopWorkspaceMock) }) it("requests a delete job when the user presses Delete and confirms", async () => { - const deleteWorkspaceMock = jest.spyOn(api, "deleteWorkspace").mockResolvedValueOnce(MockWorkspaceBuild) + const deleteWorkspaceMock = jest + .spyOn(api, "deleteWorkspace") + .mockResolvedValueOnce(MockWorkspaceBuild) await renderWorkspacePage() const button = await screen.findByText(Language.delete) await waitFor(() => fireEvent.click(button)) @@ -172,9 +176,13 @@ describe("Workspace Page", () => { expect(agent1Names.length).toEqual(2) const agent2Names = await screen.findAllByText(MockWorkspaceAgentDisconnected.name) expect(agent2Names.length).toEqual(2) - const agent1Status = await screen.findAllByText(DisplayAgentStatusLanguage[MockWorkspaceAgent.status]) + const agent1Status = await screen.findAllByText( + DisplayAgentStatusLanguage[MockWorkspaceAgent.status], + ) expect(agent1Status.length).toEqual(2) - const agent2Status = await screen.findAllByText(DisplayAgentStatusLanguage[MockWorkspaceAgentDisconnected.status]) + const agent2Status = await screen.findAllByText( + DisplayAgentStatusLanguage[MockWorkspaceAgentDisconnected.status], + ) expect(agent2Status.length).toEqual(2) }) }) diff --git a/site/src/pages/WorkspacePage/WorkspacePage.tsx b/site/src/pages/WorkspacePage/WorkspacePage.tsx index cbc4929646395..6dfd881bf50e9 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.tsx @@ -26,7 +26,8 @@ export const WorkspacePage: React.FC = () => { userId: me?.id, }, }) - const { workspace, resources, getWorkspaceError, getResourcesError, builds, permissions } = workspaceState.context + const { workspace, resources, getWorkspaceError, getResourcesError, builds, permissions } = + workspaceState.context const canUpdateWorkspace = !!permissions?.updateWorkspace diff --git a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx index 6d2ad5091d5e4..1f440e18eea5c 100644 --- a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx +++ b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx @@ -1,7 +1,11 @@ import * as TypesGen from "../../api/typesGenerated" import { WorkspaceScheduleFormValues } from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm" import * as Mocks from "../../testHelpers/entities" -import { formValuesToAutoStartRequest, formValuesToTTLRequest, workspaceToInitialValues } from "./WorkspaceSchedulePage" +import { + formValuesToAutoStartRequest, + formValuesToTTLRequest, + workspaceToInitialValues, +} from "./WorkspaceSchedulePage" const validValues: WorkspaceScheduleFormValues = { sunday: false, diff --git a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx index dbed18ea91927..5aa9da8527a1e 100644 --- a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx +++ b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx @@ -87,7 +87,9 @@ export const formValuesToAutoStartRequest = ( } } -export const formValuesToTTLRequest = (values: WorkspaceScheduleFormValues): TypesGen.UpdateWorkspaceTTLRequest => { +export const formValuesToTTLRequest = ( + values: WorkspaceScheduleFormValues, +): TypesGen.UpdateWorkspaceTTLRequest => { return { // minutes to nanoseconds ttl_ms: values.ttl ? values.ttl * 60 * 60 * 1000 : undefined, @@ -99,7 +101,9 @@ export const workspaceToInitialValues = ( defaultTimeZone = "", ): WorkspaceScheduleFormValues => { const schedule = workspace.autostart_schedule - const ttlHours = workspace.ttl_ms ? Math.round(workspace.ttl_ms / (1000 * 60 * 60)) : defaultWorkspaceScheduleTTL + const ttlHours = workspace.ttl_ms + ? Math.round(workspace.ttl_ms / (1000 * 60 * 60)) + : defaultWorkspaceScheduleTTL if (!schedule) { return defaultWorkspaceSchedule(ttlHours, defaultTimeZone) @@ -149,7 +153,11 @@ export const WorkspaceSchedulePage: React.FC = () => { if (!username || !workspaceName) { navigate("/workspaces") return null - } else if (scheduleState.matches("idle") || scheduleState.matches("gettingWorkspace") || !workspace) { + } else if ( + scheduleState.matches("idle") || + scheduleState.matches("gettingWorkspace") || + !workspace + ) { return } else if (scheduleState.matches("error")) { return ( diff --git a/site/src/pages/WorkspacesPage/WorkspacesPageView.stories.tsx b/site/src/pages/WorkspacesPage/WorkspacesPageView.stories.tsx index 221767c1fed60..9a19cc7c4d423 100644 --- a/site/src/pages/WorkspacesPage/WorkspacesPageView.stories.tsx +++ b/site/src/pages/WorkspacesPage/WorkspacesPageView.stories.tsx @@ -3,7 +3,10 @@ import { spawn } from "xstate" import { ProvisionerJobStatus, WorkspaceTransition } from "../../api/typesGenerated" import { MockWorkspace } from "../../testHelpers/entities" import { workspaceFilterQuery } from "../../util/workspace" -import { workspaceItemMachine, WorkspaceItemMachineRef } from "../../xServices/workspaces/workspacesXService" +import { + workspaceItemMachine, + WorkspaceItemMachineRef, +} from "../../xServices/workspaces/workspacesXService" import { WorkspacesPageView, WorkspacesPageViewProps } from "./WorkspacesPageView" const createWorkspaceItemRef = ( diff --git a/site/src/pages/WorkspacesPage/WorkspacesPageView.tsx b/site/src/pages/WorkspacesPage/WorkspacesPageView.tsx index da24f921fd5a7..fd6be81f43d1a 100644 --- a/site/src/pages/WorkspacesPage/WorkspacesPageView.tsx +++ b/site/src/pages/WorkspacesPage/WorkspacesPageView.tsx @@ -18,7 +18,11 @@ import { Link as RouterLink, useNavigate } from "react-router-dom" import { AvatarData } from "../../components/AvatarData/AvatarData" import { EmptyState } from "../../components/EmptyState/EmptyState" import { Margins } from "../../components/Margins/Margins" -import { PageHeader, PageHeaderSubtitle, PageHeaderTitle } from "../../components/PageHeader/PageHeader" +import { + PageHeader, + PageHeaderSubtitle, + PageHeaderTitle, +} from "../../components/PageHeader/PageHeader" import { SearchBarWithFilter } from "../../components/SearchBarWithFilter/SearchBarWithFilter" import { Stack } from "../../components/Stack/Stack" import { TableCellLink } from "../../components/TableCellLink/TableCellLink" @@ -152,7 +156,12 @@ export interface WorkspacesPageViewProps { onFilter: (query: string) => void } -export const WorkspacesPageView: FC = ({ loading, workspaceRefs, filter, onFilter }) => { +export const WorkspacesPageView: FC = ({ + loading, + workspaceRefs, + filter, + onFilter, +}) => { const presetFilters = [ { query: workspaceFilterQuery.me, name: Language.yourWorkspacesButton }, { query: workspaceFilterQuery.all, name: Language.allWorkspacesButton }, @@ -202,7 +211,9 @@ export const WorkspacesPageView: FC = ({ loading, works description={Language.emptyCreateWorkspaceDescription} cta={ - + } /> @@ -218,7 +229,9 @@ export const WorkspacesPageView: FC = ({ loading, works )} {workspaceRefs && - workspaceRefs.map((workspaceRef) => )} + workspaceRefs.map((workspaceRef) => ( + + ))} diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 97f66d599cbd7..6544002edf9bf 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -226,7 +226,10 @@ export const MockDeletingWorkspace: TypesGen.Workspace = { ...MockWorkspace, latest_build: { ...MockWorkspaceBuildDelete, job: MockRunningProvisionerJob }, } -export const MockDeletedWorkspace: TypesGen.Workspace = { ...MockWorkspace, latest_build: MockWorkspaceBuildDelete } +export const MockDeletedWorkspace: TypesGen.Workspace = { + ...MockWorkspace, + latest_build: MockWorkspaceBuildDelete, +} export const MockOutdatedWorkspace: TypesGen.Workspace = { ...MockFailedWorkspace, outdated: true } diff --git a/site/src/testHelpers/handlers.ts b/site/src/testHelpers/handlers.ts index 142d685ea2923..5f5db2d901718 100644 --- a/site/src/testHelpers/handlers.ts +++ b/site/src/testHelpers/handlers.ts @@ -115,9 +115,12 @@ export const handlers = [ rest.get("/api/v2/workspaces/:workspaceId/builds", async (req, res, ctx) => { return res(ctx.status(200), ctx.json(M.MockBuilds)) }), - rest.get("/api/v2/users/:username/workspace/:workspaceName/builds/:buildNumber", (req, res, ctx) => { - return res(ctx.status(200), ctx.json(M.MockWorkspaceBuild)) - }), + rest.get( + "/api/v2/users/:username/workspace/:workspaceName/builds/:buildNumber", + (req, res, ctx) => { + return res(ctx.status(200), ctx.json(M.MockWorkspaceBuild)) + }, + ), rest.get("/api/v2/workspacebuilds/:workspaceBuildId/resources", (req, res, ctx) => { return res(ctx.status(200), ctx.json([M.MockWorkspaceResource, M.MockWorkspaceResource2])) }), diff --git a/site/src/testHelpers/renderHelpers.tsx b/site/src/testHelpers/renderHelpers.tsx index 9e90d7f694b8a..93f0e5bbc2d09 100644 --- a/site/src/testHelpers/renderHelpers.tsx +++ b/site/src/testHelpers/renderHelpers.tsx @@ -2,7 +2,12 @@ import ThemeProvider from "@material-ui/styles/ThemeProvider" import { render as wrappedRender, RenderResult } from "@testing-library/react" import { createMemoryHistory } from "history" import { FC, ReactElement } from "react" -import { MemoryRouter, Route, Routes, unstable_HistoryRouter as HistoryRouter } from "react-router-dom" +import { + MemoryRouter, + Route, + Routes, + unstable_HistoryRouter as HistoryRouter, +} from "react-router-dom" import { RequireAuth } from "../components/RequireAuth/RequireAuth" import { dark } from "../theme" import { XServiceProvider } from "../xServices/StateContext" diff --git a/site/src/util/events.ts b/site/src/util/events.ts index dcf7a4e68f987..d8cc5d0c4dcfa 100644 --- a/site/src/util/events.ts +++ b/site/src/util/events.ts @@ -42,6 +42,8 @@ export type AnnotatedEventListener = (event: E) => void * @remark this is especially necessary when an event originates from an iframe * as `instanceof` will not match against another origin's prototype chain. */ -export const isCustomEvent = (event: CustomEvent | Event): event is CustomEvent => { +export const isCustomEvent = ( + event: CustomEvent | Event, +): event is CustomEvent => { return !!(event as CustomEvent).detail } diff --git a/site/src/util/workspace.test.ts b/site/src/util/workspace.test.ts index cdfd833fe17a8..3e4e707bd1f66 100644 --- a/site/src/util/workspace.test.ts +++ b/site/src/util/workspace.test.ts @@ -1,7 +1,12 @@ import dayjs from "dayjs" import * as TypesGen from "../api/typesGenerated" import * as Mocks from "../testHelpers/entities" -import { defaultWorkspaceExtension, isWorkspaceDeleted, isWorkspaceOn, workspaceQueryToFilter } from "./workspace" +import { + defaultWorkspaceExtension, + isWorkspaceDeleted, + isWorkspaceOn, + workspaceQueryToFilter, +} from "./workspace" describe("util > workspace", () => { describe("isWorkspaceOn", () => { diff --git a/site/src/util/workspace.ts b/site/src/util/workspace.ts index d1982b834da81..8587cf28358ef 100644 --- a/site/src/util/workspace.ts +++ b/site/src/util/workspace.ts @@ -217,7 +217,9 @@ export const getDisplayWorkspaceBuildInitiatedBy = ( } } -export const getWorkspaceBuildDurationInSeconds = (build: TypesGen.WorkspaceBuild): number | undefined => { +export const getWorkspaceBuildDurationInSeconds = ( + build: TypesGen.WorkspaceBuild, +): number | undefined => { const isCompleted = build.job.started_at && build.job.completed_at if (!isCompleted) { @@ -284,7 +286,9 @@ export const isWorkspaceDeleted = (workspace: TypesGen.Workspace): boolean => { return getWorkspaceStatus(workspace.latest_build) === succeededToStatus["delete"] } -export const defaultWorkspaceExtension = (__startDate?: dayjs.Dayjs): TypesGen.PutExtendWorkspaceRequest => { +export const defaultWorkspaceExtension = ( + __startDate?: dayjs.Dayjs, +): TypesGen.PutExtendWorkspaceRequest => { const now = __startDate ? dayjs(__startDate) : dayjs() const fourHoursFromNow = now.add(4, "hours").utc() diff --git a/site/src/xServices/StateContext.tsx b/site/src/xServices/StateContext.tsx index da7af13f1395c..c9628cfe2608e 100644 --- a/site/src/xServices/StateContext.tsx +++ b/site/src/xServices/StateContext.tsx @@ -35,7 +35,9 @@ export const XServiceProvider: React.FC = ({ children }) => { value={{ authXService: useInterpret(authMachine), buildInfoXService: useInterpret(buildInfoMachine), - usersXService: useInterpret(() => usersMachine.withConfig({ actions: { redirectToUsersPage } })), + usersXService: useInterpret(() => + usersMachine.withConfig({ actions: { redirectToUsersPage } }), + ), siteRolesXService: useInterpret(siteRolesMachine), }} > diff --git a/site/src/xServices/createWorkspace/createWorkspaceXService.ts b/site/src/xServices/createWorkspace/createWorkspaceXService.ts index cefbd179c6f61..332e6dcda239f 100644 --- a/site/src/xServices/createWorkspace/createWorkspaceXService.ts +++ b/site/src/xServices/createWorkspace/createWorkspaceXService.ts @@ -1,6 +1,11 @@ import { assign, createMachine } from "xstate" import { createWorkspace, getTemplates, getTemplateVersionSchema } from "../../api/api" -import { CreateWorkspaceRequest, ParameterSchema, Template, Workspace } from "../../api/typesGenerated" +import { + CreateWorkspaceRequest, + ParameterSchema, + Template, + Workspace, +} from "../../api/typesGenerated" type CreateWorkspaceContext = { organizationId: string diff --git a/site/src/xServices/terminal/terminalXService.ts b/site/src/xServices/terminal/terminalXService.ts index f3b6f6169c21f..3bc57cc0ba8c9 100644 --- a/site/src/xServices/terminal/terminalXService.ts +++ b/site/src/xServices/terminal/terminalXService.ts @@ -21,7 +21,13 @@ export interface TerminalContext { } export type TerminalEvent = - | { type: "CONNECT"; agentName?: string; reconnection?: string; workspaceName?: string; username?: string } + | { + type: "CONNECT" + agentName?: string + reconnection?: string + workspaceName?: string + username?: string + } | { type: "WRITE"; request: Types.ReconnectingPTYRequest } | { type: "READ"; data: ArrayBuffer } | { type: "DISCONNECT" } diff --git a/site/src/xServices/users/usersXService.ts b/site/src/xServices/users/usersXService.ts index a7f524dad5af0..bab90367af264 100644 --- a/site/src/xServices/users/usersXService.ts +++ b/site/src/xServices/users/usersXService.ts @@ -321,7 +321,8 @@ export const usersMachine = createMachine( }), assignCreateUserFormErrors: assign({ // the guard ensures it is ApiError - createUserFormErrors: (_, event) => mapApiErrorToFieldErrors((event.data as ApiError).response.data), + createUserFormErrors: (_, event) => + mapApiErrorToFieldErrors((event.data as ApiError).response.data), }), assignSuspendUserError: assign({ suspendUserError: (_, event) => event.data, @@ -373,7 +374,10 @@ export const usersMachine = createMachine( displaySuccess(Language.resetUserPasswordSuccess) }, displayResetPasswordErrorMessage: (context) => { - const message = getErrorMessage(context.resetUserPasswordError, Language.resetUserPasswordError) + const message = getErrorMessage( + context.resetUserPasswordError, + Language.resetUserPasswordError, + ) displayError(message) }, displayUpdateRolesErrorMessage: (context) => { diff --git a/site/src/xServices/workspace/workspaceXService.ts b/site/src/xServices/workspace/workspaceXService.ts index 1a8d94395bb4c..a6db5a6d61498 100644 --- a/site/src/xServices/workspace/workspaceXService.ts +++ b/site/src/xServices/workspace/workspaceXService.ts @@ -495,7 +495,9 @@ export const workspaceMachine = createMachine( }, services: { getWorkspace: async (_, event) => { - return await API.getWorkspaceByOwnerAndName(event.username, event.workspaceName, { include_deleted: true }) + return await API.getWorkspaceByOwnerAndName(event.username, event.workspaceName, { + include_deleted: true, + }) }, getTemplate: async (context) => { if (context.workspace) { @@ -534,9 +536,13 @@ export const workspaceMachine = createMachine( }, refreshWorkspace: async (context) => { if (context.workspace) { - return await API.getWorkspaceByOwnerAndName(context.workspace.owner_name, context.workspace.name, { - include_deleted: true, - }) + return await API.getWorkspaceByOwnerAndName( + context.workspace.owner_name, + context.workspace.name, + { + include_deleted: true, + }, + ) } else { throw Error("Cannot refresh workspace without id") } diff --git a/site/src/xServices/workspaceBuild/workspaceBuildXService.ts b/site/src/xServices/workspaceBuild/workspaceBuildXService.ts index 0836e2be89718..b49fa75a98e31 100644 --- a/site/src/xServices/workspaceBuild/workspaceBuildXService.ts +++ b/site/src/xServices/workspaceBuild/workspaceBuildXService.ts @@ -114,7 +114,8 @@ export const workspaceBuildMachine = createMachine( }), }, services: { - getWorkspaceBuild: (ctx) => API.getWorkspaceBuildByNumber(ctx.username, ctx.workspaceName, ctx.buildNumber), + getWorkspaceBuild: (ctx) => + API.getWorkspaceBuildByNumber(ctx.username, ctx.workspaceName, ctx.buildNumber), getLogs: async (ctx) => API.getWorkspaceBuildLogs(ctx.buildId, ctx.timeCursor), streamWorkspaceBuildLogs: (ctx) => async (callback) => { return new Promise((resolve, reject) => { diff --git a/site/src/xServices/workspaces/workspacesXService.ts b/site/src/xServices/workspaces/workspacesXService.ts index b21062a893be8..6b605ce70bef9 100644 --- a/site/src/xServices/workspaces/workspacesXService.ts +++ b/site/src/xServices/workspaces/workspacesXService.ts @@ -190,7 +190,9 @@ interface WorkspacesContext { getWorkspacesError?: Error | unknown } -type WorkspacesEvent = { type: "GET_WORKSPACES"; query: string } | { type: "UPDATE_VERSION"; workspaceId: string } +type WorkspacesEvent = + | { type: "GET_WORKSPACES"; query: string } + | { type: "UPDATE_VERSION"; workspaceId: string } export const workspacesMachine = createMachine( {