forked from baron/baron-sso
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # adminfront/src/features/tenants/routes/TenantListPage.tsx # adminfront/src/features/users/UserDetailPage.tsx # adminfront/tests/users_bulk_secondary.spec.ts
This commit is contained in:
@@ -118,6 +118,10 @@ import {
|
||||
const tenantCSVTemplate =
|
||||
"name,type,parent_tenant_slug,slug,memo,email_domain,visibility,org_unit_type\n";
|
||||
const tenantPageSize = 500;
|
||||
const _tenantVirtualizationThreshold = 250;
|
||||
const _tenantEstimatedRowHeight = 73;
|
||||
const _tenantLoadAheadPx = 360;
|
||||
const _tenantLoadAheadRows = 30;
|
||||
|
||||
type TenantSortKey = keyof TenantSummary | "recursiveMemberCount";
|
||||
|
||||
|
||||
@@ -662,6 +662,7 @@ function UserCreatePage() {
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="absolute right-1 top-1 h-8 text-xs font-bold"
|
||||
data-testid="add-sub-email-btn"
|
||||
onClick={() => {
|
||||
const value = newSubEmail.trim().replace(/,/g, "");
|
||||
if (
|
||||
@@ -678,7 +679,7 @@ function UserCreatePage() {
|
||||
}}
|
||||
>
|
||||
{t("ui.common.add", "추가")}
|
||||
</Button>
|
||||
</Button>{" "}
|
||||
</div>
|
||||
<p className="text-[10px] text-muted-foreground mt-1">
|
||||
* 여러 개 입력 가능. 입력 후 엔터를 눌러 추가하세요.
|
||||
@@ -877,6 +878,7 @@ function UserCreatePage() {
|
||||
variant="outline"
|
||||
size="sm"
|
||||
onClick={addAppointment}
|
||||
data-testid="add-appointment-btn"
|
||||
>
|
||||
<Plus className="mr-2 h-4 w-4" />
|
||||
{t("ui.common.add", "추가")}
|
||||
|
||||
@@ -1020,15 +1020,14 @@ function UserDetailPage() {
|
||||
<Mail size={14} className="text-primary/70" />
|
||||
{user.email}
|
||||
</div>
|
||||
{Array.isArray(user.metadata?.sub_email) &&
|
||||
user.metadata.sub_email.length > 0 && (
|
||||
<div className="flex items-center gap-1.5 bg-background px-2.5 py-1 rounded-full border">
|
||||
<Mail size={14} className="text-primary/40" />
|
||||
<span className="text-[10px] font-bold">
|
||||
+{user.metadata.sub_email.length}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
{normalizeSubEmails(user.metadata?.sub_email).length > 0 && (
|
||||
<div className="flex items-center gap-1.5 bg-background px-2.5 py-1 rounded-full border">
|
||||
<Mail size={14} className="text-primary/40" />
|
||||
<span className="text-[10px] font-bold">
|
||||
+{normalizeSubEmails(user.metadata?.sub_email).length}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
{user.phone && (
|
||||
<div className="flex items-center gap-1.5 bg-background px-2.5 py-1 rounded-full border">
|
||||
<Shield size={14} className="text-primary/70" />
|
||||
@@ -1194,6 +1193,7 @@ function UserDetailPage() {
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="absolute right-1 top-1 h-9 text-xs font-bold"
|
||||
data-testid="add-sub-email-btn"
|
||||
onClick={() => {
|
||||
const value = newSubEmail.trim().replace(/,/g, "");
|
||||
if (
|
||||
@@ -1347,6 +1347,7 @@ function UserDetailPage() {
|
||||
variant="outline"
|
||||
size="sm"
|
||||
onClick={addAppointment}
|
||||
data-testid="add-appointment-btn"
|
||||
>
|
||||
<Plus className="mr-2 h-4 w-4" />
|
||||
{t("ui.common.add", "추가")}
|
||||
|
||||
@@ -141,8 +141,7 @@ primary@samaneng.com,Primary User,rnd-saman,EMP001,secondary@hanmaceng.co.kr`;
|
||||
tenantSlug: "rnd-saman",
|
||||
metadata: {
|
||||
employee_id: "EMP001",
|
||||
sub_email: "secondary@hanmaceng.co.kr",
|
||||
secondary_emails: ["secondary@hanmaceng.co.kr"],
|
||||
sub_email: ["secondary@hanmaceng.co.kr"],
|
||||
aliasEmails: ["secondary@hanmaceng.co.kr"],
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user