Skip to content

Commit cf73020

Browse files
Tim RoesJoey Marshment-Howell
andauthored
🪟 🎉 Remove advanced mode (#21914)
* Remove advanced mode * Add Suspense boundary * Remove tests Co-authored-by: Joey Marshment-Howell <[email protected]>
1 parent 1693cab commit cf73020

File tree

9 files changed

+39
-189
lines changed

9 files changed

+39
-189
lines changed

airbyte-webapp/src/hooks/services/useAdvancedModeSetting.test.ts

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

airbyte-webapp/src/hooks/services/useAdvancedModeSetting.ts

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

airbyte-webapp/src/locales/en.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,9 @@
113113
"form.url.error": "field must be a valid URL",
114114
"form.setupGuide": "Setup Guide",
115115
"form.wait": "Please wait a little bit more…",
116-
"form.advancedMode.label": "Advanced mode",
117-
"form.advancedMode.switchLabel": "Enable advanced mode",
118-
"form.advancedMode.tooltip": "When Advanced Mode is enabled, certain views will display additional technical information.",
119116
"form.optional": "Optional",
120117

118+
"connectionForm.settings.advancedButton": "Advanced",
121119
"connectionForm.validation.error": "The form is invalid. Please make sure that all fields are correct.",
122120
"connectionForm.normalization.title": "Normalization",
123121
"connectionForm.operations.notSupported": "Normalization and Transformation operations are not supported for this connection.",

airbyte-webapp/src/packages/cloud/locales/en.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,6 @@
108108
"settings.generalSettings.changeWorkspace": "Change Workspace",
109109
"settings.generalSettings.form.name.label": "Workspace name",
110110
"settings.generalSettings.form.name.placeholder": "Workspace name",
111-
"settings.generalSettings.form.advancedMode.label": "Advanced mode",
112-
"settings.generalSettings.form.advancedMode.switchLabel": "Enable advanced mode",
113-
"settings.generalSettings.form.advancedMode.tooltip": "When Advanced Mode is enabled, certain views will display additional technical information.",
114111
"settings.generalSettings.deleteLabel": "Delete your workspace",
115112
"settings.generalSettings.deleteText": "Delete",
116113
"settings.accessManagementSettings": "Access Management",

airbyte-webapp/src/packages/cloud/views/workspaces/WorkspaceSettingsView/WorkspaceSettingsView.tsx

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ import React from "react";
44
import { FormattedMessage, useIntl } from "react-intl";
55
import * as yup from "yup";
66

7-
import { Label, LabeledInput, LabeledSwitch } from "components";
7+
import { LabeledInput } from "components";
88
import { Button } from "components/ui/Button";
9-
import { InfoTooltip } from "components/ui/Tooltip";
109

1110
import { useTrackPage, PageTrackingCodes } from "hooks/services/Analytics";
12-
import { useAdvancedModeSetting } from "hooks/services/useAdvancedModeSetting";
1311
import { useCurrentWorkspace } from "hooks/services/useWorkspace";
1412
import {
1513
useRemoveCloudWorkspace,
@@ -20,15 +18,6 @@ import { useInvalidateWorkspace, useWorkspaceService } from "services/workspaces
2018

2119
import styles from "./WorkspaceSettingsView.module.scss";
2220

23-
const AdvancedModeSwitchLabel = () => (
24-
<>
25-
<FormattedMessage id="settings.generalSettings.form.advancedMode.switchLabel" />
26-
<InfoTooltip>
27-
<FormattedMessage id="settings.generalSettings.form.advancedMode.tooltip" />
28-
</InfoTooltip>
29-
</>
30-
);
31-
3221
const ValidationSchema = yup.object().shape({
3322
name: yup.string().required("form.empty.error"),
3423
});
@@ -41,7 +30,6 @@ export const WorkspaceSettingsView: React.FC = () => {
4130
const { mutateAsync: removeCloudWorkspace, isLoading: isRemovingCloudWorkspace } = useRemoveCloudWorkspace();
4231
const { mutateAsync: updateCloudWorkspace } = useUpdateCloudWorkspace();
4332
const invalidateWorkspace = useInvalidateWorkspace(workspace.workspaceId);
44-
const [isAdvancedMode, setAdvancedMode] = useAdvancedModeSetting();
4533

4634
return (
4735
<>
@@ -58,11 +46,9 @@ export const WorkspaceSettingsView: React.FC = () => {
5846
<Formik
5947
initialValues={{
6048
name: workspace.name,
61-
advancedMode: isAdvancedMode,
6249
}}
6350
onSubmit={async (payload) => {
6451
const { workspaceId } = workspace;
65-
setAdvancedMode(payload.advancedMode);
6652
await updateCloudWorkspace({
6753
workspaceId,
6854
name: payload.name,
@@ -72,7 +58,7 @@ export const WorkspaceSettingsView: React.FC = () => {
7258
enableReinitialize
7359
validationSchema={ValidationSchema}
7460
>
75-
{({ dirty, isSubmitting, resetForm, isValid, setFieldValue }) => (
61+
{({ dirty, isSubmitting, resetForm, isValid }) => (
7662
<Form>
7763
<Content>
7864
<Field name="name">
@@ -89,18 +75,6 @@ export const WorkspaceSettingsView: React.FC = () => {
8975
/>
9076
)}
9177
</Field>
92-
<Label className={styles.formItem}>
93-
<FormattedMessage id="settings.generalSettings.form.advancedMode.label" />
94-
</Label>
95-
<Field name="advancedMode">
96-
{({ field }: FieldProps<boolean>) => (
97-
<LabeledSwitch
98-
label={<AdvancedModeSwitchLabel />}
99-
checked={field.value}
100-
onChange={() => setFieldValue(field.name, !field.value)}
101-
/>
102-
)}
103-
</Field>
10478

10579
<div className={classNames(styles.formItem, styles.buttonGroup)}>
10680
<Button type="button" variant="secondary" disabled={!dirty} onClick={() => resetForm()}>

airbyte-webapp/src/pages/SettingsPage/pages/AccountPage/components/AccountForm.tsx

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@ import { FormattedMessage, useIntl } from "react-intl";
44
import styled from "styled-components";
55
import * as yup from "yup";
66

7-
import { Label, LabeledInput, LabeledSwitch } from "components";
7+
import { LabeledInput } from "components";
88
import { Row, Cell } from "components/SimpleTableComponents";
99
import { Button } from "components/ui/Button";
10-
import { InfoTooltip } from "components/ui/Tooltip";
11-
12-
import { useAdvancedModeSetting } from "hooks/services/useAdvancedModeSetting";
1310

1411
import styles from "./AccountForm.module.scss";
1512

@@ -36,15 +33,6 @@ const Success = styled.div`
3633
color: ${({ theme }) => theme.successColor};
3734
`;
3835

39-
const AdvancedModeSwitchLabel = () => (
40-
<>
41-
<FormattedMessage id="form.advancedMode.switchLabel" />
42-
<InfoTooltip>
43-
<FormattedMessage id="form.advancedMode.tooltip" />
44-
</InfoTooltip>
45-
</>
46-
);
47-
4836
const accountValidationSchema = yup.object().shape({
4937
email: yup.string().email("form.email.error").required("form.empty.error"),
5038
});
@@ -58,21 +46,19 @@ interface AccountFormProps {
5846

5947
const AccountForm: React.FC<AccountFormProps> = ({ email, onSubmit, successMessage, errorMessage }) => {
6048
const { formatMessage } = useIntl();
61-
const [isAdvancedMode, setAdvancedMode] = useAdvancedModeSetting();
6249

6350
return (
6451
<Formik
65-
initialValues={{ email, advancedMode: isAdvancedMode }}
52+
initialValues={{ email }}
6653
validateOnBlur
6754
validateOnChange={false}
6855
validationSchema={accountValidationSchema}
6956
enableReinitialize
7057
onSubmit={(data) => {
7158
onSubmit(data);
72-
setAdvancedMode(data.advancedMode);
7359
}}
7460
>
75-
{({ isSubmitting, dirty, values, setFieldValue }) => (
61+
{({ isSubmitting, dirty, values }) => (
7662
<EmailForm>
7763
<InputRow className={styles.formItem}>
7864
<Cell flex={3}>
@@ -91,20 +77,6 @@ const AccountForm: React.FC<AccountFormProps> = ({ email, onSubmit, successMessa
9177
</Field>
9278
</Cell>
9379
</InputRow>
94-
<div className={styles.formItem}>
95-
<Label>
96-
<FormattedMessage id="form.advancedMode.label" />
97-
</Label>
98-
<Field name="advancedMode">
99-
{({ field }: FieldProps<boolean>) => (
100-
<LabeledSwitch
101-
label={<AdvancedModeSwitchLabel />}
102-
checked={field.value}
103-
onChange={() => setFieldValue(field.name, !field.value)}
104-
/>
105-
)}
106-
</Field>
107-
</div>
10880
<div className={styles.submit}>
10981
<Button isLoading={isSubmitting} type="submit" disabled={!dirty || !values.email}>
11082
<FormattedMessage id="form.saveChanges" />

airbyte-webapp/src/pages/connections/ConnectionSettingsPage/ConnectionSettingsPage.module.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,11 @@
55
margin: 0 auto;
66
padding-bottom: variables.$spacing-md;
77
}
8+
9+
.advancedButton {
10+
margin-top: variables.$spacing-md;
11+
}
12+
13+
.advancedPanel {
14+
margin-top: variables.$spacing-sm;
15+
}

airbyte-webapp/src/pages/connections/ConnectionSettingsPage/ConnectionSettingsPage.test.tsx

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

airbyte-webapp/src/pages/connections/ConnectionSettingsPage/ConnectionSettingsPage.tsx

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1+
import { faChevronDown, faChevronRight } from "@fortawesome/free-solid-svg-icons";
2+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
3+
import { Disclosure } from "@headlessui/react";
14
import React from "react";
5+
import { FormattedMessage } from "react-intl";
26
import { Navigate } from "react-router-dom";
37

48
import { DeleteBlock } from "components/common/DeleteBlock";
59
import { UpdateConnectionDataResidency } from "components/connection/UpdateConnectionDataResidency";
10+
import { Button } from "components/ui/Button";
11+
import { Spinner } from "components/ui/Spinner";
612

713
import { ConnectionStatus } from "core/request/AirbyteClient";
814
import { PageTrackingCodes, useTrackPage } from "hooks/services/Analytics";
915
import { useConnectionEditService } from "hooks/services/ConnectionEdit/ConnectionEditService";
1016
import { FeatureItem, useFeature } from "hooks/services/Feature";
11-
import { useAdvancedModeSetting } from "hooks/services/useAdvancedModeSetting";
1217
import { useDeleteConnection } from "hooks/services/useConnectionHook";
1318

1419
import styles from "./ConnectionSettingsPage.module.scss";
@@ -22,16 +27,33 @@ export const ConnectionSettingsPageInner: React.FC = () => {
2227
// TODO: Disabled until feature is implemented in backend
2328
const canSendSchemaUpdateNotifications = false; // useFeature(FeatureItem.AllowAutoDetectSchema);
2429

25-
const [isAdvancedMode] = useAdvancedModeSetting();
2630
useTrackPage(PageTrackingCodes.CONNECTIONS_ITEM_SETTINGS);
2731
const onDelete = () => deleteConnection(connection);
2832

2933
return (
3034
<div className={styles.container}>
3135
{canSendSchemaUpdateNotifications && <SchemaUpdateNotifications />}
3236
{canUpdateDataResidency && <UpdateConnectionDataResidency />}
33-
{isAdvancedMode && <StateBlock connectionId={connection.connectionId} />}
3437
<DeleteBlock type="connection" onDelete={onDelete} />
38+
<Disclosure>
39+
{({ open }) => (
40+
<>
41+
<Disclosure.Button
42+
as={Button}
43+
variant="clear"
44+
icon={<FontAwesomeIcon icon={open ? faChevronDown : faChevronRight} />}
45+
className={styles.advancedButton}
46+
>
47+
<FormattedMessage id="connectionForm.settings.advancedButton" />
48+
</Disclosure.Button>
49+
<Disclosure.Panel className={styles.advancedPanel}>
50+
<React.Suspense fallback={<Spinner />}>
51+
<StateBlock connectionId={connection.connectionId} />
52+
</React.Suspense>
53+
</Disclosure.Panel>
54+
</>
55+
)}
56+
</Disclosure>
3557
</div>
3658
);
3759
};

0 commit comments

Comments
 (0)