Skip to content

Commit 35b41e7

Browse files
committed
Reduce round trip on SET_BANNER
1 parent 84735e3 commit 35b41e7

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

enterprise/coderd/servicebanner.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,5 @@ func (api *API) putServiceBanner(rw http.ResponseWriter, r *http.Request) {
105105
return
106106
}
107107

108-
httpapi.Write(r.Context(), rw, http.StatusOK, codersdk.Response{
109-
Message: "ok",
110-
})
108+
httpapi.Write(r.Context(), rw, http.StatusOK, serviceBanner)
111109
}

site/src/components/ServiceBanner/ServiceBannerView.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ const useStyles = makeStyles((theme) => ({
7070
marginRight: "auto",
7171
marginLeft: "auto",
7272
fontWeight: 400,
73+
"& a": {
74+
color: "inherit",
75+
},
7376
},
7477
}))
7578

site/src/pages/DeploySettingsPage/ServiceBannerSettingsPage.tsx

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export const Language = {
3434
export interface ServiceBannerFormValues {
3535
message?: string
3636
backgroundColor?: string
37-
enabled?: boolean
37+
enabled: boolean
3838
}
3939

4040
// TODO:
@@ -63,7 +63,7 @@ const ServiceBannerSettingsPage: React.FC = () => {
6363
const setBanner = (values: ServiceBannerFormValues, preview: boolean) => {
6464
const newBanner = {
6565
message: values.message,
66-
enabled: true,
66+
enabled: values.enabled,
6767
background_color: values.backgroundColor,
6868
}
6969
if (preview) {
@@ -118,8 +118,22 @@ const ServiceBannerSettingsPage: React.FC = () => {
118118
<form className={styles.form} onSubmit={form.handleSubmit}>
119119
<Stack>
120120
<FormControlLabel
121-
value="enabled"
122-
control={<Switch {...getFieldHelpers("enabled")} color="primary" />}
121+
control={
122+
<Switch
123+
{...getFieldHelpers("enabled")}
124+
color="primary"
125+
checked={form.values.enabled}
126+
onChange={() => {
127+
const newState = !form.values.enabled
128+
const newBanner = {
129+
...form.values,
130+
enabled: newState,
131+
}
132+
setBanner(newBanner, false)
133+
form.setFieldValue("enabled", newState)
134+
}}
135+
/>
136+
}
123137
label="Enabled"
124138
/>
125139
<Stack spacing={0}>

site/src/xServices/serviceBanner/serviceBannerXService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ export const serviceBannerMachine = createMachine(
8686
id: "setBanner",
8787
src: "setBanner",
8888
onDone: {
89-
target: "gettingBanner",
89+
target: "idle",
90+
actions: ["assignBanner"],
9091
},
9192
onError: {
9293
target: "idle",

0 commit comments

Comments
 (0)