Skip to content

Commit f8f4ae8

Browse files
refactor(site): update build log to be displayed only on active statuses (#8459)
1 parent 29e4205 commit f8f4ae8

File tree

7 files changed

+16
-224
lines changed

7 files changed

+16
-224
lines changed

site/.storybook/preview.jsx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { HelmetProvider } from "react-helmet-async"
55
import { dark } from "../src/theme"
66
import "../src/theme/globalFonts"
77
import "../src/i18n"
8-
import { LocalPreferencesProvider } from "../src/contexts/LocalPreferencesContext"
98

109
export const decorators = [
1110
(Story) => (
@@ -24,13 +23,6 @@ export const decorators = [
2423
</HelmetProvider>
2524
)
2625
},
27-
(Story) => {
28-
return (
29-
<LocalPreferencesProvider>
30-
<Story />
31-
</LocalPreferencesProvider>
32-
)
33-
},
3426
]
3527

3628
export const parameters = {

site/src/app.tsx

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { GlobalSnackbar } from "./components/GlobalSnackbar/GlobalSnackbar"
99
import { dark } from "./theme"
1010
import "./theme/globalFonts"
1111
import { StyledEngineProvider, ThemeProvider } from "@mui/material/styles"
12-
import { LocalPreferencesProvider } from "contexts/LocalPreferencesContext"
1312

1413
const queryClient = new QueryClient({
1514
defaultOptions: {
@@ -26,19 +25,17 @@ export const AppProviders: FC<PropsWithChildren> = ({ children }) => {
2625
return (
2726
<HelmetProvider>
2827
<StyledEngineProvider injectFirst>
29-
<LocalPreferencesProvider>
30-
<ThemeProvider theme={dark}>
31-
<CssBaseline enableColorScheme />
32-
<ErrorBoundary>
33-
<QueryClientProvider client={queryClient}>
34-
<AuthProvider>
35-
{children}
36-
<GlobalSnackbar />
37-
</AuthProvider>
38-
</QueryClientProvider>
39-
</ErrorBoundary>
40-
</ThemeProvider>
41-
</LocalPreferencesProvider>
28+
<ThemeProvider theme={dark}>
29+
<CssBaseline enableColorScheme />
30+
<ErrorBoundary>
31+
<QueryClientProvider client={queryClient}>
32+
<AuthProvider>
33+
{children}
34+
<GlobalSnackbar />
35+
</AuthProvider>
36+
</QueryClientProvider>
37+
</ErrorBoundary>
38+
</ThemeProvider>
4239
</StyledEngineProvider>
4340
</HelmetProvider>
4441
)

site/src/components/Workspace/Workspace.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ export interface WorkspaceProps {
7171
quota_budget?: number
7272
handleBuildRetry: () => void
7373
buildLogs?: React.ReactNode
74-
canChangeBuildLogsVisibility: boolean
75-
isWorkspaceBuildLogsUIActive: boolean
7674
}
7775

7876
/**
@@ -106,8 +104,6 @@ export const Workspace: FC<React.PropsWithChildren<WorkspaceProps>> = ({
106104
handleBuildRetry,
107105
templateWarnings,
108106
buildLogs,
109-
canChangeBuildLogsVisibility,
110-
isWorkspaceBuildLogsUIActive,
111107
}) => {
112108
const styles = useStyles()
113109
const navigate = useNavigate()
@@ -211,8 +207,6 @@ export const Workspace: FC<React.PropsWithChildren<WorkspaceProps>> = ({
211207
canChangeVersions={canChangeVersions}
212208
isUpdating={isUpdating}
213209
isRestarting={isRestarting}
214-
canChangeBuildLogsVisibility={canChangeBuildLogsVisibility}
215-
isWorkspaceBuildLogsUIActive={isWorkspaceBuildLogsUIActive}
216210
/>
217211
</PageHeaderActions>
218212
</FullWidthPageHeader>

site/src/components/WorkspaceActions/WorkspaceActions.tsx

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@ import SettingsOutlined from "@mui/icons-material/SettingsOutlined"
2222
import HistoryOutlined from "@mui/icons-material/HistoryOutlined"
2323
import DeleteOutlined from "@mui/icons-material/DeleteOutlined"
2424
import IconButton from "@mui/material/IconButton"
25-
import Divider from "@mui/material/Divider"
26-
import VisibilityOffOutlined from "@mui/icons-material/VisibilityOffOutlined"
27-
import VisibilityOutlined from "@mui/icons-material/VisibilityOutlined"
28-
import { useLocalPreferences } from "contexts/LocalPreferencesContext"
2925

3026
export interface WorkspaceActionsProps {
3127
workspaceStatus: WorkspaceStatus
@@ -42,8 +38,6 @@ export interface WorkspaceActionsProps {
4238
isRestarting: boolean
4339
children?: ReactNode
4440
canChangeVersions: boolean
45-
canChangeBuildLogsVisibility: boolean
46-
isWorkspaceBuildLogsUIActive: boolean
4741
}
4842

4943
export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
@@ -60,8 +54,6 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
6054
isUpdating,
6155
isRestarting,
6256
canChangeVersions,
63-
canChangeBuildLogsVisibility,
64-
isWorkspaceBuildLogsUIActive,
6557
}) => {
6658
const styles = useStyles()
6759
const {
@@ -72,9 +64,6 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
7264
const canBeUpdated = isOutdated && canAcceptJobs
7365
const menuTriggerRef = useRef<HTMLButtonElement>(null)
7466
const [isMenuOpen, setIsMenuOpen] = useState(false)
75-
const localPreferences = useLocalPreferences()
76-
const isBuildLogsVisible =
77-
localPreferences.getPreference("buildLogsVisibility") === "visible"
7867

7968
// A mapping of button type to the corresponding React component
8069
const buttonMapping: ButtonMapping = {
@@ -151,39 +140,6 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
151140
<DeleteOutlined />
152141
Delete
153142
</MenuItem>
154-
155-
{isWorkspaceBuildLogsUIActive && (
156-
<>
157-
<Divider sx={{ borderColor: (theme) => theme.palette.divider }} />
158-
{isBuildLogsVisible ? (
159-
<MenuItem
160-
disabled={!canChangeBuildLogsVisibility}
161-
onClick={onMenuItemClick(() => {
162-
localPreferences.setPreference(
163-
"buildLogsVisibility",
164-
"hide",
165-
)
166-
})}
167-
>
168-
<VisibilityOffOutlined />
169-
Hide build logs
170-
</MenuItem>
171-
) : (
172-
<MenuItem
173-
disabled={!canChangeBuildLogsVisibility}
174-
onClick={onMenuItemClick(() => {
175-
localPreferences.setPreference(
176-
"buildLogsVisibility",
177-
"visible",
178-
)
179-
})}
180-
>
181-
<VisibilityOutlined />
182-
Show build logs
183-
</MenuItem>
184-
)}
185-
</>
186-
)}
187143
</Menu>
188144
</div>
189145
</div>

site/src/contexts/LocalPreferencesContext.tsx

Lines changed: 0 additions & 111 deletions
This file was deleted.

site/src/pages/WorkspacePage/WorkspaceBuildLogsSection.tsx

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
1-
import CloseOutlined from "@mui/icons-material/CloseOutlined"
21
import Box from "@mui/material/Box"
3-
import IconButton from "@mui/material/IconButton"
4-
import Tooltip from "@mui/material/Tooltip"
52
import { ProvisionerJobLog } from "api/typesGenerated"
63
import { Loader } from "components/Loader/Loader"
74
import { WorkspaceBuildLogs } from "components/WorkspaceBuildLogs/WorkspaceBuildLogs"
85
import { useRef, useEffect } from "react"
96

107
export const WorkspaceBuildLogsSection = ({
118
logs,
12-
onHide,
139
}: {
1410
logs: ProvisionerJobLog[] | undefined
15-
onHide?: () => void
1611
}) => {
1712
const scrollRef = useRef<HTMLDivElement>(null)
1813

@@ -43,24 +38,6 @@ export const WorkspaceBuildLogsSection = ({
4338
})}
4439
>
4540
Build logs
46-
{onHide && (
47-
<Box sx={{ marginLeft: "auto" }}>
48-
<Tooltip title="Hide build logs" placement="top">
49-
<IconButton
50-
onClick={onHide}
51-
size="small"
52-
sx={(theme) => ({
53-
color: theme.palette.text.secondary,
54-
"&:hover": {
55-
color: theme.palette.text.primary,
56-
},
57-
})}
58-
>
59-
<CloseOutlined sx={{ height: 16, width: 16 }} />
60-
</IconButton>
61-
</Tooltip>
62-
</Box>
63-
)}
6441
</Box>
6542
<Box
6643
ref={scrollRef}

site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import Checkbox from "@mui/material/Checkbox"
3939
import FormControlLabel from "@mui/material/FormControlLabel"
4040
import { workspaceBuildMachine } from "xServices/workspaceBuild/workspaceBuildXService"
4141
import * as TypesGen from "api/typesGenerated"
42-
import { useLocalPreferences } from "contexts/LocalPreferencesContext"
4342
import { WorkspaceBuildLogsSection } from "./WorkspaceBuildLogsSection"
4443

4544
interface WorkspaceReadyPageProps {
@@ -94,16 +93,13 @@ export const WorkspaceReadyPage = ({
9493
const user = useMe()
9594
const { isWarningIgnored, ignoreWarning } = useIgnoreWarnings(user.id)
9695
const buildLogs = useBuildLogs(workspace)
97-
const localPreferences = useLocalPreferences()
9896
const dashboard = useDashboard()
99-
const canChangeBuildLogsVisibility = !hasJobError(workspace)
100-
const isWorkspaceBuildLogsUIActive = dashboard.experiments.includes(
101-
"workspace_build_logs_ui",
102-
)
10397
const shouldDisplayBuildLogs =
10498
hasJobError(workspace) ||
105-
(localPreferences.getPreference("buildLogsVisibility") === "visible" &&
106-
isWorkspaceBuildLogsUIActive)
99+
(dashboard.experiments.includes("workspace_build_logs_ui") &&
100+
["canceling", "deleting", "pending", "starting", "stopping"].includes(
101+
workspace.latest_build.status,
102+
))
107103

108104
const {
109105
mutate: restartWorkspace,
@@ -195,18 +191,9 @@ export const WorkspaceReadyPage = ({
195191
template={template}
196192
quota_budget={quotaState.context.quota?.budget}
197193
templateWarnings={templateVersion?.warnings}
198-
canChangeBuildLogsVisibility={canChangeBuildLogsVisibility}
199-
isWorkspaceBuildLogsUIActive={isWorkspaceBuildLogsUIActive}
200194
buildLogs={
201195
shouldDisplayBuildLogs && (
202-
<WorkspaceBuildLogsSection
203-
logs={buildLogs}
204-
onHide={() => {
205-
if (canChangeBuildLogsVisibility) {
206-
localPreferences.setPreference("buildLogsVisibility", "hide")
207-
}
208-
}}
209-
/>
196+
<WorkspaceBuildLogsSection logs={buildLogs} />
210197
)
211198
}
212199
/>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy