@amp-labs/react 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +6 -105
  2. package/build/generated-sources/api/src/apis/DefaultApi.d.ts +48 -2
  3. package/build/generated-sources/api/src/apis/DefaultApi.js +51 -1
  4. package/build/generated-sources/api/src/models/BaseConfigContent.d.ts +8 -1
  5. package/build/generated-sources/api/src/models/BaseConfigContent.js +4 -1
  6. package/build/generated-sources/api/src/models/BaseReadConfig.d.ts +1 -1
  7. package/build/generated-sources/api/src/models/BaseReadConfig.js +1 -1
  8. package/build/generated-sources/api/src/models/BaseReadConfigStandardObject.d.ts +2 -2
  9. package/build/generated-sources/api/src/models/BaseReadConfigStandardObject.js +1 -1
  10. package/build/generated-sources/api/src/models/BaseWriteConfig.d.ts +34 -0
  11. package/build/generated-sources/api/src/models/BaseWriteConfig.js +51 -0
  12. package/build/generated-sources/api/src/models/BaseWriteConfigObject.d.ts +31 -0
  13. package/build/generated-sources/api/src/models/BaseWriteConfigObject.js +50 -0
  14. package/build/generated-sources/api/src/models/BatchUpsertIntegrationsRequest.d.ts +1 -1
  15. package/build/generated-sources/api/src/models/BatchUpsertIntegrationsRequest.js +1 -1
  16. package/build/generated-sources/api/src/models/Config.d.ts +1 -1
  17. package/build/generated-sources/api/src/models/Config.js +1 -1
  18. package/build/generated-sources/api/src/models/ConfigContent.d.ts +7 -1
  19. package/build/generated-sources/api/src/models/ConfigContent.js +3 -1
  20. package/build/generated-sources/api/src/models/ConfigContentAllOf.d.ts +7 -1
  21. package/build/generated-sources/api/src/models/ConfigContentAllOf.js +3 -1
  22. package/build/generated-sources/api/src/models/Connection.d.ts +1 -1
  23. package/build/generated-sources/api/src/models/Connection.js +1 -1
  24. package/build/generated-sources/api/src/models/Consumer.d.ts +1 -1
  25. package/build/generated-sources/api/src/models/Consumer.js +1 -1
  26. package/build/generated-sources/api/src/models/CreateConsumerRequest.d.ts +1 -1
  27. package/build/generated-sources/api/src/models/CreateConsumerRequest.js +1 -1
  28. package/build/generated-sources/api/src/models/CreateDestinationRequest.d.ts +1 -1
  29. package/build/generated-sources/api/src/models/CreateDestinationRequest.js +1 -1
  30. package/build/generated-sources/api/src/models/CreateDestinationRequestMetadata.d.ts +1 -1
  31. package/build/generated-sources/api/src/models/CreateDestinationRequestMetadata.js +1 -1
  32. package/build/generated-sources/api/src/models/CreateGroupRequest.d.ts +1 -1
  33. package/build/generated-sources/api/src/models/CreateGroupRequest.js +1 -1
  34. package/build/generated-sources/api/src/models/CreateInstallationRequest.d.ts +1 -1
  35. package/build/generated-sources/api/src/models/CreateInstallationRequest.js +1 -1
  36. package/build/generated-sources/api/src/models/CreateInstallationRequestConfig.d.ts +1 -1
  37. package/build/generated-sources/api/src/models/CreateInstallationRequestConfig.js +1 -1
  38. package/build/generated-sources/api/src/models/CreateIntegrationRequest.d.ts +1 -1
  39. package/build/generated-sources/api/src/models/CreateIntegrationRequest.js +1 -1
  40. package/build/generated-sources/api/src/models/CreateIntegrationRequestLatestRevision.d.ts +1 -1
  41. package/build/generated-sources/api/src/models/CreateIntegrationRequestLatestRevision.js +1 -1
  42. package/build/generated-sources/api/src/models/CreateProjectRequest.d.ts +1 -1
  43. package/build/generated-sources/api/src/models/CreateProjectRequest.js +1 -1
  44. package/build/generated-sources/api/src/models/CreateProviderAppRequest.d.ts +7 -1
  45. package/build/generated-sources/api/src/models/CreateProviderAppRequest.js +3 -1
  46. package/build/generated-sources/api/src/models/Group.d.ts +1 -1
  47. package/build/generated-sources/api/src/models/Group.js +1 -1
  48. package/build/generated-sources/api/src/models/HydratedIntegration.d.ts +8 -1
  49. package/build/generated-sources/api/src/models/HydratedIntegration.js +4 -1
  50. package/build/generated-sources/api/src/models/HydratedIntegrationField.d.ts +1 -1
  51. package/build/generated-sources/api/src/models/HydratedIntegrationField.js +1 -1
  52. package/build/generated-sources/api/src/models/HydratedIntegrationFieldExistent.d.ts +1 -1
  53. package/build/generated-sources/api/src/models/HydratedIntegrationFieldExistent.js +1 -1
  54. package/build/generated-sources/api/src/models/HydratedIntegrationObject.d.ts +1 -1
  55. package/build/generated-sources/api/src/models/HydratedIntegrationObject.js +1 -1
  56. package/build/generated-sources/api/src/models/HydratedIntegrationRead.d.ts +1 -1
  57. package/build/generated-sources/api/src/models/HydratedIntegrationRead.js +1 -1
  58. package/build/generated-sources/api/src/models/HydratedIntegrationWrite.d.ts +32 -0
  59. package/build/generated-sources/api/src/models/HydratedIntegrationWrite.js +51 -0
  60. package/build/generated-sources/api/src/models/HydratedIntegrationWriteObject.d.ts +37 -0
  61. package/build/generated-sources/api/src/models/HydratedIntegrationWriteObject.js +53 -0
  62. package/build/generated-sources/api/src/models/HydratedRevision.d.ts +1 -1
  63. package/build/generated-sources/api/src/models/HydratedRevision.js +1 -1
  64. package/build/generated-sources/api/src/models/ImportConnectionRequest.d.ts +1 -7
  65. package/build/generated-sources/api/src/models/ImportConnectionRequest.js +1 -4
  66. package/build/generated-sources/api/src/models/ImportInstallationRequest.d.ts +7 -1
  67. package/build/generated-sources/api/src/models/ImportInstallationRequest.js +4 -1
  68. package/build/generated-sources/api/src/models/ImportInstallationRequestConfig.d.ts +1 -1
  69. package/build/generated-sources/api/src/models/ImportInstallationRequestConfig.js +1 -1
  70. package/build/generated-sources/api/src/models/Installation.d.ts +1 -1
  71. package/build/generated-sources/api/src/models/Installation.js +1 -1
  72. package/build/generated-sources/api/src/models/Integration.d.ts +1 -1
  73. package/build/generated-sources/api/src/models/Integration.js +1 -1
  74. package/build/generated-sources/api/src/models/Integration1.d.ts +8 -1
  75. package/build/generated-sources/api/src/models/Integration1.js +4 -1
  76. package/build/generated-sources/api/src/models/IntegrationField.d.ts +1 -1
  77. package/build/generated-sources/api/src/models/IntegrationField.js +1 -1
  78. package/build/generated-sources/api/src/models/IntegrationFieldExistent.d.ts +1 -1
  79. package/build/generated-sources/api/src/models/IntegrationFieldExistent.js +1 -1
  80. package/build/generated-sources/api/src/models/IntegrationFieldMapping.d.ts +1 -1
  81. package/build/generated-sources/api/src/models/IntegrationFieldMapping.js +1 -1
  82. package/build/generated-sources/api/src/models/IntegrationObject.d.ts +1 -1
  83. package/build/generated-sources/api/src/models/IntegrationObject.js +1 -1
  84. package/build/generated-sources/api/src/models/IntegrationRead.d.ts +1 -1
  85. package/build/generated-sources/api/src/models/IntegrationRead.js +1 -1
  86. package/build/generated-sources/api/src/models/IntegrationWrite.d.ts +32 -0
  87. package/build/generated-sources/api/src/models/IntegrationWrite.js +51 -0
  88. package/build/generated-sources/api/src/models/IntegrationWriteObject.d.ts +31 -0
  89. package/build/generated-sources/api/src/models/IntegrationWriteObject.js +50 -0
  90. package/build/generated-sources/api/src/models/OauthConnectRequest.d.ts +1 -1
  91. package/build/generated-sources/api/src/models/OauthConnectRequest.js +1 -1
  92. package/build/generated-sources/api/src/models/Operation.d.ts +1 -1
  93. package/build/generated-sources/api/src/models/Operation.js +1 -1
  94. package/build/generated-sources/api/src/models/OperationError.d.ts +1 -1
  95. package/build/generated-sources/api/src/models/OperationError.js +1 -1
  96. package/build/generated-sources/api/src/models/OptionalFieldsAutoOption.d.ts +1 -1
  97. package/build/generated-sources/api/src/models/OptionalFieldsAutoOption.js +1 -1
  98. package/build/generated-sources/api/src/models/Project.d.ts +1 -1
  99. package/build/generated-sources/api/src/models/Project.js +1 -1
  100. package/build/generated-sources/api/src/models/ProjectMembership.d.ts +1 -1
  101. package/build/generated-sources/api/src/models/ProjectMembership.js +1 -1
  102. package/build/generated-sources/api/src/models/ProviderApp.d.ts +1 -1
  103. package/build/generated-sources/api/src/models/ProviderApp.js +1 -1
  104. package/build/generated-sources/api/src/models/Revision.d.ts +1 -1
  105. package/build/generated-sources/api/src/models/Revision.js +1 -1
  106. package/build/generated-sources/api/src/models/SignedUrl.d.ts +43 -0
  107. package/build/generated-sources/api/src/models/SignedUrl.js +56 -0
  108. package/build/generated-sources/api/src/models/UpdateInstallationConfigContent.d.ts +8 -1
  109. package/build/generated-sources/api/src/models/UpdateInstallationConfigContent.js +4 -1
  110. package/build/generated-sources/api/src/models/UpdateInstallationRequest.d.ts +1 -1
  111. package/build/generated-sources/api/src/models/UpdateInstallationRequest.js +1 -1
  112. package/build/generated-sources/api/src/models/UpdateInstallationRequestInstallation.d.ts +1 -1
  113. package/build/generated-sources/api/src/models/UpdateInstallationRequestInstallation.js +1 -1
  114. package/build/generated-sources/api/src/models/UpdateInstallationRequestInstallationConfig.d.ts +1 -1
  115. package/build/generated-sources/api/src/models/UpdateInstallationRequestInstallationConfig.js +1 -1
  116. package/build/generated-sources/api/src/models/UpdateProjectRequest.d.ts +1 -1
  117. package/build/generated-sources/api/src/models/UpdateProjectRequest.js +1 -1
  118. package/build/generated-sources/api/src/models/UpdateProjectRequestProject.d.ts +1 -1
  119. package/build/generated-sources/api/src/models/UpdateProjectRequestProject.js +1 -1
  120. package/build/generated-sources/api/src/models/UpdateProviderAppRequest.d.ts +1 -1
  121. package/build/generated-sources/api/src/models/UpdateProviderAppRequest.js +1 -1
  122. package/build/generated-sources/api/src/models/UpdateProviderAppRequestProviderApp.d.ts +7 -1
  123. package/build/generated-sources/api/src/models/UpdateProviderAppRequestProviderApp.js +3 -1
  124. package/build/generated-sources/api/src/models/UpsertProjectMembershipRequest.d.ts +1 -1
  125. package/build/generated-sources/api/src/models/UpsertProjectMembershipRequest.js +1 -1
  126. package/build/generated-sources/api/src/models/index.d.ts +7 -0
  127. package/build/generated-sources/api/src/models/index.js +7 -0
  128. package/build/generated-sources/api/src/runtime.d.ts +1 -1
  129. package/build/generated-sources/api/src/runtime.js +1 -1
  130. package/build/src/assets/NavIcon.d.ts +1 -0
  131. package/build/src/assets/NavIcon.js +3 -2
  132. package/build/src/assets/TrashIcon.d.ts +1 -0
  133. package/build/src/assets/TrashIcon.js +9 -0
  134. package/build/src/components/AmpersandProvider/AmpersandProvider.js +2 -2
  135. package/build/src/components/Configure/ConfigureInstallationBase.js +14 -2
  136. package/build/src/components/Configure/CreateInstallation.js +11 -14
  137. package/build/src/components/Configure/InstallIntegration.js +1 -2
  138. package/build/src/components/Configure/ObjectManagementNav/UninstallInstallation.d.ts +7 -0
  139. package/build/src/components/Configure/ObjectManagementNav/UninstallInstallation.js +15 -0
  140. package/build/src/components/Configure/ObjectManagementNav/index.js +13 -6
  141. package/build/src/components/Configure/ProtectedConnectionLayout.d.ts +7 -2
  142. package/build/src/components/Configure/ProtectedConnectionLayout.js +10 -5
  143. package/build/src/components/Configure/UninstallContent.d.ts +1 -0
  144. package/build/src/components/Configure/UninstallContent.js +37 -0
  145. package/build/src/components/Configure/UpdateInstallation.js +10 -21
  146. package/build/src/components/Configure/fields/{FieldMapping.d.ts → FieldMappings/FieldMapping.d.ts} +2 -3
  147. package/build/src/components/Configure/fields/{FieldMapping.js → FieldMappings/FieldMapping.js} +12 -11
  148. package/build/src/components/Configure/fields/{RequiredFieldMappings.js → FieldMappings/RequiredFieldMappings.js} +9 -9
  149. package/build/src/components/Configure/fields/FieldMappings/index.d.ts +3 -0
  150. package/build/src/components/Configure/fields/FieldMappings/index.js +7 -0
  151. package/build/src/components/Configure/fields/FieldMappings/setFieldMapping.d.ts +3 -0
  152. package/build/src/components/Configure/fields/FieldMappings/setFieldMapping.js +18 -0
  153. package/build/src/components/Configure/fields/{OptionalFields.js → OptionalFields/OptionalFields.js} +8 -19
  154. package/build/src/components/Configure/fields/OptionalFields/index.d.ts +2 -0
  155. package/build/src/components/Configure/fields/OptionalFields/index.js +5 -0
  156. package/build/src/components/Configure/fields/OptionalFields/setOptionalField.d.ts +3 -0
  157. package/build/src/components/Configure/fields/OptionalFields/setOptionalField.js +21 -0
  158. package/build/src/components/Configure/state/ConfigurationStateProvider.d.ts +47 -1
  159. package/build/src/components/Configure/state/ConfigurationStateProvider.js +28 -6
  160. package/build/src/components/Configure/state/HydratedRevisionContext.js +3 -6
  161. package/build/src/components/Configure/state/utils.d.ts +4 -16
  162. package/build/src/components/Configure/state/utils.js +28 -63
  163. package/build/src/components/Configure/types.d.ts +6 -9
  164. package/build/src/components/Configure/utils.d.ts +6 -4
  165. package/build/src/components/Configure/utils.js +17 -16
  166. package/build/src/components/Connect/ConnectProvider.d.ts +9 -0
  167. package/build/src/components/Connect/ConnectProvider.js +18 -0
  168. package/build/src/components/{OAuthPopup → Connect}/OAuthPopup.js +3 -3
  169. package/build/src/components/Salesforce/SalesforceOauthFlow.js +41 -30
  170. package/build/src/components/ThemeProvider/Button/buttonTheme.d.ts +13 -0
  171. package/build/src/components/ThemeProvider/Button/buttonTheme.js +17 -0
  172. package/build/src/components/ThemeProvider/Button/index.d.ts +2 -0
  173. package/build/src/components/ThemeProvider/Button/index.js +5 -0
  174. package/build/src/components/ThemeProvider/index.js +21 -0
  175. package/build/src/components/index.d.ts +1 -0
  176. package/build/src/components/index.js +1 -0
  177. package/build/src/context/{ApiKeyContext.d.ts → ApiKeyProvider.d.ts} +1 -0
  178. package/build/src/context/ApiKeyProvider.js +14 -0
  179. package/build/src/context/ConnectionsContext.d.ts +5 -4
  180. package/build/src/context/ConnectionsContext.js +13 -5
  181. package/build/src/context/InstallIntegrationContext.d.ts +1 -0
  182. package/build/src/context/InstallIntegrationContext.js +15 -10
  183. package/build/src/context/IntegrationListContext.js +3 -3
  184. package/build/src/context/ProjectContext.js +3 -3
  185. package/build/src/hooks/useIsIntegrationInstalled.js +2 -2
  186. package/package.json +4 -3
  187. package/build/src/context/ApiKeyContext.js +0 -6
  188. /package/build/src/components/Configure/fields/{RequiredFieldMappings.d.ts → FieldMappings/RequiredFieldMappings.d.ts} +0 -0
  189. /package/build/src/components/Configure/fields/{OptionalFields.d.ts → OptionalFields/OptionalFields.d.ts} +0 -0
  190. /package/build/src/components/{OAuthPopup → Connect}/OAuthPopup.d.ts +0 -0
@@ -1,2 +1,3 @@
1
1
  export * from './AmpersandProvider';
2
2
  export * from './Configure';
3
+ export * from './Connect/ConnectProvider';
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./AmpersandProvider"), exports);
18
18
  __exportStar(require("./Configure"), exports);
19
+ __exportStar(require("./Connect/ConnectProvider"), exports);
@@ -1,3 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  export declare const ApiKeyContext: import("react").Context<string | null>;
3
3
  export declare const ApiKeyProvider: import("react").Provider<string | null>;
4
+ export declare const useApiKey: () => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useApiKey = exports.ApiKeyProvider = exports.ApiKeyContext = void 0;
4
+ const react_1 = require("react");
5
+ exports.ApiKeyContext = (0, react_1.createContext)(null);
6
+ exports.ApiKeyProvider = exports.ApiKeyContext.Provider;
7
+ const useApiKey = () => {
8
+ const apiKey = (0, react_1.useContext)(exports.ApiKeyContext);
9
+ if (apiKey === null) {
10
+ throw new Error('useApiKey must be used within an ApiKeyProvider');
11
+ }
12
+ return apiKey;
13
+ };
14
+ exports.useApiKey = useApiKey;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { Connection } from '../services/api';
3
3
  interface ConnectionsContextValue {
4
4
  connections: Connection[] | null;
@@ -6,11 +6,12 @@ interface ConnectionsContextValue {
6
6
  setConnections: React.Dispatch<React.SetStateAction<Connection[] | null>>;
7
7
  setSelectedConnection: React.Dispatch<React.SetStateAction<Connection | null>>;
8
8
  }
9
- export declare const ConnectionsContext: React.Context<ConnectionsContextValue>;
9
+ export declare const ConnectionsContext: import("react").Context<ConnectionsContextValue>;
10
10
  export declare const useConnections: () => ConnectionsContextValue;
11
11
  type ConnectionsProviderProps = {
12
- projectId: string;
12
+ provider?: string;
13
+ groupRef: string;
13
14
  children?: React.ReactNode;
14
15
  };
15
- export declare function ConnectionsProvider({ projectId, children, }: ConnectionsProviderProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ConnectionsProvider({ provider, groupRef, children, }: ConnectionsProviderProps): import("react/jsx-runtime").JSX.Element;
16
17
  export {};
@@ -6,9 +6,10 @@ const react_1 = require("react");
6
6
  const LoadingIcon_1 = require("../assets/LoadingIcon");
7
7
  const ErrorTextBox_1 = require("../components/Configure/ErrorTextBox");
8
8
  const api_1 = require("../services/api");
9
- const ApiKeyContext_1 = require("./ApiKeyContext");
9
+ const ApiKeyProvider_1 = require("./ApiKeyProvider");
10
10
  const ErrorContextProvider_1 = require("./ErrorContextProvider");
11
11
  const InstallIntegrationContext_1 = require("./InstallIntegrationContext");
12
+ const ProjectContext_1 = require("./ProjectContext");
12
13
  exports.ConnectionsContext = (0, react_1.createContext)({
13
14
  connections: null,
14
15
  selectedConnection: null,
@@ -18,18 +19,25 @@ exports.ConnectionsContext = (0, react_1.createContext)({
18
19
  const useConnections = () => {
19
20
  const context = (0, react_1.useContext)(exports.ConnectionsContext);
20
21
  if (!context) {
21
- throw new Error('useConnections must be used within a ConnectionsListProvider');
22
+ throw new Error('useConnections must be used within a ConnectionsProvider');
22
23
  }
23
24
  return context;
24
25
  };
25
26
  exports.useConnections = useConnections;
26
- function ConnectionsProvider({ projectId, children, }) {
27
- const { groupRef, provider } = (0, InstallIntegrationContext_1.useInstallIntegrationProps)();
27
+ function ConnectionsProvider({ provider, groupRef, children, }) {
28
+ const apiKey = (0, ApiKeyProvider_1.useApiKey)();
29
+ const { projectId } = (0, ProjectContext_1.useProject)();
28
30
  const [connections, setConnections] = (0, react_1.useState)(null);
29
31
  const [selectedConnection, setSelectedConnection] = (0, react_1.useState)(null);
30
- const apiKey = (0, react_1.useContext)(ApiKeyContext_1.ApiKeyContext);
31
32
  const [isLoading, setLoadingState] = (0, react_1.useState)(true);
32
33
  const { setError, isError } = (0, ErrorContextProvider_1.useErrorState)();
34
+ const { provider: providerFromProps } = (0, InstallIntegrationContext_1.useInstallIntegrationProps)();
35
+ if (!projectId) {
36
+ throw new Error('ConnectionsProvider must be used within AmpersandProvider');
37
+ }
38
+ if (!provider && !providerFromProps) {
39
+ throw new Error('ConnectionsProvider must be given a provider prop or be used within InstallIntegrationProvider');
40
+ }
33
41
  (0, react_1.useEffect)(() => {
34
42
  (0, api_1.api)().listConnections({ projectId, groupRef, provider }, {
35
43
  headers: {
@@ -10,6 +10,7 @@ interface InstallIntegrationContextValue {
10
10
  groupName?: string;
11
11
  installation?: Installation;
12
12
  setInstallation: (installationObj: Installation) => void;
13
+ resetInstallations: () => void;
13
14
  }
14
15
  export declare function useInstallIntegrationProps(): InstallIntegrationContextValue;
15
16
  interface InstallIntegrationProviderProps {
@@ -7,7 +7,7 @@ const LoadingIcon_1 = require("../assets/LoadingIcon");
7
7
  const ErrorTextBox_1 = require("../components/Configure/ErrorTextBox");
8
8
  const api_1 = require("../services/api");
9
9
  const utils_1 = require("../utils");
10
- const ApiKeyContext_1 = require("./ApiKeyContext");
10
+ const ApiKeyProvider_1 = require("./ApiKeyProvider");
11
11
  const ErrorContextProvider_1 = require("./ErrorContextProvider");
12
12
  const IntegrationListContext_1 = require("./IntegrationListContext");
13
13
  const ProjectContext_1 = require("./ProjectContext");
@@ -22,6 +22,7 @@ const InstallIntegrationContext = (0, react_1.createContext)({
22
22
  groupName: '',
23
23
  installation: undefined,
24
24
  setInstallation: () => { },
25
+ resetInstallations: () => { },
25
26
  });
26
27
  // Create a custom hook to access the props
27
28
  function useInstallIntegrationProps() {
@@ -34,14 +35,14 @@ function useInstallIntegrationProps() {
34
35
  exports.useInstallIntegrationProps = useInstallIntegrationProps;
35
36
  // Wrap your parent component with the context provider
36
37
  function InstallIntegrationProvider({ children, integration, consumerRef, consumerName, groupRef, groupName, }) {
38
+ const apiKey = (0, ApiKeyProvider_1.useApiKey)();
37
39
  const { projectId } = (0, ProjectContext_1.useProject)();
38
- const [installations, setInstallations] = (0, react_1.useState)([]);
39
- const installation = (installations === null || installations === void 0 ? void 0 : installations[0]) || null; // there should only be one installation for mvp
40
- const apiKey = (0, react_1.useContext)(ApiKeyContext_1.ApiKeyContext);
41
40
  const { integrations } = (0, IntegrationListContext_1.useIntegrationList)();
42
- const integrationObj = (0, react_1.useMemo)(() => (0, utils_1.findIntegrationFromList)(integration, integrations || []), [integration, integrations]);
41
+ const [installations, setInstallations] = (0, react_1.useState)([]);
43
42
  const [isLoading, setLoadingState] = (0, react_1.useState)(true);
44
43
  const { setError, isError } = (0, ErrorContextProvider_1.useErrorState)();
44
+ const installation = (installations === null || installations === void 0 ? void 0 : installations[0]) || null; // there should only be one installation for mvp
45
+ const integrationObj = (0, react_1.useMemo)(() => (0, utils_1.findIntegrationFromList)(integration, integrations || []), [integration, integrations]);
45
46
  (0, react_1.useEffect)(() => {
46
47
  if (integrationObj === null && (integrations === null || integrations === void 0 ? void 0 : integrations.length)) {
47
48
  console.error(`Integration "${integration}" not found in integration list`);
@@ -52,9 +53,7 @@ function InstallIntegrationProvider({ children, integration, consumerRef, consum
52
53
  const setInstallation = (0, react_1.useCallback)((installationObj) => {
53
54
  setInstallations([installationObj]);
54
55
  }, [setInstallations]);
55
- const integrationErrorKey = (integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.id) || '';
56
- // check if integration has been installed in AmpersandProvider
57
- (0, react_1.useEffect)(() => {
56
+ const resetInstallations = (0, react_1.useCallback)(() => {
58
57
  if (integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.id) {
59
58
  // check if installation exists on selected integration
60
59
  (0, api_1.api)().listInstallations({ projectId, integrationId: integrationObj.id, groupRef }, {
@@ -72,7 +71,12 @@ function InstallIntegrationProvider({ children, integration, consumerRef, consum
72
71
  console.error('Error retrieving installation information: ', err);
73
72
  });
74
73
  }
75
- }, [projectId, integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.id, apiKey, groupRef, setError]);
74
+ }, [integrationObj, projectId, apiKey, setError, groupRef]);
75
+ const integrationErrorKey = (integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.id) || '';
76
+ // check if integration has been installed in AmpersandProvider
77
+ (0, react_1.useEffect)(() => {
78
+ resetInstallations();
79
+ }, [resetInstallations]);
76
80
  const props = (0, react_1.useMemo)(() => ({
77
81
  integrationId: (integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.id) || '',
78
82
  provider: (integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.provider) || '',
@@ -83,8 +87,9 @@ function InstallIntegrationProvider({ children, integration, consumerRef, consum
83
87
  groupName,
84
88
  installation,
85
89
  setInstallation,
90
+ resetInstallations,
86
91
  }), [integrationObj, consumerRef, consumerName, groupRef,
87
- groupName, installation, setInstallation]);
92
+ groupName, installation, setInstallation, resetInstallations]);
88
93
  return (isError(ErrorContextProvider_1.ErrorBoundary.INSTALLATION_LIST, integrationErrorKey)) ? (0, jsx_runtime_1.jsx)(ErrorTextBox_1.ErrorTextBox, { message: `Error retrieving installation information for integration "${(integrationObj === null || integrationObj === void 0 ? void 0 : integrationObj.name) || 'unknown'}"` }) : ((0, jsx_runtime_1.jsx)(InstallIntegrationContext.Provider, { value: props, children: isLoading ? (0, jsx_runtime_1.jsx)(LoadingIcon_1.LoadingIcon, {}) : children }));
89
94
  }
90
95
  exports.InstallIntegrationProvider = InstallIntegrationProvider;
@@ -6,7 +6,7 @@ const react_1 = require("react");
6
6
  const LoadingIcon_1 = require("../assets/LoadingIcon");
7
7
  const ErrorTextBox_1 = require("../components/Configure/ErrorTextBox");
8
8
  const api_1 = require("../services/api");
9
- const ApiKeyContext_1 = require("./ApiKeyContext");
9
+ const ApiKeyProvider_1 = require("./ApiKeyProvider");
10
10
  const ErrorContextProvider_1 = require("./ErrorContextProvider");
11
11
  exports.IntegrationListContext = (0, react_1.createContext)({
12
12
  integrations: null,
@@ -20,9 +20,9 @@ const useIntegrationList = () => {
20
20
  };
21
21
  exports.useIntegrationList = useIntegrationList;
22
22
  function IntegrationListProvider({ projectId, children }) {
23
- const [integrations, setIntegrations] = (0, react_1.useState)(null);
24
- const apiKey = (0, react_1.useContext)(ApiKeyContext_1.ApiKeyContext);
23
+ const apiKey = (0, ApiKeyProvider_1.useApiKey)();
25
24
  const { setError, isError } = (0, ErrorContextProvider_1.useErrorState)();
25
+ const [integrations, setIntegrations] = (0, react_1.useState)(null);
26
26
  const [isLoading, setLoadingState] = (0, react_1.useState)(true);
27
27
  (0, react_1.useEffect)(() => {
28
28
  (0, api_1.api)().listIntegrations({ projectId }, {
@@ -6,7 +6,7 @@ const react_1 = require("react");
6
6
  const LoadingIcon_1 = require("../assets/LoadingIcon");
7
7
  const ErrorTextBox_1 = require("../components/Configure/ErrorTextBox");
8
8
  const api_1 = require("../services/api");
9
- const ApiKeyContext_1 = require("./ApiKeyContext");
9
+ const ApiKeyProvider_1 = require("./ApiKeyProvider");
10
10
  const ErrorContextProvider_1 = require("./ErrorContextProvider");
11
11
  exports.ProjectContext = (0, react_1.createContext)({
12
12
  project: null,
@@ -22,10 +22,10 @@ const useProject = () => {
22
22
  };
23
23
  exports.useProject = useProject;
24
24
  function ProjectProvider({ projectId, children }) {
25
+ const apiKey = (0, ApiKeyProvider_1.useApiKey)();
26
+ const { isError, setError } = (0, ErrorContextProvider_1.useErrorState)();
25
27
  const [project, setProject] = (0, react_1.useState)(null);
26
- const apiKey = (0, react_1.useContext)(ApiKeyContext_1.ApiKeyContext);
27
28
  const [isLoading, setLoadingState] = (0, react_1.useState)(true);
28
- const { isError, setError } = (0, ErrorContextProvider_1.useErrorState)();
29
29
  (0, react_1.useEffect)(() => {
30
30
  (0, api_1.api)().getProject({ projectId }, {
31
31
  headers: {
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useIsIntegrationInstalled = void 0;
4
4
  const react_1 = require("react");
5
- const ApiKeyContext_1 = require("../context/ApiKeyContext");
5
+ const ApiKeyProvider_1 = require("../context/ApiKeyProvider");
6
6
  const IntegrationListContext_1 = require("../context/IntegrationListContext");
7
7
  const ProjectContext_1 = require("../context/ProjectContext");
8
8
  const api_1 = require("../services/api");
9
9
  const useIsIntegrationInstalled = (integration, groupRef) => {
10
- const apiKey = (0, react_1.useContext)(ApiKeyContext_1.ApiKeyContext);
10
+ const apiKey = (0, ApiKeyProvider_1.useApiKey)();
11
11
  const { projectId } = (0, ProjectContext_1.useProject)();
12
12
  const { integrations } = (0, IntegrationListContext_1.useIntegrationList)();
13
13
  const [isLoaded, setIsLoaded] = (0, react_1.useState)(false);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@amp-labs/react",
3
- "version": "1.0.0",
4
- "description": "Ampersand React library.",
3
+ "version": "1.0.2",
4
+ "description": "Ampersand React library",
5
5
  "author": {
6
6
  "name": "Ampersand Labs",
7
7
  "url": "http://withampersand.com"
@@ -56,7 +56,7 @@
56
56
  "eslint-config-airbnb": "^19.0.4",
57
57
  "eslint-config-airbnb-typescript": "^17.1.0",
58
58
  "eslint-plugin-import": "^2.29.0",
59
- "eslint-plugin-jsx-a11y": "^6.7.1",
59
+ "eslint-plugin-jsx-a11y": "^6.8.0",
60
60
  "eslint-plugin-n": "^16.2.0",
61
61
  "eslint-plugin-promise": "^6.1.1",
62
62
  "eslint-plugin-react": "^7.33.2",
@@ -75,6 +75,7 @@
75
75
  },
76
76
  "dependencies": {
77
77
  "@chakra-ui/icons": "^2.1.1",
78
+ "immer": "^10.0.3",
78
79
  "lodash.isequal": "^4.5.0"
79
80
  }
80
81
  }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiKeyProvider = exports.ApiKeyContext = void 0;
4
- const react_1 = require("react");
5
- exports.ApiKeyContext = (0, react_1.createContext)(null);
6
- exports.ApiKeyProvider = exports.ApiKeyContext.Provider;