diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx
index 1f55d6635..50670d878 100644
--- a/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx
+++ b/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx
@@ -5,7 +5,10 @@ import { useRouter } from "next/navigation";
import type { RouterOutputs } from "@homarr/api";
import { clientApi } from "@homarr/api/client";
-import { getSecretKinds } from "@homarr/definitions";
+import {
+ getAllSecretKindOptions,
+ getDefaultSecretKinds,
+} from "@homarr/definitions";
import { useForm, zodResolver } from "@homarr/form";
import {
showErrorNotification,
@@ -32,7 +35,10 @@ interface EditIntegrationForm {
export const EditIntegrationForm = ({ integration }: EditIntegrationForm) => {
const t = useI18n();
- const secretsKinds = getSecretKinds(integration.kind);
+ const secretsKinds =
+ getAllSecretKindOptions(integration.kind).find((x) =>
+ integration.secrets.every((y) => x.includes(y.kind)),
+ ) ?? getDefaultSecretKinds(integration.kind);
const initialFormValues = {
name: integration.name,
url: integration.url,
diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx
index c5fad467c..701a0b741 100644
--- a/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx
+++ b/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx
@@ -1,18 +1,30 @@
"use client";
+import { useCallback } from "react";
import Link from "next/link";
import { useRouter } from "next/navigation";
import { clientApi } from "@homarr/api/client";
-import type { IntegrationKind } from "@homarr/definitions";
-import { getSecretKinds } from "@homarr/definitions";
+import type {
+ IntegrationKind,
+ IntegrationSecretKind,
+} from "@homarr/definitions";
+import { getAllSecretKindOptions } from "@homarr/definitions";
+import type { UseFormReturnType } from "@homarr/form";
import { useForm, zodResolver } from "@homarr/form";
import {
showErrorNotification,
showSuccessNotification,
} from "@homarr/notifications";
-import { useI18n } from "@homarr/translation/client";
-import { Button, Fieldset, Group, Stack, TextInput } from "@homarr/ui";
+import { useI18n, useScopedI18n } from "@homarr/translation/client";
+import {
+ Button,
+ Fieldset,
+ Group,
+ SegmentedControl,
+ Stack,
+ TextInput,
+} from "@homarr/ui";
import type { z } from "@homarr/validation";
import { validation } from "@homarr/validation";
@@ -34,11 +46,11 @@ export const NewIntegrationForm = ({
searchParams,
}: NewIntegrationFormProps) => {
const t = useI18n();
- const secretKinds = getSecretKinds(searchParams.kind);
+ const secretKinds = getAllSecretKindOptions(searchParams.kind);
const initialFormValues = {
name: searchParams.name ?? "",
url: searchParams.url ?? "",
- secrets: secretKinds.map((kind) => ({
+ secrets: secretKinds[0].map((kind) => ({
kind,
value: "",
})),
@@ -99,7 +111,13 @@ export const NewIntegrationForm = ({