@aiquants/auth-react-router 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin.js +1 -1
- package/dist/admin.js.map +1 -1
- package/dist/admin.mjs +1 -1
- package/dist/admin.mjs.map +1 -1
- package/package.json +3 -3
- package/src/admin/views.tsx +11 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiquants/auth-react-router",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "React Router v7 / v8 auth adapter for @aiquants/auth-core: Google OAuth strategy factory (remix-auth), cookie session storage with DI test backdoor, a loader guard that authenticates at most once per request (token refresh + photo cache), auth route handlers, and a <GoogleForm> login button.",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"**/*.css"
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"typescript": "^5.9.3",
|
|
71
71
|
"vitest": "^4.1.8",
|
|
72
72
|
"@aiquants/auth-core": "0.6.0",
|
|
73
|
-
"@aiquants/fuzzy-search": "2.2.0",
|
|
74
73
|
"@aiquants/select-box": "0.9.0",
|
|
75
|
-
"@aiquants/virtualscroll": "3.4.0"
|
|
74
|
+
"@aiquants/virtualscroll": "3.4.0",
|
|
75
|
+
"@aiquants/fuzzy-search": "2.2.0"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"react": ">=18",
|
package/src/admin/views.tsx
CHANGED
|
@@ -1703,9 +1703,9 @@ export function DirectoryView() {
|
|
|
1703
1703
|
// 供給元が判らないまま欄を出すと、送信は必ずサーバー側の内部文言で失敗する
|
|
1704
1704
|
const canLink = data.directoryStatus.isEnabled && data.directoryStatus.provider !== ""
|
|
1705
1705
|
const catalogOptions = useMemo(() => upstreamOptions(data.catalog, upstreamIndex(linked), labels), [data.catalog, linked, labels])
|
|
1706
|
-
// ⚠️
|
|
1707
|
-
//
|
|
1708
|
-
//
|
|
1706
|
+
// ⚠️ 候補は隠さない (どのローカルグループが押さえているかを見せる価値は残る) が、選べる候補が
|
|
1707
|
+
// 1 件も無いなら **その理由を言う**。言わないと、すべて選べない選択欄と押せないボタンだけが
|
|
1708
|
+
// 残り、操作者は自分の見落としを探し続ける
|
|
1709
1709
|
const selectableCatalogCount = useMemo(() => catalogOptions.filter((o) => o.disabled !== true).length, [catalogOptions])
|
|
1710
1710
|
|
|
1711
1711
|
/** 連携を作る。上流キーは運用者が知っている値 (グループアドレス) で受け取る。 */
|
|
@@ -1774,9 +1774,9 @@ export function DirectoryView() {
|
|
|
1774
1774
|
</div>
|
|
1775
1775
|
<div style={{ display: "flex", flexDirection: "column", gap: "0.25rem", flex: 1, minWidth: "260px" }}>
|
|
1776
1776
|
{/* 候補一覧が引けているなら選ばせる。手入力は綴り違いを「後で赤いバナー」に変える */}
|
|
1777
|
-
{/* ⚠️ 「読めたが 1
|
|
1778
|
-
|
|
1779
|
-
|
|
1777
|
+
{/* ⚠️ 「読めたが 1 件も無い」なら手入力へ倒す (選択欄へ倒すと、選べない選択欄と
|
|
1778
|
+
押せないボタンという終端になり、手入力欄まで消える)。行が在るなら選択欄を
|
|
1779
|
+
出すが、そのうち選べるものが 0 件のときは理由を添える — 作成対話と同じ扱い */}
|
|
1780
1780
|
{data.catalog.kind === "ready" && data.catalog.groups.length > 0 ? (
|
|
1781
1781
|
<>
|
|
1782
1782
|
<div id="directory-external-key-label" style={fieldLabel}>
|
|
@@ -1815,6 +1815,11 @@ export function DirectoryView() {
|
|
|
1815
1815
|
clearable
|
|
1816
1816
|
/>
|
|
1817
1817
|
</div>
|
|
1818
|
+
{selectableCatalogCount === 0 && (
|
|
1819
|
+
<span data-testid="directory-all-upstream-linked" style={{ fontSize: "0.72rem", color: "#92400e" }}>
|
|
1820
|
+
{labels.groupsView.allUpstreamLinked}
|
|
1821
|
+
</span>
|
|
1822
|
+
)}
|
|
1818
1823
|
<CatalogFreshness observedAt={data.catalog.observedAt} isStale={data.catalog.isStale} labels={labels} />
|
|
1819
1824
|
</>
|
|
1820
1825
|
) : (
|