diff --git a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx index ccf1e6d993a..4a6553b11d7 100644 --- a/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx +++ b/site/src/pages/DeploymentSettingsPage/AppearanceSettingsPage/AnnouncementBannerDialog.tsx @@ -1,5 +1,4 @@ import { useTheme } from "@emotion/react"; -import TextField from "@mui/material/TextField"; import { useFormik } from "formik"; import { type FC, useState } from "react"; import { SliderPicker, TwitterPicker } from "react-color"; @@ -13,7 +12,10 @@ import { DialogHeader, DialogTitle, } from "#/components/Dialog/Dialog"; +import { Label } from "#/components/Label/Label"; +import { Textarea } from "#/components/Textarea/Textarea"; import { AnnouncementBannerView } from "#/modules/dashboard/AnnouncementBanners/AnnouncementBannerView"; +import { cn } from "#/utils/cn"; import { getFormHelpers } from "#/utils/formUtils"; interface AnnouncementBannerDialogProps { @@ -28,6 +30,7 @@ export const AnnouncementBannerDialog: FC = ({ onUpdate, }) => { const theme = useTheme(); + const isCreating = banner.message === ""; const bannerForm = useFormik<{ message: string; @@ -39,9 +42,15 @@ export const AnnouncementBannerDialog: FC = ({ }, onSubmit: (banner) => onUpdate(banner), }); - const bannerFieldHelpers = getFormHelpers(bannerForm); + const getFieldHelpers = getFormHelpers(bannerForm); + const messageField = getFieldHelpers("message", { + helperText: "Markdown bold, italics, and links are supported.", + }); + const messageHelperId = `${messageField.id}-helper`; + const messageErrorId = `${messageField.id}-error`; const [showHuePicker, setShowHuePicker] = useState(false); + const previewMessage = bannerForm.values.message.trim(); return ( = ({ } }} > - {/* Banner preview */} -
+ {/* Banner preview. Rendered outside DialogContent so its fixed + positioning is relative to the viewport, not the dialog's + transformed containing block. */} +
= ({
-
-

- Message -

- + +