diff --git a/apps/app/src/composables/api/useAdmin.ts b/apps/app/src/composables/api/useAdmin.ts
index a187dde6..2fa98d23 100644
--- a/apps/app/src/composables/api/useAdmin.ts
+++ b/apps/app/src/composables/api/useAdmin.ts
@@ -7,6 +7,7 @@ import type {
AdminOrganisationDetail,
AdminOrganisationMember,
AdminUser,
+ CreateOrganisationPayload,
ImpersonationResponse,
InviteMemberPayload,
PlatformStats,
@@ -77,6 +78,23 @@ export function useUpdateAdminOrganisation() {
})
}
+export function useCreateOrganisation() {
+ const queryClient = useQueryClient()
+
+ return useMutation({
+ mutationFn: async (payload: CreateOrganisationPayload) => {
+ const { data } = await apiClient.post>(
+ '/organisations',
+ payload,
+ )
+ return data.data
+ },
+ onSuccess: () => {
+ queryClient.invalidateQueries({ queryKey: ['admin', 'organisations'] })
+ },
+ })
+}
+
export function useDeleteAdminOrganisation() {
const queryClient = useQueryClient()
diff --git a/apps/app/src/pages/platform/organisations/index.vue b/apps/app/src/pages/platform/organisations/index.vue
index 2f54df23..d5f2436e 100644
--- a/apps/app/src/pages/platform/organisations/index.vue
+++ b/apps/app/src/pages/platform/organisations/index.vue
@@ -1,6 +1,6 @@
@@ -89,6 +127,12 @@ function onUpdateOptions(options: { page: number; itemsPerPage: number; sortBy:
Alle organisaties op het platform
+
+ Nieuwe organisatie
+
@@ -174,5 +218,58 @@ function onUpdateOptions(options: { page: number; itemsPerPage: number; sortBy:
+
+
+
+
+
+
+ {{ createError }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Annuleren
+
+
+ Aanmaken
+
+
+
+
diff --git a/apps/app/src/types/admin.ts b/apps/app/src/types/admin.ts
index daa5b5cc..67a2136f 100644
--- a/apps/app/src/types/admin.ts
+++ b/apps/app/src/types/admin.ts
@@ -96,6 +96,12 @@ export interface UpdateMemberRolePayload {
role: string
}
+export interface CreateOrganisationPayload {
+ name: string
+ slug: string
+ billing_status?: BillingStatus
+}
+
export interface UpdateAdminOrganisationPayload {
name?: string
slug?: string