1
0
forked from baron/baron-sso

feat: integrate orgfront and expose internal ids

This commit is contained in:
2026-04-30 09:33:39 +09:00
parent 02375af08d
commit 9ce7a67f58
116 changed files with 22992 additions and 33 deletions

View File

@@ -73,6 +73,8 @@ import {
type OrgChartTenantSelection,
buildAuthenticatedOrgChartTenantPickerUrl,
filterNonHanmacFamilyTenants,
isHanmacFamilyTenant,
isHanmacFamilyUser,
parseOrgChartTenantSelection,
} from "./orgChartPicker";
@@ -369,7 +371,10 @@ function UserDetailPage() {
queryKey: ["tenants", { limit: 100 }],
queryFn: () => fetchTenants(100, 0),
});
const tenants = tenantsData?.items ?? [];
const tenants = React.useMemo(
() => tenantsData?.items ?? [],
[tenantsData?.items],
);
const rpHistoryQuery = useQuery({
queryKey: ["user-rp-history", userId],
@@ -498,7 +503,7 @@ function UserDetailPage() {
);
const pickerUrl = buildAuthenticatedOrgChartTenantPickerUrl(
import.meta.env.VITE_ORGCHART_URL,
import.meta.env.ORGFRONT_URL,
{
tenantId: userType === "hanmac" ? hanmacFamilyTenantId : undefined,
},
@@ -642,15 +647,33 @@ function UserDetailPage() {
Record<string, string | number | boolean>
>) || {},
});
const isUserHanmacFamily = isHanmacFamilyUser(
user,
tenants,
hanmacFamilyTenantId,
);
const resolvedUserType =
metadata.userType === "personal" ||
user.companyCode === "personal"
? "personal"
: metadata.hanmacFamily === true
: isUserHanmacFamily
? "hanmac"
: "external";
setUserType(resolvedUserType);
setIsHanmacFamily(resolvedUserType === "hanmac");
const familyFallbackTenants = [
...(user.joinedTenants ?? []),
...(user.tenant ? [user.tenant] : []),
].filter(
(tenant, index, allTenants) =>
allTenants.findIndex((item) => item.id === tenant.id) ===
index &&
isHanmacFamilyTenant(
tenant,
tenants,
hanmacFamilyTenantId,
),
);
setAdditionalAppointments(
Array.isArray(rawAppointments)
? (rawAppointments as UserAppointment[]).map(
@@ -659,22 +682,38 @@ function UserDetailPage() {
draftId: createDraftId(),
}),
)
: metadata.hanmacFamily === true && fallbackAppointment
? [
{
: isUserHanmacFamily
? familyFallbackTenants.length > 0
? familyFallbackTenants.map((tenant) => ({
draftId: createDraftId(),
tenantId: fallbackAppointment.id,
tenantName: fallbackAppointment.name,
tenantSlug: fallbackAppointment.slug,
isOwner: metadata.primaryTenantIsOwner === true,
tenantId: tenant.id,
tenantName: tenant.name,
tenantSlug: tenant.slug,
isOwner:
metadata.primaryTenantIsOwner === true &&
tenant.id === fallbackAppointment?.id,
jobTitle: user.jobTitle,
position: user.position,
},
]
}))
: fallbackAppointment
? [
{
draftId: createDraftId(),
tenantId: fallbackAppointment.id,
tenantName: fallbackAppointment.name,
tenantSlug: fallbackAppointment.slug,
isOwner:
metadata.primaryTenantIsOwner ===
true,
jobTitle: user.jobTitle,
position: user.position,
},
]
: []
: [],
);
}
}, [user, reset]);
}, [hanmacFamilyTenantId, tenants, user, reset]);
const mutation = useMutation({
mutationFn: (data: UserUpdateRequest) => updateUser(userId, data),