Skip to content

Commit bb49eb6

Browse files
committed
🧼
1 parent 09dae97 commit bb49eb6

File tree

6 files changed

+61
-44
lines changed

6 files changed

+61
-44
lines changed

site/src/pages/ManagementSettingsPage/CreateOrganizationPage.tsx

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@ import type { FC } from "react";
22
import { useMutation, useQueryClient } from "react-query";
33
import { useNavigate } from "react-router-dom";
44
import { createOrganization } from "api/queries/organizations";
5-
import { ErrorAlert } from "components/Alert/ErrorAlert";
65
import { displaySuccess } from "components/GlobalSnackbar/utils";
7-
import { Stack } from "components/Stack/Stack";
86
import { CreateOrganizationPageView } from "./CreateOrganizationPageView";
9-
import { isApiValidationError } from "api/errors";
107

118
const CreateOrganizationPage: FC = () => {
129
const navigate = useNavigate();
@@ -19,20 +16,14 @@ const CreateOrganizationPage: FC = () => {
1916
const error = createOrganizationMutation.error;
2017

2118
return (
22-
<Stack>
23-
{Boolean(error) && !isApiValidationError(error) && (
24-
<ErrorAlert error={error} />
25-
)}
26-
27-
<CreateOrganizationPageView
28-
error={error}
29-
onSubmit={async (values) => {
30-
await createOrganizationMutation.mutateAsync(values);
31-
displaySuccess("Organization created.");
32-
navigate(`/organizations/${values.name}`);
33-
}}
34-
/>
35-
</Stack>
19+
<CreateOrganizationPageView
20+
error={error}
21+
onSubmit={async (values) => {
22+
await createOrganizationMutation.mutateAsync(values);
23+
displaySuccess("Organization created.");
24+
navigate(`/organizations/${values.name}`);
25+
}}
26+
/>
3627
);
3728
};
3829

site/src/pages/ManagementSettingsPage/CreateOrganizationPageView.stories.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { Meta, StoryObj } from "@storybook/react";
2+
import { mockApiError } from "testHelpers/entities";
23
import { CreateOrganizationPageView } from "./CreateOrganizationPageView";
34

45
const meta: Meta<typeof CreateOrganizationPageView> = {
@@ -10,3 +11,21 @@ export default meta;
1011
type Story = StoryObj<typeof CreateOrganizationPageView>;
1112

1213
export const Example: Story = {};
14+
15+
export const Error: Story = {
16+
args: { error: "Oh no!" },
17+
};
18+
19+
export const InvalidName: Story = {
20+
args: {
21+
error: mockApiError({
22+
message: "Display name is bad",
23+
validations: [
24+
{
25+
field: "display_name",
26+
detail: "That display name is terrible. What were you thinking?",
27+
},
28+
],
29+
}),
30+
},
31+
};

site/src/pages/ManagementSettingsPage/CreateOrganizationPageView.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import TextField from "@mui/material/TextField";
22
import { useFormik } from "formik";
33
import type { FC } from "react";
44
import * as Yup from "yup";
5+
import { isApiValidationError } from "api/errors";
56
import type { CreateOrganizationRequest } from "api/typesGenerated";
7+
import { ErrorAlert } from "components/Alert/ErrorAlert";
68
import {
79
FormFields,
810
FormSection,
@@ -56,6 +58,12 @@ export const CreateOrganizationPageView: FC<
5658
<PageHeaderTitle>Organization settings</PageHeaderTitle>
5759
</PageHeader>
5860

61+
{Boolean(error) && !isApiValidationError(error) && (
62+
<div css={{ marginBottom: 32 }}>
63+
<ErrorAlert error={error} />
64+
</div>
65+
)}
66+
5967
<HorizontalForm
6068
onSubmit={form.handleSubmit}
6169
aria-label="Organization settings form"

site/src/pages/ManagementSettingsPage/OrganizationSettingsPage.tsx

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@ import {
55
updateOrganization,
66
deleteOrganization,
77
} from "api/queries/organizations";
8-
import { isApiValidationError } from "api/errors";
9-
import { ErrorAlert } from "components/Alert/ErrorAlert";
8+
import { EmptyState } from "components/EmptyState/EmptyState";
109
import { displaySuccess } from "components/GlobalSnackbar/utils";
11-
import { Stack } from "components/Stack/Stack";
1210
import { useOrganizationSettings } from "./ManagementSettingsLayout";
1311
import { OrganizationSettingsPageView } from "./OrganizationSettingsPageView";
14-
import { EmptyState } from "components/EmptyState/EmptyState";
1512

1613
const OrganizationSettingsPage: FC = () => {
1714
const navigate = useNavigate();
@@ -36,28 +33,22 @@ const OrganizationSettingsPage: FC = () => {
3633
}
3734

3835
return (
39-
<Stack>
40-
{Boolean(error) && !isApiValidationError(error) && (
41-
<ErrorAlert error={error} />
42-
)}
43-
44-
<OrganizationSettingsPageView
45-
organization={org}
46-
error={error}
47-
onSubmit={async (values) => {
48-
await updateOrganizationMutation.mutateAsync({
49-
orgId: org.id,
50-
req: values,
51-
});
52-
displaySuccess("Organization settings updated.");
53-
}}
54-
onDeleteOrganization={() => {
55-
deleteOrganizationMutation.mutate(org.id);
56-
displaySuccess("Organization deleted.");
57-
navigate("/organizations");
58-
}}
59-
/>
60-
</Stack>
36+
<OrganizationSettingsPageView
37+
organization={org}
38+
error={error}
39+
onSubmit={async (values) => {
40+
await updateOrganizationMutation.mutateAsync({
41+
orgId: org.id,
42+
req: values,
43+
});
44+
displaySuccess("Organization settings updated.");
45+
}}
46+
onDeleteOrganization={() => {
47+
deleteOrganizationMutation.mutate(org.id);
48+
displaySuccess("Organization deleted.");
49+
navigate("/organizations");
50+
}}
51+
/>
6152
);
6253
};
6354

site/src/pages/ManagementSettingsPage/OrganizationSettingsPageView.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import TextField from "@mui/material/TextField";
44
import { useFormik } from "formik";
55
import { type FC, useState } from "react";
66
import * as Yup from "yup";
7+
import { isApiValidationError } from "api/errors";
78
import type {
89
Organization,
910
UpdateOrganizationRequest,
1011
} from "api/typesGenerated";
12+
import { ErrorAlert } from "components/Alert/ErrorAlert";
1113
import { DeleteDialog } from "components/Dialogs/DeleteDialog/DeleteDialog";
1214
import {
1315
FormFields,
@@ -68,6 +70,12 @@ export const OrganizationSettingsPageView: FC<
6870
<PageHeaderTitle>Organization settings</PageHeaderTitle>
6971
</PageHeader>
7072

73+
{Boolean(error) && !isApiValidationError(error) && (
74+
<div css={{ marginBottom: 32 }}>
75+
<ErrorAlert error={error} />
76+
</div>
77+
)}
78+
7179
<HorizontalForm
7280
onSubmit={form.handleSubmit}
7381
aria-label="Organization settings form"

site/src/pages/ManagementSettingsPage/Sidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ const classNames = {
245245
246246
display: block;
247247
font-size: 13px;
248-
margin-left: 42px;
248+
margin-left: 44px;
249249
padding: 4px 12px;
250250
border-radius: 4px;
251251
transition: background-color 0.15s ease-in-out;

0 commit comments

Comments
 (0)