Skip to content

Commit 8fca295

Browse files
feat: support exporting data to platform without integration
1 parent 123884c commit 8fca295

4 files changed

Lines changed: 36 additions & 21 deletions

File tree

client/eslint.config.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ const jsRules = {
9393
"dropdown",
9494
"dropzone",
9595
"enum",
96+
"envi",
97+
"envidat",
9698
"etag",
9799
"favicon",
98100
"fetchable",

client/src/features/dataConnectorsV2/deposits/DepositCreationModal.tsx

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
useGetOauth2ConnectionsQuery,
2323
useGetOauth2ProvidersQuery,
2424
} from "~/features/connectedServices/api/connectedServices.api";
25-
import { DataConnectorRead } from "../api/data-connectors.api";
25+
import { DataConnectorRead, DepositProvider } from "../api/data-connectors.api";
2626
import { usePostDepositsMutation } from "../api/data-connectors.enhanced-api";
2727
import DepositIntegrationInfo from "./DepositIntegrationInfo";
2828
import { PROVIDER_OPTIONS } from "./deposits.constants";
@@ -50,26 +50,29 @@ export default function DepositCreationModal({
5050
});
5151
const [postDeposit, result] = usePostDepositsMutation();
5252

53-
// Fetch connection information for the selected provider
53+
// Fetch connection information for the selected provider if necessary
5454
const userSelectedProvider = useWatch({
5555
control,
5656
name: "provider",
5757
});
58-
const targetProviderString = ["zenodo"].includes(userSelectedProvider)
59-
? userSelectedProvider
60-
: null;
58+
const targetProviderIntegration = PROVIDER_OPTIONS.find(
59+
(provider) =>
60+
provider.value === userSelectedProvider && provider.integration,
61+
)?.integration;
6162

6263
const {
6364
data: providers,
6465
error: providersError,
6566
isLoading: isLoadingProviders,
66-
} = useGetOauth2ProvidersQuery(targetProviderString ? undefined : skipToken);
67+
} = useGetOauth2ProvidersQuery(
68+
targetProviderIntegration ? undefined : skipToken,
69+
);
6770

6871
const targetProvider = useMemo(() => {
6972
return providers?.find(
70-
(provider) => provider.kind === targetProviderString,
73+
(provider) => provider.kind === targetProviderIntegration,
7174
);
72-
}, [providers, targetProviderString]);
75+
}, [providers, targetProviderIntegration]);
7376

7477
const {
7578
data: connections,
@@ -92,7 +95,7 @@ export default function DepositCreationModal({
9295
data_connector_id: dataConnector?.id ?? "",
9396
name: data.name,
9497
path: data.path,
95-
provider: data.provider,
98+
provider: data.provider as DepositProvider, // ! Temp -- remove
9699
},
97100
});
98101
},
@@ -216,14 +219,16 @@ export default function DepositCreationModal({
216219
Different platforms might have different
217220
limitations/requirements.
218221
</FormText>
219-
<div className="mt-1">
220-
<DepositIntegrationInfo
221-
connection={targetConnection}
222-
isError={!!error}
223-
isLoading={isLoading}
224-
provider={targetProvider}
225-
/>
226-
</div>
222+
{targetProviderIntegration && (
223+
<div className="mt-1">
224+
<DepositIntegrationInfo
225+
connection={targetConnection}
226+
isError={!!error}
227+
isLoading={isLoading}
228+
provider={targetProvider}
229+
/>
230+
</div>
231+
)}
227232
</div>
228233
</FormGroup>
229234

client/src/features/dataConnectorsV2/deposits/deposits.constants.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { ProviderOption } from "./deposits.types";
33
export const POLL_TIME_INACTIVE_DEPOSITS = 60_000;
44
export const POLL_TIME_ACTIVE_DEPOSITS = 5_000;
55
export const PROVIDER_OPTIONS: ProviderOption[] = [
6-
{ value: "zenodo", label: "Zenodo" },
6+
{ value: "zenodo", label: "Zenodo", integration: "zenodo" },
7+
{ value: "envidat", label: "EnviDat", integration: undefined },
78
];
8-
export const LAST_DEPOSIT_QUERY_PARAMS = { page: 1, per_page: 1 }; // We only consider the last deposit for now
9+
// ? We only consider the last deposit for now
10+
export const LAST_DEPOSIT_QUERY_PARAMS = { page: 1, per_page: 1 };
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
import { DepositProvider, DepositStatus } from "../api/data-connectors.api";
22

3+
type DepositProviders = DepositProvider | "envidat";
4+
35
export interface CreateDepositionForm {
46
name: string;
57
path: string;
6-
provider: DepositProvider;
8+
provider: DepositProviders;
79
}
810
export interface EditDepositionForm {
911
name: string;
1012
path: string;
1113
status: DepositStatus;
1214
}
13-
export type ProviderOption = { value: DepositProvider; label: string };
15+
export type ProviderOption = {
16+
value: DepositProviders;
17+
label: string;
18+
integration?: string;
19+
};

0 commit comments

Comments
 (0)