From a67f43ce69e82ee3ac481e1f77859870cf9ee4b3 Mon Sep 17 00:00:00 2001 From: Dion Low Date: Mon, 13 Jan 2025 15:19:11 -0800 Subject: [PATCH 1/2] feat: add write fields ui to read tab - migrate write fields to read tab ui --- .../content/ConfigureInstallationBase.tsx | 2 + .../fields/WriteFields/WriteFieldsV3.tsx | 47 +++++++++++++++++++ src/components/Configure/state/utils.ts | 4 +- 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx diff --git a/src/components/Configure/content/ConfigureInstallationBase.tsx b/src/components/Configure/content/ConfigureInstallationBase.tsx index ab23f74a..5921d092 100644 --- a/src/components/Configure/content/ConfigureInstallationBase.tsx +++ b/src/components/Configure/content/ConfigureInstallationBase.tsx @@ -12,6 +12,7 @@ import { getReadObject } from '../utils'; import { ReadFields } from './fields/ReadFields'; import { WriteFields } from './fields/WriteFields'; +import { WriteFieldsV3 } from './fields/WriteFields/WriteFieldsV3'; import { UninstallContent } from './UninstallContent'; import { useSelectedConfigureState } from './useSelectedConfigureState'; @@ -88,6 +89,7 @@ export function ConfigureInstallationBase( )} {loading && } {hydratedRevision && !isUninstall && !isNonConfigurableWrite && } + {hydratedRevision && !isUninstall && !isNonConfigurableWrite && } {hydratedRevision && !isUninstall && isNonConfigurableWrite && } {!loading && isUninstall && } diff --git a/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx b/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx new file mode 100644 index 00000000..4d3d28be --- /dev/null +++ b/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx @@ -0,0 +1,47 @@ +import { + CheckboxField, CheckboxFieldsContainer, + CheckboxGroup, +} from 'components/ui-base/Checkbox'; +import { useInstallIntegrationProps } from 'context/InstallIntegrationContextProvider'; +import { getProviderName } from 'src/utils'; + +import { useSelectedConfigureState } from '../../useSelectedConfigureState'; +import { FieldHeader } from '../FieldHeader'; + +export function WriteFieldsV3() { + const { + appName, selectedObjectName, configureState, + } = useSelectedConfigureState(); + + const { provider } = useInstallIntegrationProps(); + const providerName = getProviderName(provider); + + const onCheckboxChange = (checked: boolean) => { + if (selectedObjectName && configureState) { + if (checked) { + console.log('support write for', selectedObjectName); + } else { + console.log('remove write support for', selectedObjectName); + } + } + }; + + const label = `${appName} creates and updates ${selectedObjectName} in ${providerName}`; + + return ( + <> + + + + onCheckboxChange(checked)} + // isChecked={!!selectedWriteFields?.[field.objectName]} + label={`Allow create and update ${selectedObjectName}`} + /> + + + + ); +} diff --git a/src/components/Configure/state/utils.ts b/src/components/Configure/state/utils.ts index 0db0534c..0b38a3f2 100644 --- a/src/components/Configure/state/utils.ts +++ b/src/components/Configure/state/utils.ts @@ -110,10 +110,12 @@ export function generateConfigurationState( const readAction = hydratedRevision?.content?.read; const writeAction = hydratedRevision?.content?.write; - return { + const configureState = { read: generateConfigurationStateRead(readAction, objectName, config), write: generateConfigurationStateWrite(writeAction, config), }; + + return configureState; } // resets configure state for single object to hydrated revision values From c41023e460b500d76a921083a3a072aad4f58a9a Mon Sep 17 00:00:00 2001 From: Dion Low Date: Mon, 13 Jan 2025 16:43:52 -0800 Subject: [PATCH 2/2] nit --- .../Configure/content/fields/WriteFields/WriteFieldsV3.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx b/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx index 4d3d28be..40897252 100644 --- a/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx +++ b/src/components/Configure/content/fields/WriteFields/WriteFieldsV3.tsx @@ -19,9 +19,9 @@ export function WriteFieldsV3() { const onCheckboxChange = (checked: boolean) => { if (selectedObjectName && configureState) { if (checked) { - console.log('support write for', selectedObjectName); + // console.log('support write for', selectedObjectName); } else { - console.log('remove write support for', selectedObjectName); + // console.log('remove write support for', selectedObjectName); } } };