MCPcopy Create free account
hub / github.com/coder/coder / SecretDialog

Function SecretDialog

site/src/pages/UserSettingsPage/SecretsPage/SecretDialog.tsx:59–218  ·  view source on GitHub ↗
({
	open,
	secret,
	isSubmitting,
	returnFocusElement,
	onClose,
	onCreateSecret,
	onUpdateSecret,
})

Source from the content-addressed store, hash-verified

57export const SAVED_SECRET_VALUE_DISPLAY = "••••••••••••••••••••";
58
59export const SecretDialog: FC<SecretDialogProps> = ({
60 open,
61 secret,
62 isSubmitting,
63 returnFocusElement,
64 onClose,
65 onCreateSecret,
66 onUpdateSecret,
67}) => {
68 const isEdit = Boolean(secret);
69 const initialValues = secret
70 ? {
71 name: secret.name,
72 value: "",
73 description: secret.description,
74 env_name: secret.env_name,
75 file_path: secret.file_path,
76 }
77 : emptyValues;
78 const [clearValueRequested, setClearValueRequested] = useState(false);
79
80 const form = useFormik<SecretFormValues>({
81 initialValues,
82 enableReinitialize: true,
83 validateOnMount: true,
84 validate: (values) =>
85 isEdit ? {} : getCreateSecretRequiredFieldErrors(values),
86 onSubmit: async (values, helpers) => {
87 helpers.setStatus(undefined);
88 try {
89 if (secret) {
90 const request = buildUpdateUserSecretRequest(secret, values, {
91 clearValue: clearValueRequested,
92 });
93 await onUpdateSecret(secret.name, request);
94 } else {
95 await onCreateSecret(buildCreateUserSecretRequest(values));
96 }
97 setClearValueRequested(false);
98 helpers.resetForm();
99 onClose();
100 } catch (error) {
101 const formErrors = mapSecretApiErrorToFormErrors(error);
102 helpers.setErrors(formErrors.fieldErrors);
103 helpers.setTouched(
104 touchedFromFieldErrors(formErrors.fieldErrors),
105 false,
106 );
107 helpers.setStatus(formErrors.formError);
108 }
109 },
110 });
111
112 const closeDialog = () => {
113 setClearValueRequested(false);
114 form.resetForm();
115 onClose();
116 };

Callers

nothing calls this directly

Calls 8

getFormHelpersFunction · 0.90
touchedFromFieldErrorsFunction · 0.85
setStatusMethod · 0.80
closeDialogFunction · 0.70

Tested by

no test coverage detected