@xeonr/console-shell 0.1.8 → 0.2.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/ConsoleProvider.d.ts +19 -1
- package/dist/ConsoleProvider.d.ts.map +1 -1
- package/dist/ConsoleProvider.js +91 -17
- package/dist/ConsoleProvider.js.map +1 -1
- package/dist/Launcher.d.ts.map +1 -1
- package/dist/Launcher.js +34 -1
- package/dist/Launcher.js.map +1 -1
- package/dist/ScopeRail.d.ts +1 -0
- package/dist/ScopeRail.d.ts.map +1 -1
- package/dist/ScopeRail.js +32 -4
- package/dist/ScopeRail.js.map +1 -1
- package/dist/TeamCard.d.ts.map +1 -1
- package/dist/TeamCard.js +36 -4
- package/dist/TeamCard.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -0
- package/dist/client.js.map +1 -1
- package/dist/types.d.ts +25 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -20,8 +20,20 @@ export interface ConsoleState {
|
|
|
20
20
|
loading: boolean;
|
|
21
21
|
setTeam(id: string): void;
|
|
22
22
|
togglePin(key: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Entitle the active team to a product, then re-read the registry so the
|
|
25
|
+
* caller's tile actually changes. Rejects with auth's own refusal text.
|
|
26
|
+
*/
|
|
27
|
+
enableProduct(p: Product): Promise<void>;
|
|
23
28
|
/** absolute link into another product for the active team */
|
|
24
29
|
productHref(p: Product, path?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* The console home for a team, asking it to offer enabling `productKey`.
|
|
32
|
+
* Enabling belongs to the home console, so a product console sends you there
|
|
33
|
+
* rather than into a product the team holds no binding for — which is what a
|
|
34
|
+
* plain productHref would do, and it 404s.
|
|
35
|
+
*/
|
|
36
|
+
enableHref(productKey: string, teamSlug?: string): string;
|
|
25
37
|
/** the console home for the active team (homeOrigin, else a "home" registry entry, else "/") */
|
|
26
38
|
homeHref: string;
|
|
27
39
|
/** federated ⌘K (tier 2); resolves to [] when the client has no search */
|
|
@@ -36,9 +48,15 @@ export interface ConsoleProviderProps {
|
|
|
36
48
|
onTeamChange?: ((team: Team) => void) | undefined;
|
|
37
49
|
/** the console home origin, for the rail's Home tile */
|
|
38
50
|
homeOrigin?: string | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Called when a background write the shell performs on its own (pin, team
|
|
53
|
+
* switch) fails. Without it those failures were fire-and-forget: the optimistic
|
|
54
|
+
* UI stuck and the write silently never happened. Wire it to the host's toast.
|
|
55
|
+
*/
|
|
56
|
+
onError?: ((err: unknown) => void) | undefined;
|
|
39
57
|
children: ReactNode;
|
|
40
58
|
}
|
|
41
|
-
export declare function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, children }: ConsoleProviderProps): import("react").JSX.Element;
|
|
59
|
+
export declare function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, onError, children }: ConsoleProviderProps): import("react").JSX.Element;
|
|
42
60
|
/** Null while the provider is still loading — the shell renders its skeleton then. */
|
|
43
61
|
export declare function useConsoleMaybe(): ConsoleState | null;
|
|
44
62
|
export declare function useConsole(): ConsoleState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleProvider.d.ts","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7G,OAAO,KAAK,EAAE,aAAa,EAAkB,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAW7G,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,6DAA6D;IAC7D,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"ConsoleProvider.d.ts","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7G,OAAO,KAAK,EAAE,aAAa,EAAkB,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAW7G,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,6DAA6D;IAC7D,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1D,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BA4L/H;AAED,sFAAsF;AACtF,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,UAAU,IAAI,YAAY,CAIzC"}
|
package/dist/ConsoleProvider.js
CHANGED
|
@@ -11,21 +11,46 @@ import { useTheme } from "@xeonr/platform-ui";
|
|
|
11
11
|
// via `onTeamChange` and navigates itself; the shell never routes for it.
|
|
12
12
|
export const MAX_PINNED = 6;
|
|
13
13
|
const Ctx = createContext(null);
|
|
14
|
-
export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, children }) {
|
|
14
|
+
export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, onError, children }) {
|
|
15
15
|
const [me, setMe] = useState(null);
|
|
16
16
|
const [ctx, setCtx] = useState(null);
|
|
17
17
|
const [products, setProducts] = useState([]);
|
|
18
18
|
const [invitations, setInvitations] = useState([]);
|
|
19
19
|
const [tick, setTick] = useState(0);
|
|
20
20
|
const theme = useTheme();
|
|
21
|
+
// Pins are held here rather than derived from `ctx`, because a toggle that
|
|
22
|
+
// only updated `ctx` was dropped outright whenever `ctx` was still null —
|
|
23
|
+
// which is the whole load window.
|
|
24
|
+
//
|
|
25
|
+
// `null` means "not chosen yet, use the registry defaults"; a list means
|
|
26
|
+
// "this is my set", the empty one included. The BFF carries that distinction
|
|
27
|
+
// from bff v0.1.19, which is what makes unpinning your last product stick.
|
|
28
|
+
const [pins, setPins] = useState(null);
|
|
21
29
|
useEffect(() => {
|
|
22
30
|
let live = true;
|
|
23
|
-
|
|
31
|
+
// Settled, not all: `me` is what lifts the shell out of its skeleton, and a
|
|
32
|
+
// single failing /console/context or /console/invitations used to reject the
|
|
33
|
+
// whole Promise.all and leave the console loading forever. Context and
|
|
34
|
+
// invitations are chrome; identity is not.
|
|
35
|
+
void Promise.allSettled([client.me(), client.getContext(), client.listMyInvitations()]).then(([mr, cr, ir]) => {
|
|
24
36
|
if (!live)
|
|
25
37
|
return;
|
|
38
|
+
if (mr.status === "rejected") {
|
|
39
|
+
onError?.(mr.reason);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const m = mr.value;
|
|
43
|
+
const c = cr.status === "fulfilled" ? cr.value : { activeTeam: null, pinnedProducts: null, theme: "system" };
|
|
44
|
+
if (cr.status === "rejected")
|
|
45
|
+
onError?.(cr.reason);
|
|
46
|
+
const inv = ir.status === "fulfilled" ? ir.value : [];
|
|
26
47
|
setMe(m);
|
|
27
48
|
setCtx(c);
|
|
28
49
|
setInvitations(inv);
|
|
50
|
+
// null from the BFF means nobody has chosen; an array — including an empty
|
|
51
|
+
// one — is a choice. An older BFF always sends an array, so an empty one
|
|
52
|
+
// from it is treated as unset, exactly as it behaved before.
|
|
53
|
+
setPins((cur) => cur ?? c.pinnedProducts ?? null);
|
|
29
54
|
// The server-held theme follows you across hosts; local preference wins
|
|
30
55
|
// only if it was set explicitly on this host.
|
|
31
56
|
if (theme.pref === "system" && c.theme !== "system")
|
|
@@ -43,34 +68,75 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
43
68
|
return me.teams.find((t) => t.slug === teamSlug) ?? null;
|
|
44
69
|
if (ctx?.activeTeam)
|
|
45
70
|
return me.teams.find((t) => t.id === ctx.activeTeam) ?? null;
|
|
46
|
-
|
|
71
|
+
// The list can now include teams this product is not enabled for, so the
|
|
72
|
+
// fallback prefers one that works. Landing a product on an unentitled team
|
|
73
|
+
// by default would render it against a binding that does not exist; an
|
|
74
|
+
// explicit slug or saved context is still honoured, because that is a choice.
|
|
75
|
+
return me.teams.find((t) => t.entitled !== false) ?? me.teams[0] ?? null;
|
|
47
76
|
}, [me, ctx, teamSlug]);
|
|
77
|
+
// `tick` belongs here: refresh() is what a caller invokes after enabling a
|
|
78
|
+
// product, and without it the registry was never re-read — the tile kept its
|
|
79
|
+
// stale enabled:false and appeared to switch back.
|
|
48
80
|
useEffect(() => {
|
|
49
81
|
let live = true;
|
|
50
82
|
void client.listProducts(activeTeam?.id ?? null).then((ps) => live && setProducts(ps));
|
|
51
83
|
return () => {
|
|
52
84
|
live = false;
|
|
53
85
|
};
|
|
54
|
-
}, [client, activeTeam?.id]);
|
|
86
|
+
}, [client, activeTeam?.id, tick]);
|
|
55
87
|
const pinned = useMemo(() => {
|
|
56
|
-
|
|
88
|
+
if (pins === null)
|
|
89
|
+
return products.filter((p) => p.pinnedByDefault).map((p) => p.key);
|
|
90
|
+
// Filter to products that exist, but only once we HAVE products: doing it
|
|
91
|
+
// against an empty registry wipes the set on the first render pass.
|
|
92
|
+
if (products.length === 0)
|
|
93
|
+
return pins;
|
|
57
94
|
const known = new Set(products.map((p) => p.key));
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}, [ctx, products]);
|
|
95
|
+
return pins.filter((k) => known.has(k));
|
|
96
|
+
}, [pins, products]);
|
|
61
97
|
const setTeam = useCallback((id) => {
|
|
62
98
|
const t = me?.teams.find((x) => x.id === id);
|
|
63
99
|
if (!t)
|
|
64
100
|
return;
|
|
65
|
-
|
|
66
|
-
|
|
101
|
+
const prev = ctx?.activeTeam ?? null;
|
|
102
|
+
setCtx((c) => (c ? { ...c, activeTeam: id } : { activeTeam: id, pinnedProducts: pins, theme: "system" }));
|
|
103
|
+
void client.setContext({ activeTeam: id }).catch((err) => {
|
|
104
|
+
setCtx((c) => (c ? { ...c, activeTeam: prev } : c));
|
|
105
|
+
onError?.(err);
|
|
106
|
+
});
|
|
67
107
|
onTeamChange?.(t);
|
|
68
|
-
}, [client, me, onTeamChange]);
|
|
108
|
+
}, [client, ctx, me, onTeamChange, onError, pins]);
|
|
69
109
|
const togglePin = useCallback((key) => {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
110
|
+
const current = pinned;
|
|
111
|
+
const dropping = current.includes(key);
|
|
112
|
+
if (!dropping && current.length >= MAX_PINNED) {
|
|
113
|
+
// Previously the button was simply disabled, which reads as a dead
|
|
114
|
+
// control. Say what the limit is instead.
|
|
115
|
+
onError?.(new Error(`The rail holds ${MAX_PINNED} products. Unpin one first.`));
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const next = dropping ? current.filter((k) => k !== key) : [...current, key];
|
|
119
|
+
setPins(next);
|
|
120
|
+
void client.setContext({ pinnedProducts: next }).catch((err) => {
|
|
121
|
+
setPins(current);
|
|
122
|
+
onError?.(err);
|
|
123
|
+
});
|
|
124
|
+
}, [client, pinned, onError]);
|
|
125
|
+
const enableProduct = useCallback(async (p) => {
|
|
126
|
+
if (!activeTeam)
|
|
127
|
+
throw new Error("Pick a team before enabling a product.");
|
|
128
|
+
if (!client.enableProduct)
|
|
129
|
+
throw new Error("This console cannot enable products.");
|
|
130
|
+
await client.enableProduct(activeTeam.id, p.key);
|
|
131
|
+
// Re-read rather than patching `enabled` locally: auth decides, and a
|
|
132
|
+
// binding can bring default roles with it that only a fresh read shows.
|
|
133
|
+
setTick((n) => n + 1);
|
|
134
|
+
}, [client, activeTeam]);
|
|
135
|
+
// Stable identity on purpose. Inside the value memo this was a fresh function
|
|
136
|
+
// on every data change, so a caller with `useEffect(… , [c.refresh])` looped
|
|
137
|
+
// forever — and now that refresh re-reads the product registry too, each turn
|
|
138
|
+
// of that loop would cost an extra request.
|
|
139
|
+
const refresh = useCallback(() => setTick((n) => n + 1), []);
|
|
74
140
|
const productHref = useCallback((p, path = "") => {
|
|
75
141
|
const team = activeTeam?.slug;
|
|
76
142
|
const base = p.key === "home" ? (homeOrigin ?? p.origin) : p.origin;
|
|
@@ -83,6 +149,12 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
83
149
|
return "/";
|
|
84
150
|
return team ? `${origin}/${team}` : origin;
|
|
85
151
|
}, [homeOrigin, products, activeTeam]);
|
|
152
|
+
const enableHref = useCallback((productKey, teamSlug) => {
|
|
153
|
+
const team = teamSlug ?? activeTeam?.slug;
|
|
154
|
+
const origin = homeOrigin ?? products.find((p) => p.key === "home")?.origin ?? "";
|
|
155
|
+
const base = team ? `${origin}/${team}` : origin || "/";
|
|
156
|
+
return `${base}?enable=${encodeURIComponent(productKey)}`;
|
|
157
|
+
}, [homeOrigin, products, activeTeam]);
|
|
86
158
|
const value = useMemo(() => me
|
|
87
159
|
? {
|
|
88
160
|
product,
|
|
@@ -96,12 +168,14 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
96
168
|
loading: false,
|
|
97
169
|
setTeam,
|
|
98
170
|
togglePin,
|
|
171
|
+
enableProduct,
|
|
99
172
|
productHref,
|
|
173
|
+
enableHref,
|
|
100
174
|
homeHref,
|
|
101
175
|
search: (q) => (client.search ? client.search(q, activeTeam?.id ?? null) : Promise.resolve([])),
|
|
102
|
-
refresh
|
|
176
|
+
refresh,
|
|
103
177
|
}
|
|
104
|
-
: null, [me, product, activeTeam, products, pinned, invitations, setTeam, togglePin, productHref, homeHref, client]);
|
|
178
|
+
: null, [me, product, activeTeam, products, pinned, invitations, setTeam, togglePin, enableProduct, productHref, enableHref, homeHref, refresh, client]);
|
|
105
179
|
if (!value)
|
|
106
180
|
return _jsx(Ctx.Provider, { value: null, children: children });
|
|
107
181
|
return _jsx(Ctx.Provider, { value: value, children: children });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleProvider.js","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleProvider.js","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"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"}
|
package/dist/Launcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Launcher.d.ts","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Launcher.d.ts","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,YAAY,CAAC;AAsH3D,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CAAE,+BA8GrJ"}
|
package/dist/Launcher.js
CHANGED
|
@@ -81,6 +81,14 @@ const Text = styled.div `
|
|
|
81
81
|
span { font-size: 12px; color: ${v.muted}; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
82
82
|
a { color: inherit; text-decoration: none; }
|
|
83
83
|
`;
|
|
84
|
+
// Auth's own refusal, verbatim: it says which gate failed, which is the only
|
|
85
|
+
// useful thing to show someone whose Enable did not work.
|
|
86
|
+
const Fail = styled.span `
|
|
87
|
+
font-size: 11px;
|
|
88
|
+
color: ${v.danger};
|
|
89
|
+
max-width: 220px;
|
|
90
|
+
text-align: right;
|
|
91
|
+
`;
|
|
84
92
|
const Foot = styled.div `
|
|
85
93
|
display: flex; align-items: center; gap: 12px;
|
|
86
94
|
padding: 12px 20px;
|
|
@@ -100,6 +108,28 @@ function hostOf(origin) {
|
|
|
100
108
|
export function Launcher({ onClose, authOrigin, onEnable }) {
|
|
101
109
|
const c = useConsole();
|
|
102
110
|
const [q, setQ] = useState("");
|
|
111
|
+
const [enabling, setEnabling] = useState(null);
|
|
112
|
+
const [failed, setFailed] = useState({});
|
|
113
|
+
// Enable used to be `onEnable?.(p)` — an optional host callback that no
|
|
114
|
+
// console ever passed, so the button fired nothing at all. The shell owns it
|
|
115
|
+
// now; a host may still override.
|
|
116
|
+
const enable = async (p) => {
|
|
117
|
+
if (onEnable) {
|
|
118
|
+
onEnable(p);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
setEnabling(p.key);
|
|
122
|
+
setFailed((f) => { const { [p.key]: _drop, ...rest } = f; return rest; });
|
|
123
|
+
try {
|
|
124
|
+
await c.enableProduct(p);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
setFailed((f) => ({ ...f, [p.key]: err instanceof Error ? err.message : `Could not enable ${p.name}` }));
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
setEnabling(null);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
103
133
|
const groups = useMemo(() => {
|
|
104
134
|
const needle = q.trim().toLowerCase();
|
|
105
135
|
const list = c.products
|
|
@@ -112,7 +142,10 @@ export function Launcher({ onClose, authOrigin, onEnable }) {
|
|
|
112
142
|
const pinned = c.pinned.includes(p.key);
|
|
113
143
|
const full = !pinned && c.pinned.length >= MAX_PINNED;
|
|
114
144
|
const href = c.productHref(p);
|
|
115
|
-
return (_jsxs(Row, { "$dim": p.status === "coming_soon", children: [_jsx(Tile, { href: p.status === "live" && p.enabled ? href : undefined, "$c": p.colour, "aria-label": p.name, children: _jsx(Icon, { name: p.icon }) }), _jsxs(Text, { children: [_jsxs("b", { children: [p.status === "live" && p.enabled ? _jsx("a", { href: href, children: p.name }) : p.name, _jsx("code", { children: hostOf(p.origin) })] }), _jsx("span", { children: p.blurb })] }), p.status === "coming_soon" ? (_jsx(StatusPill, { "$tone": "info", children: "Coming soon" })) : p.enabled ? (_jsx(StatusPill, { "$tone": "ok", children: "Enabled" })) : p.canEnable ? (
|
|
145
|
+
return (_jsxs(Row, { "$dim": p.status === "coming_soon", children: [_jsx(Tile, { href: p.status === "live" && p.enabled ? href : undefined, "$c": p.colour, "aria-label": p.name, children: _jsx(Icon, { name: p.icon }) }), _jsxs(Text, { children: [_jsxs("b", { children: [p.status === "live" && p.enabled ? _jsx("a", { href: href, children: p.name }) : p.name, _jsx("code", { children: hostOf(p.origin) })] }), _jsx("span", { children: p.blurb })] }), p.status === "coming_soon" ? (_jsx(StatusPill, { "$tone": "info", children: "Coming soon" })) : p.enabled ? (_jsx(StatusPill, { "$tone": "ok", children: "Enabled" })) : p.canEnable ? (_jsxs("span", { style: { display: "flex", flexDirection: "column", gap: 4, alignItems: "flex-end" }, children: [_jsx(AppButton, { size: "xs", loading: enabling === p.key, onClick: () => void enable(p), children: enabling === p.key ? "Enabling…" : "Enable" }), failed[p.key] ? _jsx(Fail, { children: failed[p.key] }) : null] })) : (
|
|
146
|
+
// Say why rather than only that it is off: only an owner can entitle a
|
|
147
|
+
// team, and some products are not self-serve at all.
|
|
148
|
+
_jsx(StatusPill, { "$tone": "mut", title: "Only a team owner can enable this, and only for a self-serve product", children: "Not enabled" })), _jsx(IconButton, { type: "button", "aria-label": pinned ? `Unpin ${p.name} from the rail` : `Pin ${p.name} to the rail`, "aria-pressed": pinned, title: full ? `The rail holds ${MAX_PINNED} products. Unpin one first.` : undefined, disabled: p.status !== "live", onClick: () => c.togglePin(p.key), style: { color: pinned ? v.brand : v.faint, opacity: full ? 0.55 : 1 }, children: _jsx(Icon, { name: pinned ? "check" : "pin" }) })] }, p.key));
|
|
116
149
|
};
|
|
117
150
|
return (_jsx(Scrim, { onMouseDown: (e) => e.target === e.currentTarget && onClose(), children: _jsxs(Dialog, { role: "dialog", "aria-modal": "true", "aria-label": "All products", children: [_jsx(Stripe, {}), _jsxs(Head, { children: [_jsxs("div", { children: [_jsx("h2", { children: "All products" }), _jsxs("p", { children: ["What ", _jsx("b", { children: c.activeTeam?.name ?? c.activeTeam?.slug ?? "this team" }), " can use. Pin up to ", MAX_PINNED, " to the rail; the rest live here and in \u2318K."] })] }), _jsxs("div", { style: { marginLeft: "auto", display: "flex", gap: 8, alignItems: "center" }, children: [_jsx(Filter, { value: q, onChange: (e) => setQ(e.target.value), placeholder: "Filter products", "aria-label": "Filter products", autoFocus: true }), _jsx(IconButton, { type: "button", "aria-label": "Close", onClick: onClose, children: _jsx(Icon, { name: "close" }) })] })] }), _jsxs(Body, { children: [_jsx(Col, { children: groups.slice(0, half).map((g) => _jsxs(Group, { children: [_jsx(GroupLabel, { children: g.cat }), g.items.map(row)] }, g.cat)) }), _jsx(Col, { children: groups.slice(half).map((g) => _jsxs(Group, { children: [_jsx(GroupLabel, { children: g.cat }), g.items.map(row)] }, g.cat)) })] }), _jsxs(Foot, { children: [_jsx("span", { children: "New products appear here automatically once registered in Auth as a console product and bound to a team." }), c.me.isOrgAdmin ? (_jsxs("a", { href: `${authOrigin}/applications`, children: ["Manage the catalogue ", _jsx(Icon, { name: "external" })] })) : null] })] }) }));
|
|
118
151
|
}
|
package/dist/Launcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Launcher.js","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Launcher.js","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"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"}
|
package/dist/ScopeRail.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare const RailButton: import("styled-components/dist/types").IStyledC
|
|
|
3
3
|
}, {
|
|
4
4
|
$on?: boolean | undefined;
|
|
5
5
|
$accent?: string | undefined;
|
|
6
|
+
$off?: boolean | undefined;
|
|
6
7
|
}>> & string;
|
|
7
8
|
export declare function ScopeRail({ onOpenLauncher, onOpenAccount }: {
|
|
8
9
|
onOpenLauncher: () => void;
|
package/dist/ScopeRail.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeRail.d.ts","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScopeRail.d.ts","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"AAyCA,eAAO,MAAM,UAAU;;;UAAoB,OAAO,GAAG,SAAS;cAAY,MAAM,GAAG,SAAS;WAAS,OAAO,GAAG,SAAS;YAmBvH,CAAC;AAqCF,wBAAgB,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;IAAE,cAAc,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAA;CAAE,+BAgDrH"}
|
package/dist/ScopeRail.js
CHANGED
|
@@ -31,19 +31,40 @@ const Divider = styled.div `
|
|
|
31
31
|
background: ${v.line2};
|
|
32
32
|
margin: 4px 0;
|
|
33
33
|
`;
|
|
34
|
+
// `$off`: a pinned product the active team has not enabled. Same convention the
|
|
35
|
+
// kit uses everywhere else for a disabled control (Charts' hidden series,
|
|
36
|
+
// Form's disabled toggle) — 0.55 opacity and the faint colour — so it reads as
|
|
37
|
+
// unavailable rather than as a different product.
|
|
34
38
|
export const RailButton = styled.a `
|
|
35
39
|
width: 40px; height: 40px;
|
|
36
40
|
border-radius: 10px;
|
|
37
41
|
display: grid; place-items: center;
|
|
38
|
-
|
|
42
|
+
position: relative;
|
|
43
|
+
color: ${(p) => (p.$off ? v.faint : (p.$accent ?? v.muted))};
|
|
44
|
+
opacity: ${(p) => (p.$off ? 0.55 : 1)};
|
|
39
45
|
background: ${(p) => (p.$on ? v.brand16 : "transparent")};
|
|
40
46
|
box-shadow: ${(p) => (p.$on ? `inset 0 0 0 1px ${v.brand55}` : "none")};
|
|
41
47
|
border: 0;
|
|
42
48
|
cursor: pointer;
|
|
43
49
|
text-decoration: none;
|
|
44
50
|
font-size: 18px;
|
|
45
|
-
transition: background 0.14s ease, color 0.14s ease;
|
|
46
|
-
&:hover {
|
|
51
|
+
transition: background 0.14s ease, color 0.14s ease, opacity 0.14s ease;
|
|
52
|
+
&:hover {
|
|
53
|
+
background: ${(p) => (p.$on ? v.brand16 : v.hover)};
|
|
54
|
+
color: ${(p) => (p.$off ? v.text : (p.$accent ?? v.text))};
|
|
55
|
+
opacity: 1;
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
// A plus, not a warning: the tile is an invitation to turn the product on, and
|
|
59
|
+
// a red dot on half your rail reads as breakage.
|
|
60
|
+
const OffMark = styled.span `
|
|
61
|
+
position: absolute; bottom: -1px; right: -1px;
|
|
62
|
+
width: 13px; height: 13px; border-radius: 999px;
|
|
63
|
+
display: grid; place-items: center;
|
|
64
|
+
font-size: 8px;
|
|
65
|
+
color: ${v.faint};
|
|
66
|
+
background: ${v.sidebar};
|
|
67
|
+
box-shadow: 0 0 0 1px ${v.line2};
|
|
47
68
|
`;
|
|
48
69
|
const Avatar = styled.span `
|
|
49
70
|
width: 30px; height: 30px;
|
|
@@ -68,6 +89,13 @@ export function ScopeRail({ onOpenLauncher, onOpenAccount }) {
|
|
|
68
89
|
const c = useConsole();
|
|
69
90
|
const theme = useTheme();
|
|
70
91
|
const tiles = c.products.filter((p) => c.pinned.includes(p.key) || p.key === c.product).filter((p) => p.key !== "home");
|
|
71
|
-
return (_jsxs(Rail, { "aria-label": "Products", children: [_jsx(Logo, { href: c.homeHref, "aria-label": "Xeonr Cloud Console", children: "X" }), _jsx(RailButton, { href: c.homeHref, "$on": c.product === "home", "aria-label": "Home", title: "Home", children: _jsx(Icon, { name: "home" }) }), _jsx(Divider, {}), tiles.map((p) =>
|
|
92
|
+
return (_jsxs(Rail, { "aria-label": "Products", children: [_jsx(Logo, { href: c.homeHref, "aria-label": "Xeonr Cloud Console", children: "X" }), _jsx(RailButton, { href: c.homeHref, "$on": c.product === "home", "aria-label": "Home", title: "Home", children: _jsx(Icon, { name: "home" }) }), _jsx(Divider, {}), tiles.map((p) => {
|
|
93
|
+
// A pinned product the team has not enabled used to render as fully
|
|
94
|
+
// live and link into a product holding no binding for this team, which
|
|
95
|
+
// is a dead end. Send it to the console home's enable prompt instead.
|
|
96
|
+
const off = p.status === "live" && !p.enabled;
|
|
97
|
+
const teamName = c.activeTeam?.name || c.activeTeam?.slug;
|
|
98
|
+
return (_jsxs(RailButton, { href: off ? c.enableHref(p.key) : c.productHref(p), "$on": p.key === c.product, "$accent": p.colour, "$off": off, "aria-label": off ? `${p.name} — not enabled, enable it` : p.name, title: off ? `${p.name} is not enabled${teamName ? ` for ${teamName}` : ""} — click to enable` : p.name, children: [_jsx(Icon, { name: p.icon }), off ? _jsx(OffMark, { "aria-hidden": "true", children: _jsx(Icon, { name: "add" }) }) : null] }, p.key));
|
|
99
|
+
}), _jsx(RailButton, { as: "button", type: "button", onClick: onOpenLauncher, "aria-label": "All products", title: "All products", children: _jsx(Icon, { name: "launcher" }) }), _jsx(Spacer, {}), _jsx(RailButton, { as: "button", type: "button", onClick: theme.cycle, "aria-label": `Theme: ${theme.pref}`, title: `Theme: ${theme.pref}`, children: _jsx(Icon, { name: theme.pref === "system" ? "system" : theme.resolved === "dark" ? "moon" : "sun" }) }), _jsx(RailButton, { as: "button", type: "button", onClick: onOpenAccount, "aria-label": "Account menu", title: c.me.displayName, children: _jsxs(Avatar, { children: [initials(c.me.displayName), c.invitations.length > 0 ? _jsx(Dot, { "aria-label": `${c.invitations.length} pending invitations` }) : null] }) })] }));
|
|
72
100
|
}
|
|
73
101
|
//# sourceMappingURL=ScopeRail.js.map
|
package/dist/ScopeRail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeRail.js","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAuB,CAAC;AAEnD,wEAAwE;AACxE,qEAAqE;AACrE,+EAA+E;AAE/E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;gBAQP,CAAC,CAAC,OAAO;4BACG,CAAC,CAAC,IAAI;CACjC,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAA;;;gBAGL,CAAC,CAAC,IAAI;WACX,CAAC,CAAC,OAAO;;;;;CAKnB,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;gBAEV,CAAC,CAAC,KAAK;;CAEtB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ScopeRail.js","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"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"}
|
package/dist/TeamCard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamCard.d.ts","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TeamCard.d.ts","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":"AAuHA,wBAAgB,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,+BAyGlG"}
|
package/dist/TeamCard.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import styled from "styled-components";
|
|
4
4
|
import { Icon, v } from "@xeonr/platform-ui";
|
|
@@ -6,8 +6,15 @@ import { useConsole } from "./ConsoleProvider.js";
|
|
|
6
6
|
import { ShellLink } from "./links.js";
|
|
7
7
|
// The team switcher card at the top of the section sidebar. It belongs to the
|
|
8
8
|
// shell; the sections under it belong to the product. Team management itself
|
|
9
|
-
// lives in the
|
|
9
|
+
// lives in the console home (CP and Functions each built and deleted their
|
|
10
10
|
// own), so the menu links out for that and only *switches* here.
|
|
11
|
+
//
|
|
12
|
+
// The list is in two parts. A team that has not enabled this product cannot be
|
|
13
|
+
// switched into — the product holds no binding for it — but hiding it is worse
|
|
14
|
+
// than showing it: to someone who sees that team in every other console, a
|
|
15
|
+
// switcher that omits it looks broken. So those teams appear under their own
|
|
16
|
+
// heading and lead to the console home's enable prompt, and a team the caller
|
|
17
|
+
// could not enable it for anyway is shown without being offered.
|
|
11
18
|
const Card = styled.button `
|
|
12
19
|
width: 100%;
|
|
13
20
|
text-align: left;
|
|
@@ -86,6 +93,13 @@ const Warn = styled.div `
|
|
|
86
93
|
word-break: break-word;
|
|
87
94
|
`;
|
|
88
95
|
const Empty = styled.div `font-size: 12px; color: ${v.faint}; padding: 8px 10px;`;
|
|
96
|
+
// An unentitled team, and one the caller cannot act on: same 0.55/faint the kit
|
|
97
|
+
// uses for any disabled control.
|
|
98
|
+
const OffItem = styled(Item) `
|
|
99
|
+
opacity: ${(p) => (p.$mute ? 0.55 : 1)};
|
|
100
|
+
cursor: ${(p) => (p.$mute ? "default" : "pointer")};
|
|
101
|
+
&:hover { background: ${(p) => (p.$mute ? "transparent" : v.hover)}; }
|
|
102
|
+
`;
|
|
89
103
|
function initials(name) {
|
|
90
104
|
return name.split(/[\s-]+/).map((s) => s[0] ?? "").join("").slice(0, 2).toUpperCase();
|
|
91
105
|
}
|
|
@@ -112,9 +126,27 @@ export function TeamCard({ productLabel, authOrigin }) {
|
|
|
112
126
|
};
|
|
113
127
|
}, [open]);
|
|
114
128
|
const t = c.activeTeam;
|
|
115
|
-
|
|
129
|
+
// `entitled` is optional: a BFF that predates it, or auth's own portal whose
|
|
130
|
+
// client cannot know, sends nothing — and those lists only ever contained
|
|
131
|
+
// usable teams, so absent means yes.
|
|
132
|
+
const usable = c.teams.filter((team) => team.entitled !== false);
|
|
133
|
+
const offTeams = c.teams.filter((team) => team.entitled === false);
|
|
134
|
+
return (_jsxs("div", { ref: ref, style: { position: "relative" }, children: [_jsxs(Card, { type: "button", "aria-haspopup": "menu", "aria-expanded": open, onClick: () => setOpen((o) => !o), children: [_jsx(Tile, { "$src": t?.avatarUrl, children: t ? initials(t.name || t.slug) : "?" }), _jsxs(Text, { children: [_jsx("b", { children: t ? t.name || t.slug : "Choose a team" }), _jsx("span", { children: t ? `${t.role} · ${productLabel}` : productLabel })] }), _jsx(Chev, { children: _jsx(Icon, { name: "chevron-down", size: 14 }) })] }), open ? (_jsxs(Menu, { role: "menu", children: [_jsx(MenuLabel, { children: "Your teams" }), c.teams.length === 0 ? _jsx(Empty, { children: "You are not in any team yet." }) : null, usable.length === 0 && c.teams.length > 0 ? _jsxs(Empty, { children: ["No team has ", productLabel, " enabled yet."] }) : null, c.teams.length === 0 && c.me.warnings?.length ? c.me.warnings.slice(0, 4).map((w, i) => _jsx(Warn, { children: w }, i)) : null, usable.map((team) => (_jsxs(Item, { role: "menuitemradio", "aria-checked": team.id === t?.id, "$on": team.id === t?.id, onClick: () => {
|
|
116
135
|
setOpen(false);
|
|
117
136
|
c.setTeam(team.id);
|
|
118
|
-
}, children: [_jsx(Tile, { "$src": team.avatarUrl, style: { width: 24, height: 24, fontSize: 10, borderRadius: 7 }, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: team.role })] }, team.id))),
|
|
137
|
+
}, children: [_jsx(Tile, { "$src": team.avatarUrl, style: { width: 24, height: 24, fontSize: 10, borderRadius: 7 }, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: team.role })] }, team.id))), offTeams.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(MenuLabel, { children: "Not enabled here" }), offTeams.map((team) => {
|
|
138
|
+
const mute = team.canEnable === false;
|
|
139
|
+
return (_jsxs(OffItem, { role: "menuitem", "$mute": mute, "aria-disabled": mute, title: mute
|
|
140
|
+
? `${productLabel} is not enabled for this team, and only an owner can enable it`
|
|
141
|
+
: `Enable ${productLabel} for this team`, onClick: () => {
|
|
142
|
+
if (mute)
|
|
143
|
+
return;
|
|
144
|
+
setOpen(false);
|
|
145
|
+
// Enabling lives on the console home, so go there with the
|
|
146
|
+
// product named rather than into a product this team has no
|
|
147
|
+
// binding for.
|
|
148
|
+
window.location.assign(c.enableHref(c.product, team.slug));
|
|
149
|
+
}, children: [_jsx(Tile, { "$src": team.avatarUrl, style: { width: 24, height: 24, fontSize: 10, borderRadius: 7 }, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: mute ? "ask an owner" : "enable" })] }, team.id));
|
|
150
|
+
})] })) : null, _jsx(Hair, {}), t ? (_jsxs(ItemLink, { href: `${c.homeHref}/members`, mark: _jsx(Icon, { name: "external" }), onClick: () => setOpen(false), children: [_jsx(Icon, { name: "members" }), " Members & roles"] })) : null, _jsxs(ItemLink, { href: `${authOrigin}/teams?new=1`, mark: _jsx(Icon, { name: "external" }), onClick: () => setOpen(false), children: [_jsx(Icon, { name: "add" }), " New team"] })] })) : null] }));
|
|
119
151
|
}
|
|
120
152
|
//# sourceMappingURL=TeamCard.js.map
|
package/dist/TeamCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamCard.js","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAa,CAAC;AAExC,8EAA8E;AAC9E,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"TeamCard.js","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvG,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,SAAa,EAAE,IAAI,GAAE,wBAA6B,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvG,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,SAAa,EAAE,IAAI,GAAE,wBAA6B,GAAG,aAAa,CAiDvG;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;CAC1D;AAKD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,SAAM,GAAG,aAAa,CAuChF"}
|
package/dist/client.js
CHANGED
|
@@ -23,6 +23,29 @@ export function httpConsoleClient(base = "/console", opts = {}) {
|
|
|
23
23
|
getContext: () => call("/context"),
|
|
24
24
|
setContext: (patch) => call("/context", { method: "PATCH", body: JSON.stringify(patch) }),
|
|
25
25
|
listMyInvitations: () => call("/invitations"),
|
|
26
|
+
// Not `call`: this answers 204 with no body, and its failure body is auth's
|
|
27
|
+
// own message ("that product is not self-serve", "you do not own this
|
|
28
|
+
// team"), which the caller shows rather than a status code.
|
|
29
|
+
enableProduct: async (team, product) => {
|
|
30
|
+
const res = await fetch(`${base}/products/enable`, {
|
|
31
|
+
method: "POST",
|
|
32
|
+
credentials: "same-origin",
|
|
33
|
+
headers: { "content-type": "application/json" },
|
|
34
|
+
body: JSON.stringify({ team, product }),
|
|
35
|
+
});
|
|
36
|
+
if (res.status === 401) {
|
|
37
|
+
if (opts.onUnauthenticated) {
|
|
38
|
+
opts.onUnauthenticated("/products/enable");
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
window.location.assign(`/auth/login?next=${encodeURIComponent(window.location.pathname + window.location.search)}`);
|
|
42
|
+
return new Promise(() => { });
|
|
43
|
+
}
|
|
44
|
+
if (!res.ok) {
|
|
45
|
+
const text = (await res.text().catch(() => "")).trim();
|
|
46
|
+
throw new Error(text || `Could not enable ${product} (${res.status})`);
|
|
47
|
+
}
|
|
48
|
+
},
|
|
26
49
|
search: (query, team) => call(`/search?q=${encodeURIComponent(query)}${team ? `&team=${encodeURIComponent(team)}` : ""}`),
|
|
27
50
|
};
|
|
28
51
|
}
|
|
@@ -63,6 +86,12 @@ export function mockConsoleClient(fx, delayMs = 120) {
|
|
|
63
86
|
return wait(next);
|
|
64
87
|
},
|
|
65
88
|
listMyInvitations: () => wait(fx.invitations ?? []),
|
|
89
|
+
enableProduct: async (_team, product) => {
|
|
90
|
+
const p = fx.products.find((x) => x.key === product);
|
|
91
|
+
if (p)
|
|
92
|
+
p.enabled = true;
|
|
93
|
+
await wait(undefined);
|
|
94
|
+
},
|
|
66
95
|
search: (q) => wait(fx.search ? fx.search(q) : []),
|
|
67
96
|
};
|
|
68
97
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -32,6 +32,14 @@ export interface Team {
|
|
|
32
32
|
role: "owner" | "member";
|
|
33
33
|
/** this product's team-typed application roles for the caller */
|
|
34
34
|
roles: string[];
|
|
35
|
+
/**
|
|
36
|
+
* Whether this team has THIS product enabled. Optional and defaulting to true:
|
|
37
|
+
* an older BFF sends only usable teams, and auth's own portal implements this
|
|
38
|
+
* client against a private RPC that has no entitlement concept at all.
|
|
39
|
+
*/
|
|
40
|
+
entitled?: boolean | undefined;
|
|
41
|
+
/** Whether the caller could enable it for this team themselves. */
|
|
42
|
+
canEnable?: boolean | undefined;
|
|
35
43
|
}
|
|
36
44
|
export interface Me {
|
|
37
45
|
subject: string;
|
|
@@ -55,7 +63,12 @@ export interface Invitation {
|
|
|
55
63
|
/** Server-truth for what travels between consoles (ConsoleService.GetContext). */
|
|
56
64
|
export interface ConsoleContext {
|
|
57
65
|
activeTeam: string | null;
|
|
58
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Null means nobody has chosen yet, so the registry's pinned-by-default set
|
|
68
|
+
* applies. An empty array is a choice — "no pins" — and must not revive the
|
|
69
|
+
* defaults. Older BFFs always send an array; treat that as before.
|
|
70
|
+
*/
|
|
71
|
+
pinnedProducts: string[] | null;
|
|
59
72
|
theme: "system" | "light" | "dark";
|
|
60
73
|
}
|
|
61
74
|
export interface ConsoleClient {
|
|
@@ -64,6 +77,17 @@ export interface ConsoleClient {
|
|
|
64
77
|
getContext(): Promise<ConsoleContext>;
|
|
65
78
|
setContext(patch: Partial<ConsoleContext>): Promise<ConsoleContext>;
|
|
66
79
|
listMyInvitations(): Promise<Invitation[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Entitle a team to a product. The BFF endpoint is mounted by every console,
|
|
82
|
+
* so this belongs to the shell rather than each host wiring its own — which
|
|
83
|
+
* is how the launcher's Enable button came to fire nothing at all.
|
|
84
|
+
* Rejects with auth's own refusal text, which says WHICH gate failed.
|
|
85
|
+
*
|
|
86
|
+
* Optional, because not every client is a BFF: auth's own portal implements
|
|
87
|
+
* this interface directly against the private TeamsService, and has no such
|
|
88
|
+
* endpoint. The shell refuses rather than pretending when it is absent.
|
|
89
|
+
*/
|
|
90
|
+
enableProduct?(team: string, product: string): Promise<void>;
|
|
67
91
|
/** federated ⌘K, tier 2 — optional until products expose /console/search */
|
|
68
92
|
search?(query: string, team: string | null): Promise<SearchResult[]>;
|
|
69
93
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAEzD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnD,wGAAwG;AACxG,MAAM,WAAW,OAAO;IACtB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,iEAAiE;IACjE,KAAK,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xeonr/console-shell",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "The Xeonr Cloud Console chrome: product rail, team switcher, section sidebar, top bar, ⌘K and the All-products launcher, plus the console context hooks every product console mounts.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
20
|
"react-router-dom": "^7.0.0",
|
|
21
21
|
"styled-components": "^6.0.0",
|
|
22
|
-
"@xeonr/platform-ui": "^0.3.
|
|
22
|
+
"@xeonr/platform-ui": "^0.3.16"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/react": "^19.1.0",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"react-router-dom": "^7.8.0",
|
|
30
30
|
"styled-components": "^6.1.19",
|
|
31
31
|
"typescript": "^5.9.2",
|
|
32
|
-
"@xeonr/platform-ui": "0.3.
|
|
32
|
+
"@xeonr/platform-ui": "0.3.16"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc -p tsconfig.build.json",
|