Admin: Kunden mit Portal-Passwort für project.webklar.com anlegen.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Webklar Deploy
2026-05-25 06:47:01 +00:00
parent fda673702e
commit fcd13e6a40
3 changed files with 133 additions and 25 deletions

View File

@@ -1,5 +1,9 @@
import { useState, useEffect, useCallback } from 'react'
import { databases, DATABASE_ID, COLLECTIONS, ID, Query, isDemoMode } from '../lib/appwrite'
import {
createCustomerWithPortalAccess,
updateCustomerWithPortalAccess,
} from '../lib/customerAdminApi'
const DEMO_MODE = isDemoMode
@@ -50,20 +54,18 @@ export function useCustomers() {
const createCustomer = async (data) => {
if (DEMO_MODE) {
const newCustomer = { ...data, $id: Date.now().toString() }
const { password: _pw, ...rest } = data
const newCustomer = { ...rest, $id: Date.now().toString() }
setCustomers(prev => [...prev, newCustomer])
return { success: true, data: newCustomer }
}
try {
const response = await databases.createDocument(
DATABASE_ID,
COLLECTIONS.CUSTOMERS,
ID.unique(),
data
)
setCustomers(prev => [...prev, response])
return { success: true, data: response }
const { password, ...fields } = data
const result = await createCustomerWithPortalAccess({ ...fields, password })
const customer = result.customer
setCustomers(prev => [...prev, customer])
return { success: true, data: customer }
} catch (err) {
return { success: false, error: err.message }
}
@@ -71,19 +73,20 @@ export function useCustomers() {
const updateCustomer = async (id, data) => {
if (DEMO_MODE) {
setCustomers(prev => prev.map(c => c.$id === id ? { ...c, ...data } : c))
const { password: _pw, ...rest } = data
setCustomers(prev => prev.map(c => c.$id === id ? { ...c, ...rest } : c))
return { success: true }
}
try {
const response = await databases.updateDocument(
DATABASE_ID,
COLLECTIONS.CUSTOMERS,
id,
data
)
setCustomers(prev => prev.map(c => c.$id === id ? response : c))
return { success: true, data: response }
const { password, ...fields } = data
const payload = { ...fields }
if (password) payload.password = password
const result = await updateCustomerWithPortalAccess(id, payload)
const customer = result.customer
setCustomers(prev => prev.map(c => c.$id === id ? customer : c))
return { success: true, data: customer }
} catch (err) {
return { success: false, error: err.message }
}