forked from baron/baron-sso
75f192fb24 기준 병합 code-check 수정
This commit is contained in:
@@ -119,9 +119,7 @@ function resolveAppLocale(): AppLocale {
|
||||
return pathLocale;
|
||||
}
|
||||
|
||||
return window.navigator.language.toLowerCase().startsWith("ko")
|
||||
? "ko"
|
||||
: "en";
|
||||
return window.navigator.language.toLowerCase().startsWith("ko") ? "ko" : "en";
|
||||
}
|
||||
|
||||
function formatRecentChangeTimestamp(value: string) {
|
||||
@@ -390,7 +388,10 @@ function summarizeRecentChanges(
|
||||
items: RecentClientChange[],
|
||||
period: RPUsagePeriod,
|
||||
): RecentChangePoint[] {
|
||||
const byDate = new Map<string, { changeCount: number; actors: Set<string> }>();
|
||||
const byDate = new Map<
|
||||
string,
|
||||
{ changeCount: number; actors: Set<string> }
|
||||
>();
|
||||
for (const item of items) {
|
||||
const bucket = toPeriodBucket(item.timestamp.slice(0, 10), period);
|
||||
const current = byDate.get(bucket) ?? {
|
||||
@@ -447,7 +448,9 @@ function buildRecentChangeSeries(
|
||||
items: RecentClientChange[],
|
||||
period: RPUsagePeriod,
|
||||
): RecentChangeSeries[] {
|
||||
const dates = summarizeRecentChanges(items, period).map((point) => point.date);
|
||||
const dates = summarizeRecentChanges(items, period).map(
|
||||
(point) => point.date,
|
||||
);
|
||||
const byClient = new Map<
|
||||
string,
|
||||
{
|
||||
@@ -937,7 +940,7 @@ function GlobalOverviewPage() {
|
||||
const [visibleRecentClientChangesCount, setVisibleRecentClientChangesCount] =
|
||||
useState(6);
|
||||
const [isRecentChangesDetailOpen, setIsRecentChangesDetailOpen] =
|
||||
useState(false);
|
||||
useState(true);
|
||||
const usageDays = period === "day" ? 14 : period === "week" ? 84 : 90;
|
||||
const statsQuery = useQuery({
|
||||
queryKey: ["dev-dashboard-stats"],
|
||||
@@ -1112,40 +1115,34 @@ function GlobalOverviewPage() {
|
||||
),
|
||||
[currentClientIdSet, recentClientChangesWithActors],
|
||||
);
|
||||
const recentChangeFilterOptions = useMemo<ClientFilterOption[]>(
|
||||
() => {
|
||||
const activeOptions = Array.from(
|
||||
new Map(
|
||||
recentClientChangesWithActors
|
||||
.filter((item) => currentClientIdSet.has(item.clientId))
|
||||
.map((item) => [
|
||||
item.clientId,
|
||||
{ id: item.clientId, label: item.clientName },
|
||||
]),
|
||||
).values(),
|
||||
).sort((left, right) => left.label.localeCompare(right.label));
|
||||
const recentChangeFilterOptions = useMemo<ClientFilterOption[]>(() => {
|
||||
const activeOptions = Array.from(
|
||||
new Map(
|
||||
recentClientChangesWithActors
|
||||
.filter((item) => currentClientIdSet.has(item.clientId))
|
||||
.map((item) => [
|
||||
item.clientId,
|
||||
{ id: item.clientId, label: item.clientName },
|
||||
]),
|
||||
).values(),
|
||||
).sort((left, right) => left.label.localeCompare(right.label));
|
||||
|
||||
if (deletedRecentChangeClientIds.length === 0) {
|
||||
return activeOptions;
|
||||
}
|
||||
if (deletedRecentChangeClientIds.length === 0) {
|
||||
return activeOptions;
|
||||
}
|
||||
|
||||
return [
|
||||
...activeOptions,
|
||||
{
|
||||
id: deletedRecentChangeFilterId,
|
||||
label: t(
|
||||
"ui.dev.dashboard.recent_changes.deleted_group",
|
||||
"삭제된 앱",
|
||||
),
|
||||
},
|
||||
];
|
||||
},
|
||||
[
|
||||
currentClientIdSet,
|
||||
deletedRecentChangeClientIds.length,
|
||||
recentClientChangesWithActors,
|
||||
],
|
||||
);
|
||||
return [
|
||||
...activeOptions,
|
||||
{
|
||||
id: deletedRecentChangeFilterId,
|
||||
label: t("ui.dev.dashboard.recent_changes.deleted_group", "삭제된 앱"),
|
||||
},
|
||||
];
|
||||
}, [
|
||||
currentClientIdSet,
|
||||
deletedRecentChangeClientIds.length,
|
||||
recentClientChangesWithActors,
|
||||
]);
|
||||
const filteredRecentClientChanges = useMemo(() => {
|
||||
if (selectedRecentChangeClientIds.length === 0) {
|
||||
return recentClientChangesWithActors;
|
||||
@@ -1155,7 +1152,8 @@ function GlobalOverviewPage() {
|
||||
return recentClientChangesWithActors.filter(
|
||||
(item) =>
|
||||
selectedSet.has(item.clientId) ||
|
||||
(includeDeletedGroup && deletedRecentChangeClientIds.includes(item.clientId)),
|
||||
(includeDeletedGroup &&
|
||||
deletedRecentChangeClientIds.includes(item.clientId)),
|
||||
);
|
||||
}, [
|
||||
deletedRecentChangeClientIds,
|
||||
@@ -1163,7 +1161,8 @@ function GlobalOverviewPage() {
|
||||
selectedRecentChangeClientIds,
|
||||
]);
|
||||
const selectedRecentChangeSeries = useMemo(
|
||||
() => buildRecentChangeSeries(filteredRecentClientChanges, recentChangesPeriod),
|
||||
() =>
|
||||
buildRecentChangeSeries(filteredRecentClientChanges, recentChangesPeriod),
|
||||
[filteredRecentClientChanges, recentChangesPeriod],
|
||||
);
|
||||
const recentChangedClientCount = useMemo(
|
||||
@@ -1180,7 +1179,9 @@ function GlobalOverviewPage() {
|
||||
new Set(
|
||||
filteredRecentClientChanges
|
||||
.map((item) => item.clientId)
|
||||
.filter((clientId) => deletedRecentChangeClientIds.includes(clientId)),
|
||||
.filter((clientId) =>
|
||||
deletedRecentChangeClientIds.includes(clientId),
|
||||
),
|
||||
).size,
|
||||
[deletedRecentChangeClientIds, filteredRecentClientChanges],
|
||||
);
|
||||
@@ -1251,10 +1252,10 @@ function GlobalOverviewPage() {
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
setVisibleRecentClientChangesCount((current) =>
|
||||
Math.min(Math.max(6, current), filteredRecentClientChanges.length),
|
||||
);
|
||||
}, [filteredRecentClientChanges.length, selectedRecentChangeClientIds]);
|
||||
setVisibleRecentClientChangesCount((current) =>
|
||||
Math.min(Math.max(6, current), filteredRecentClientChanges.length),
|
||||
);
|
||||
}, [filteredRecentClientChanges.length]);
|
||||
|
||||
if (isLoadingDeveloperAccessGate) {
|
||||
return (
|
||||
@@ -1466,9 +1467,9 @@ function GlobalOverviewPage() {
|
||||
<OverviewMetric
|
||||
icon={<Layers3 size={14} />}
|
||||
label={t(
|
||||
"ui.dev.dashboard.recent_changes.summary.deleted_clients",
|
||||
"삭제된 앱 수",
|
||||
)}
|
||||
"ui.dev.dashboard.recent_changes.summary.deleted_clients",
|
||||
"삭제된 앱 수",
|
||||
)}
|
||||
value={deletedRecentChangedClientCount.toLocaleString()}
|
||||
/>
|
||||
<OverviewMetric
|
||||
@@ -1533,8 +1534,9 @@ function GlobalOverviewPage() {
|
||||
</div>
|
||||
) : (
|
||||
visibleRecentClientChanges.map((item) => {
|
||||
const { date, time } =
|
||||
formatRecentChangeTimestamp(item.timestamp);
|
||||
const { date, time } = formatRecentChangeTimestamp(
|
||||
item.timestamp,
|
||||
);
|
||||
return (
|
||||
<div
|
||||
key={item.eventId}
|
||||
@@ -1600,7 +1602,6 @@ function GlobalOverviewPage() {
|
||||
</div>
|
||||
) : null}
|
||||
</section>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user