diff --git a/next-tavla/app/(admin)/organizations/[id]/actions.ts b/next-tavla/app/(admin)/organizations/[id]/actions.ts
new file mode 100644
index 000000000..5b5c502b0
--- /dev/null
+++ b/next-tavla/app/(admin)/organizations/[id]/actions.ts
@@ -0,0 +1,10 @@
+'use server'
+
+import { setOrganziationFooterInfo } from 'Admin/utils/firebase'
+import { revalidatePath } from 'next/cache'
+import { TOrganizationID } from 'types/settings'
+
+export async function setInfo(oid: TOrganizationID, info: string) {
+ await setOrganziationFooterInfo(info, oid)
+ revalidatePath('/')
+}
diff --git a/next-tavla/app/(admin)/organizations/[id]/components/Info.tsx b/next-tavla/app/(admin)/organizations/[id]/components/Info.tsx
new file mode 100644
index 000000000..5f9eb45a7
--- /dev/null
+++ b/next-tavla/app/(admin)/organizations/[id]/components/Info.tsx
@@ -0,0 +1,58 @@
+'use client'
+
+import { Button } from '@entur/button'
+import { TextField } from '@entur/form'
+import { Heading2, LeadParagraph } from '@entur/typography'
+import { TOrganization } from 'types/settings'
+import { setInfo } from '../actions'
+import {
+ TFormFeedback,
+ getFormFeedbackForError,
+ getFormFeedbackForField,
+} from 'app/(admin)/utils'
+import { FirebaseError } from 'firebase/app'
+import { useFormState } from 'react-dom'
+
+function Info({ organization }: { organization: TOrganization }) {
+ const submit = async (
+ previousState: TFormFeedback | undefined,
+ data: FormData,
+ ) => {
+ const info = data.get('info') as string
+ const oid = data.get('oid') as string
+
+ try {
+ setInfo(oid, info)
+ } catch (e: unknown) {
+ if (e instanceof FirebaseError) {
+ return getFormFeedbackForError(e)
+ }
+ }
+ }
+
+ const [state, action] = useFormState(submit, undefined)
+
+ return (
+
+ Legg til informasjon
+
+ Her kan du legge til informasjon som vil vises på alle tavlene
+ til organisasjonen.
+
+
+
+ )
+}
+
+export { Info }
diff --git a/next-tavla/app/(admin)/organizations/[id]/page.tsx b/next-tavla/app/(admin)/organizations/[id]/page.tsx
index 49804019a..3223ef445 100644
--- a/next-tavla/app/(admin)/organizations/[id]/page.tsx
+++ b/next-tavla/app/(admin)/organizations/[id]/page.tsx
@@ -11,7 +11,7 @@ import { UploadLogo } from 'Admin/scenarios/Organization/components/UploadLogo'
import { MemberAdministration } from 'Admin/scenarios/Organization/components/MemberAdministration'
import { permanentRedirect } from 'next/navigation'
import { getUserFromSessionCookie } from 'Admin/utils/formActions'
-import { Info } from 'Admin/scenarios/Organization/components/Info'
+import { Info } from './components/Info'
initializeAdminApp()
diff --git a/next-tavla/src/Admin/scenarios/Organization/components/Info/FooterInfoInput.tsx b/next-tavla/src/Admin/scenarios/Organization/components/Info/FooterInfoInput.tsx
deleted file mode 100644
index 183e3a327..000000000
--- a/next-tavla/src/Admin/scenarios/Organization/components/Info/FooterInfoInput.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-'use client'
-import { Button } from '@entur/button'
-import { TextField } from '@entur/form'
-import { Contrast } from 'Admin/components/Contrast'
-import { ChangeEventHandler, useState } from 'react'
-import { TOrganization } from 'types/settings'
-
-function FooterInfoInput({ organzation }: { organzation: TOrganization }) {
- const [info, setOrgInfo] = useState(organzation.footer ?? '')
- const setInfo: ChangeEventHandler = (e) => {
- if (!e.target) return
- setOrgInfo(e.target.value)
- }
-
- return (
-
-
-
-
-
-
- )
-}
-
-export { FooterInfoInput }
diff --git a/next-tavla/src/Admin/scenarios/Organization/components/Info/index.tsx b/next-tavla/src/Admin/scenarios/Organization/components/Info/index.tsx
deleted file mode 100644
index 269b1a3f6..000000000
--- a/next-tavla/src/Admin/scenarios/Organization/components/Info/index.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Heading2, LeadParagraph } from '@entur/typography'
-import { Contrast } from 'Admin/components/Contrast'
-import { setOrganziationFooterInfo } from 'Admin/utils/firebase'
-import { revalidatePath } from 'next/cache'
-import { TOrganization } from 'types/settings'
-import { FooterInfoInput } from './FooterInfoInput'
-
-function Info({ organization }: { organization: TOrganization }) {
- const setOrganzationInfo = async (data: FormData) => {
- 'use server'
-
- const info = data.get('info') as string
- await setOrganziationFooterInfo(info, organization.id)
- revalidatePath('/')
- }
-
- return (
-
- )
-}
-
-export { Info }
diff --git a/next-tavla/src/Admin/scenarios/Organization/components/Info/styles.module.css b/next-tavla/src/Admin/scenarios/Organization/components/Info/styles.module.css
deleted file mode 100644
index 14dcfa948..000000000
--- a/next-tavla/src/Admin/scenarios/Organization/components/Info/styles.module.css
+++ /dev/null
@@ -1,5 +0,0 @@
-.infoForm {
- display: flex;
- gap: 0.5em;
- height: 4rem;
-}