forked from baron/baron-sso
fix: Admin UI에서 전송한 커스텀 필드(metadata)가 백엔드 Kratos 트레이츠에 빈 배열로 깨져서 저장되는 문제 해결 (#440)
This commit is contained in:
@@ -139,7 +139,9 @@ function TenantMetadataFields({
|
||||
);
|
||||
}
|
||||
|
||||
type UserFormValues = UserUpdateRequest & { metadata: Record<string, any> };
|
||||
type UserFormValues = Omit<UserUpdateRequest, "metadata"> & {
|
||||
metadata: Record<string, Record<string, any>>;
|
||||
};
|
||||
|
||||
function UserDetailPage() {
|
||||
const params = useParams<{ id: string }>();
|
||||
@@ -299,7 +301,20 @@ function UserDetailPage() {
|
||||
const onSubmit = (data: UserFormValues) => {
|
||||
setError(null);
|
||||
setSuccessMsg(null);
|
||||
mutation.mutate(data);
|
||||
|
||||
// Filter out undefined/null/empty strings from metadata
|
||||
const cleanMetadata = Object.fromEntries(
|
||||
Object.entries(data.metadata).map(([tenantId, fields]) => {
|
||||
const cleanFields = Object.fromEntries(
|
||||
Object.entries(fields).filter(
|
||||
([_, v]) => v !== undefined && v !== null && v !== "",
|
||||
),
|
||||
);
|
||||
return [tenantId, cleanFields];
|
||||
}),
|
||||
);
|
||||
|
||||
mutation.mutate({ ...data, metadata: cleanMetadata });
|
||||
};
|
||||
|
||||
const handleDelete = () => {
|
||||
|
||||
Reference in New Issue
Block a user