@fluid-app/portal-sdk 0.1.159 → 0.1.161
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/README.md +2 -196
- package/dist/{FluidProvider-Cqf2kmUc.mjs → FluidProvider-B00jTGTH.mjs} +1510 -1624
- package/dist/FluidProvider-B00jTGTH.mjs.map +1 -0
- package/dist/{FluidProvider-Bc-3uN7M.cjs → FluidProvider-BtGi2jJt.cjs} +1458 -1614
- package/dist/FluidProvider-BtGi2jJt.cjs.map +1 -0
- package/dist/{MessagingScreen-BGqIn-c2.cjs → MessagingScreen-BRCUJDDZ.cjs} +2 -2
- package/dist/{MessagingScreen-CbmuvlH6.mjs → MessagingScreen-BWpSXB8Q.mjs} +2 -2
- package/dist/{MessagingScreen-CbmuvlH6.mjs.map → MessagingScreen-BWpSXB8Q.mjs.map} +1 -1
- package/dist/{MessagingScreen-CBPjP4du.cjs → MessagingScreen-C_OLIWCC.cjs} +2 -2
- package/dist/{MessagingScreen-CBPjP4du.cjs.map → MessagingScreen-C_OLIWCC.cjs.map} +1 -1
- package/dist/{MySiteScreen-DSDLDnCN.cjs → MySiteScreen-B90qzZPe.cjs} +2 -2
- package/dist/{MySiteScreen-Cl6nuU99.cjs → MySiteScreen-DLuHDXB1.cjs} +2 -2
- package/dist/{MySiteScreen-Cl6nuU99.cjs.map → MySiteScreen-DLuHDXB1.cjs.map} +1 -1
- package/dist/{MySiteScreen-BT1PBPsH.mjs → MySiteScreen-VaOB-vWk.mjs} +2 -2
- package/dist/{MySiteScreen-BT1PBPsH.mjs.map → MySiteScreen-VaOB-vWk.mjs.map} +1 -1
- package/dist/ProductsScreen-B8OynxlP.cjs +13 -0
- package/dist/{ProductsScreen-4WRrJcvw.mjs → ProductsScreen-CbVSNv1l.mjs} +3 -5
- package/dist/ProductsScreen-CbVSNv1l.mjs.map +1 -0
- package/dist/{ProductsScreen-BCs3YKVk.cjs → ProductsScreen-D1bw4ZIH.cjs} +3 -5
- package/dist/ProductsScreen-D1bw4ZIH.cjs.map +1 -0
- package/dist/ProductsScreen-Pq3j09nI.mjs +11 -0
- package/dist/{ProfileScreen-BgyrIQdL.mjs → ProfileScreen-BCHljkWD.mjs} +2 -2
- package/dist/{ProfileScreen-BgyrIQdL.mjs.map → ProfileScreen-BCHljkWD.mjs.map} +1 -1
- package/dist/{ProfileScreen-B0KNWXpV.cjs → ProfileScreen-Bf-lYNzz.cjs} +2 -2
- package/dist/{ProfileScreen-DLLLRNB2.cjs → ProfileScreen-ksdtbydb.cjs} +2 -2
- package/dist/{ProfileScreen-DLLLRNB2.cjs.map → ProfileScreen-ksdtbydb.cjs.map} +1 -1
- package/dist/{ShareablesScreen-ySSwCVSI.cjs → ShareablesScreen-6wgiwi_9.cjs} +3 -5
- package/dist/ShareablesScreen-6wgiwi_9.cjs.map +1 -0
- package/dist/{ShareablesScreen-B8cmh8JC.mjs → ShareablesScreen-BLCukNTk.mjs} +3 -5
- package/dist/{ShareablesScreen-B8cmh8JC.mjs.map → ShareablesScreen-BLCukNTk.mjs.map} +1 -1
- package/dist/ShareablesScreen-CM9OH-Nx.mjs +11 -0
- package/dist/ShareablesScreen-rmLcUhbL.cjs +13 -0
- package/dist/{ShopScreen-DhMo8bvP.cjs → ShopScreen-8KKwwjka.cjs} +3 -3
- package/dist/{ShopScreen-DhMo8bvP.cjs.map → ShopScreen-8KKwwjka.cjs.map} +1 -1
- package/dist/{ShopScreen-BkvyW0pE.cjs → ShopScreen-CjEbB3Q7.cjs} +2 -2
- package/dist/{ShopScreen-BFFGYwdV.mjs → ShopScreen-Dn5LwwYD.mjs} +3 -3
- package/dist/{ShopScreen-BFFGYwdV.mjs.map → ShopScreen-Dn5LwwYD.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-RScBCcY0.cjs → SubscriptionsScreen-B16wPAoA.cjs} +2 -2
- package/dist/SubscriptionsScreen-B16wPAoA.cjs.map +1 -0
- package/dist/{SubscriptionsScreen-CiNR7JUC.mjs → SubscriptionsScreen-B4cTlgDU.mjs} +2 -2
- package/dist/SubscriptionsScreen-B4cTlgDU.mjs.map +1 -0
- package/dist/{SubscriptionsScreen-DMh-GE6n.cjs → SubscriptionsScreen-nRUMdnx7.cjs} +1 -1
- package/dist/{dist-Bg8UyHyM.cjs → dist-lO2OG0T5.cjs} +1 -1
- package/dist/{dist-Bg8UyHyM.cjs.map → dist-lO2OG0T5.cjs.map} +1 -1
- package/dist/index.cjs +134 -143
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +444 -655
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +444 -655
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +127 -130
- package/dist/index.mjs.map +1 -1
- package/dist/{sortable.esm-Cz-CP2N8.mjs → sortable.esm-DSrWP4x9.mjs} +1 -1
- package/dist/{sortable.esm-Cz-CP2N8.mjs.map → sortable.esm-DSrWP4x9.mjs.map} +1 -1
- package/dist/{use-portal-products-client-BmlUixy4.cjs → use-portal-products-client-BHSBT64s.cjs} +2 -2
- package/dist/use-portal-products-client-BHSBT64s.cjs.map +1 -0
- package/dist/{use-portal-products-client-DQK9nFxT.mjs → use-portal-products-client-tbqk6XUq.mjs} +2 -2
- package/dist/use-portal-products-client-tbqk6XUq.mjs.map +1 -0
- package/dist/{use-portal-shareables-api-KVPj0Jfr.mjs → use-portal-shareables-api-B9B4XTjw.mjs} +107 -201
- package/dist/use-portal-shareables-api-B9B4XTjw.mjs.map +1 -0
- package/dist/{use-portal-shareables-api-D5D6uIJy.cjs → use-portal-shareables-api-MBl0d0eQ.cjs} +106 -206
- package/dist/use-portal-shareables-api-MBl0d0eQ.cjs.map +1 -0
- package/package.json +13 -13
- package/dist/FluidProvider-Bc-3uN7M.cjs.map +0 -1
- package/dist/FluidProvider-Cqf2kmUc.mjs.map +0 -1
- package/dist/ProductsScreen-4WRrJcvw.mjs.map +0 -1
- package/dist/ProductsScreen-BCs3YKVk.cjs.map +0 -1
- package/dist/ProductsScreen-BR9TN4So.cjs +0 -48
- package/dist/ProductsScreen-Da6eWJ_c.mjs +0 -46
- package/dist/ShareablesScreen-DW0wCYOj.mjs +0 -46
- package/dist/ShareablesScreen-DbPJOtCF.cjs +0 -48
- package/dist/ShareablesScreen-ySSwCVSI.cjs.map +0 -1
- package/dist/SubscriptionsScreen-CiNR7JUC.mjs.map +0 -1
- package/dist/SubscriptionsScreen-RScBCcY0.cjs.map +0 -1
- package/dist/use-portal-products-client-BmlUixy4.cjs.map +0 -1
- package/dist/use-portal-products-client-DQK9nFxT.mjs.map +0 -1
- package/dist/use-portal-shareables-api-D5D6uIJy.cjs.map +0 -1
- package/dist/use-portal-shareables-api-KVPj0Jfr.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-9hOWP6kD.cjs");
|
|
3
|
-
const require_FluidProvider = require("./FluidProvider-
|
|
3
|
+
const require_FluidProvider = require("./FluidProvider-BtGi2jJt.cjs");
|
|
4
4
|
require("./account-api-context-pr_NLnGy.cjs");
|
|
5
5
|
require("./mysite-api-context-BTt-_urb.cjs");
|
|
6
6
|
require("./countries-api-context-CwUkJTdy.cjs");
|
|
@@ -42,8 +42,8 @@ const require_ScreenHeaderContext = require("./ScreenHeaderContext-DRIKmM2G.cjs"
|
|
|
42
42
|
const require_use_account = require("./use-account-CrgtI83z.cjs");
|
|
43
43
|
const require_CustomersScreen = require("./CustomersScreen-CSLbl2As.cjs");
|
|
44
44
|
const require_AppNavigationContext = require("./AppNavigationContext-BiYNDj_X.cjs");
|
|
45
|
-
const require_MessagingScreen = require("./MessagingScreen-
|
|
46
|
-
const require_ProfileScreen = require("./ProfileScreen-
|
|
45
|
+
const require_MessagingScreen = require("./MessagingScreen-C_OLIWCC.cjs");
|
|
46
|
+
const require_ProfileScreen = require("./ProfileScreen-ksdtbydb.cjs");
|
|
47
47
|
require("./dist-thaj08s5.cjs");
|
|
48
48
|
require("./es-xQF-WIMq.cjs");
|
|
49
49
|
const require_ContactsScreen = require("./ContactsScreen-BUjE0Idb.cjs");
|
|
@@ -52,13 +52,13 @@ require("./order-status-badge-DeAGe2Ur.cjs");
|
|
|
52
52
|
require("./src-B47XcHTS.cjs");
|
|
53
53
|
require("./dist-BSKQ_GoC.cjs");
|
|
54
54
|
const require_OrdersScreen = require("./OrdersScreen-tSpfcNlK.cjs");
|
|
55
|
-
const require_SubscriptionsScreen = require("./SubscriptionsScreen-
|
|
56
|
-
require("./use-portal-shareables-api-
|
|
57
|
-
const require_ShareablesScreen = require("./ShareablesScreen-
|
|
58
|
-
require("./dist-
|
|
59
|
-
const require_ProductsScreen = require("./ProductsScreen-
|
|
60
|
-
const require_MySiteScreen = require("./MySiteScreen-
|
|
61
|
-
const require_ShopScreen = require("./ShopScreen-
|
|
55
|
+
const require_SubscriptionsScreen = require("./SubscriptionsScreen-B16wPAoA.cjs");
|
|
56
|
+
require("./use-portal-shareables-api-MBl0d0eQ.cjs");
|
|
57
|
+
const require_ShareablesScreen = require("./ShareablesScreen-6wgiwi_9.cjs");
|
|
58
|
+
require("./dist-lO2OG0T5.cjs");
|
|
59
|
+
const require_ProductsScreen = require("./ProductsScreen-D1bw4ZIH.cjs");
|
|
60
|
+
const require_MySiteScreen = require("./MySiteScreen-DLuHDXB1.cjs");
|
|
61
|
+
const require_ShopScreen = require("./ShopScreen-8KKwwjka.cjs");
|
|
62
62
|
require("./UpgradeScreen-BlztCeo5.cjs");
|
|
63
63
|
require("./AppDownloadScreen-BSkt2tYd.cjs");
|
|
64
64
|
let react = require("react");
|
|
@@ -1373,6 +1373,108 @@ function useCompanyScopedQueryKey() {
|
|
|
1373
1373
|
};
|
|
1374
1374
|
}
|
|
1375
1375
|
//#endregion
|
|
1376
|
+
//#region src/transforms/screen-transforms.ts
|
|
1377
|
+
/**
|
|
1378
|
+
* Normalize component_tree to always be an array.
|
|
1379
|
+
* The API stores component_tree as a hash (object), but the frontend expects an array.
|
|
1380
|
+
*/
|
|
1381
|
+
function normalizeComponentTree(componentTree) {
|
|
1382
|
+
if (!componentTree) return [];
|
|
1383
|
+
if (Array.isArray(componentTree)) return componentTree;
|
|
1384
|
+
if (typeof componentTree === "object") return [componentTree];
|
|
1385
|
+
return [];
|
|
1386
|
+
}
|
|
1387
|
+
/**
|
|
1388
|
+
* Convert a raw FluidOS screen to ScreenDefinition.
|
|
1389
|
+
* Normalizes component_tree and converts string IDs to numbers.
|
|
1390
|
+
*/
|
|
1391
|
+
function toScreenDefinition(screen) {
|
|
1392
|
+
return {
|
|
1393
|
+
id: Number(screen.id),
|
|
1394
|
+
slug: screen.slug ?? "",
|
|
1395
|
+
name: screen.name ?? "",
|
|
1396
|
+
component_tree: normalizeComponentTree(screen.component_tree)
|
|
1397
|
+
};
|
|
1398
|
+
}
|
|
1399
|
+
//#endregion
|
|
1400
|
+
//#region src/transforms/navigation-transforms.ts
|
|
1401
|
+
/**
|
|
1402
|
+
* Convert a raw FluidOS navigation item to NavigationItem.
|
|
1403
|
+
* Recursively transforms children and sorts by position.
|
|
1404
|
+
*/
|
|
1405
|
+
function toNavigationItem(item) {
|
|
1406
|
+
const children = (item.children ?? []).map(toNavigationItem).sort((a, b) => (a.position ?? 0) - (b.position ?? 0));
|
|
1407
|
+
return {
|
|
1408
|
+
id: Number(item.id),
|
|
1409
|
+
label: item.label ?? "Untitled",
|
|
1410
|
+
...item.slug != null ? { slug: String(item.slug) } : {},
|
|
1411
|
+
...item.icon != null ? { icon: String(item.icon) } : {},
|
|
1412
|
+
...item.screen_id != null ? { screen_id: Number(item.screen_id) } : {},
|
|
1413
|
+
...item.parent_id != null ? { parent_id: Number(item.parent_id) } : {},
|
|
1414
|
+
...item.source != null ? { source: item.source } : {},
|
|
1415
|
+
position: item.position ?? 0,
|
|
1416
|
+
children
|
|
1417
|
+
};
|
|
1418
|
+
}
|
|
1419
|
+
//#endregion
|
|
1420
|
+
//#region src/transforms/index.ts
|
|
1421
|
+
/**
|
|
1422
|
+
* Convert a raw FluidOS API response to RawManifestResponse.
|
|
1423
|
+
*
|
|
1424
|
+
* The wire format includes `navigation_items` and full theme objects,
|
|
1425
|
+
* but the generated OpenAPI types differ (e.g. `navigation_tree`, `themes: number[]`).
|
|
1426
|
+
* This function bridges that gap so callers avoid `as unknown as` casts.
|
|
1427
|
+
*/
|
|
1428
|
+
function toRawManifest(raw) {
|
|
1429
|
+
if (!raw.manifest) throw new Error("FluidOS API returned empty manifest");
|
|
1430
|
+
return raw;
|
|
1431
|
+
}
|
|
1432
|
+
/**
|
|
1433
|
+
* Transform a raw FluidOS manifest API response into RepAppData.
|
|
1434
|
+
*
|
|
1435
|
+
* This is the top-level transform used by `useFluidApp` and `useFluidProfile`.
|
|
1436
|
+
* It handles:
|
|
1437
|
+
* - Theme transformation (legacy and new formats)
|
|
1438
|
+
* - Screen normalization (component_tree array wrapping)
|
|
1439
|
+
* - Navigation item transformation (recursive with position sorting)
|
|
1440
|
+
*/
|
|
1441
|
+
function transformManifestToRepAppData(response) {
|
|
1442
|
+
const manifest = response.manifest;
|
|
1443
|
+
const rawProfile = manifest.profile;
|
|
1444
|
+
const rawThemes = Array.isArray(rawProfile?.themes) ? rawProfile.themes : [];
|
|
1445
|
+
const screens = (manifest.screens ?? []).map((screen) => toScreenDefinition(screen));
|
|
1446
|
+
const navigationItems = (rawProfile?.navigation?.navigation_items ?? []).map(toNavigationItem);
|
|
1447
|
+
const nav = rawProfile?.navigation;
|
|
1448
|
+
const mobileNav = rawProfile?.mobile_navigation;
|
|
1449
|
+
const mobileNavigationItems = (mobileNav?.navigation_items ?? []).map(toNavigationItem);
|
|
1450
|
+
const activeThemeId = require_FluidProvider.getActiveThemeId(rawThemes);
|
|
1451
|
+
return {
|
|
1452
|
+
definition_id: manifest.definition_id,
|
|
1453
|
+
published_version: manifest.published_version ?? 0,
|
|
1454
|
+
screens,
|
|
1455
|
+
profile: {
|
|
1456
|
+
name: rawProfile?.name ?? "Default",
|
|
1457
|
+
definition_id: rawProfile?.definition_id ?? manifest.definition_id,
|
|
1458
|
+
themes: require_FluidProvider.transformThemes(rawThemes),
|
|
1459
|
+
...activeThemeId !== void 0 ? { activeThemeId } : {},
|
|
1460
|
+
navigation: {
|
|
1461
|
+
definition_id: nav?.definition_id ?? manifest.definition_id,
|
|
1462
|
+
id: nav?.id ?? 0,
|
|
1463
|
+
name: nav?.name ?? "Main Navigation",
|
|
1464
|
+
navigation_items: navigationItems,
|
|
1465
|
+
screens
|
|
1466
|
+
},
|
|
1467
|
+
...mobileNav ? { mobile_navigation: {
|
|
1468
|
+
definition_id: mobileNav.definition_id ?? manifest.definition_id,
|
|
1469
|
+
id: mobileNav.id ?? 0,
|
|
1470
|
+
name: mobileNav.name ?? "Mobile Navigation",
|
|
1471
|
+
navigation_items: mobileNavigationItems,
|
|
1472
|
+
screens
|
|
1473
|
+
} } : {}
|
|
1474
|
+
}
|
|
1475
|
+
};
|
|
1476
|
+
}
|
|
1477
|
+
//#endregion
|
|
1376
1478
|
//#region src/hooks/use-fluid-app.ts
|
|
1377
1479
|
/**
|
|
1378
1480
|
* Base query key for full app data (fluidos endpoint).
|
|
@@ -1385,7 +1487,7 @@ const APP_DATA_QUERY_KEY = ["fluid", "app"];
|
|
|
1385
1487
|
* Shared by `useFluidApp` and `useFluidProfile` to avoid drift.
|
|
1386
1488
|
*/
|
|
1387
1489
|
async function fetchRawManifest(api) {
|
|
1388
|
-
return
|
|
1490
|
+
return toRawManifest(await api.getManifest({ platform: "browser" }));
|
|
1389
1491
|
}
|
|
1390
1492
|
/**
|
|
1391
1493
|
* Module-level persister instance (browser only).
|
|
@@ -1430,7 +1532,7 @@ function useFluidApp(options) {
|
|
|
1430
1532
|
return (0, _tanstack_react_query.useQuery)({
|
|
1431
1533
|
queryKey: scopeKey(APP_DATA_QUERY_KEY),
|
|
1432
1534
|
queryFn: () => fetchRawManifest(fluidOsApi),
|
|
1433
|
-
select:
|
|
1535
|
+
select: transformManifestToRepAppData,
|
|
1434
1536
|
...appDataPersister && { persister: appDataPersister.persisterFn },
|
|
1435
1537
|
...options?.enabled !== void 0 && { enabled: options.enabled }
|
|
1436
1538
|
});
|
|
@@ -2461,16 +2563,16 @@ function AccountManageLayout({ children }) {
|
|
|
2461
2563
|
}
|
|
2462
2564
|
//#endregion
|
|
2463
2565
|
//#region src/shell/system-screen-map.ts
|
|
2464
|
-
const ProfileScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ProfileScreen-
|
|
2566
|
+
const ProfileScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ProfileScreen-Bf-lYNzz.cjs")).then((m) => ({ default: m.ProfileScreen })));
|
|
2465
2567
|
const OrdersScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./OrdersScreen-B7puF8He.cjs")).then((m) => ({ default: m.OrdersScreen })));
|
|
2466
|
-
const SubscriptionsScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./SubscriptionsScreen-
|
|
2467
|
-
const MessagingScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./MessagingScreen-
|
|
2568
|
+
const SubscriptionsScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./SubscriptionsScreen-nRUMdnx7.cjs")).then((m) => ({ default: m.SubscriptionsScreen })));
|
|
2569
|
+
const MessagingScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./MessagingScreen-BRCUJDDZ.cjs")).then((m) => ({ default: m.MessagingScreen })));
|
|
2468
2570
|
const ContactsScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ContactsScreen-BiQdoJnm.cjs")).then((m) => ({ default: m.ContactsScreen })));
|
|
2469
|
-
const ShopScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ShopScreen-
|
|
2571
|
+
const ShopScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ShopScreen-CjEbB3Q7.cjs")).then((m) => ({ default: m.ShopScreen })));
|
|
2470
2572
|
const CustomersScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./CustomersScreen-CSLbl2As.cjs")).then((n) => n.CustomersScreen_exports).then((m) => ({ default: m.CustomersScreen })));
|
|
2471
|
-
const ProductsScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ProductsScreen-
|
|
2472
|
-
const ShareablesScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ShareablesScreen-
|
|
2473
|
-
const MySiteScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./MySiteScreen-
|
|
2573
|
+
const ProductsScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ProductsScreen-B8OynxlP.cjs")).then((m) => ({ default: m.ProductsScreen })));
|
|
2574
|
+
const ShareablesScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./ShareablesScreen-rmLcUhbL.cjs")).then((m) => ({ default: m.ShareablesScreen })));
|
|
2575
|
+
const MySiteScreen$1 = (0, react.lazy)(() => Promise.resolve().then(() => require("./MySiteScreen-B90qzZPe.cjs")).then((m) => ({ default: m.MySiteScreen })));
|
|
2474
2576
|
const UpgradeScreen = (0, react.lazy)(() => Promise.resolve().then(() => require("./UpgradeScreen-Bk35epg9.cjs")).then((m) => ({ default: m.UpgradeScreen })));
|
|
2475
2577
|
const AppDownloadScreen = (0, react.lazy)(() => Promise.resolve().then(() => require("./AppDownloadScreen-BSkt2tYd.cjs")).then((n) => n.AppDownloadScreen_exports).then((m) => ({ default: m.AppDownloadScreen })));
|
|
2476
2578
|
const SYSTEM_SLUG_SCREEN_MAP = {
|
|
@@ -3019,29 +3121,6 @@ function createPortal(config = {}) {
|
|
|
3019
3121
|
(0, react_dom_client.createRoot)(rootElement).render(config.disableStrictMode ? tree : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.StrictMode, { children: tree }));
|
|
3020
3122
|
}
|
|
3021
3123
|
//#endregion
|
|
3022
|
-
//#region src/hooks/use-fluid-api.ts
|
|
3023
|
-
/**
|
|
3024
|
-
* Hook to access the Fluid API client
|
|
3025
|
-
*
|
|
3026
|
-
* @example
|
|
3027
|
-
* ```tsx
|
|
3028
|
-
* function RepProfile() {
|
|
3029
|
-
* const api = useFluidApi();
|
|
3030
|
-
*
|
|
3031
|
-
* const { data: rep } = useQuery({
|
|
3032
|
-
* queryKey: ["rep"],
|
|
3033
|
-
* queryFn: () => api.reps.current(),
|
|
3034
|
-
* });
|
|
3035
|
-
*
|
|
3036
|
-
* return <p>Hello, {rep?.first_name}</p>;
|
|
3037
|
-
* }
|
|
3038
|
-
* ```
|
|
3039
|
-
*/
|
|
3040
|
-
function useFluidApi() {
|
|
3041
|
-
const { client } = require_FluidProvider.useFluidContext();
|
|
3042
|
-
return client;
|
|
3043
|
-
}
|
|
3044
|
-
//#endregion
|
|
3045
3124
|
//#region src/hooks/use-fluid-profile.ts
|
|
3046
3125
|
/**
|
|
3047
3126
|
* Base query key for profile data.
|
|
@@ -3085,58 +3164,11 @@ function useFluidProfile() {
|
|
|
3085
3164
|
queryKey: scopeKey(APP_DATA_QUERY_KEY),
|
|
3086
3165
|
queryFn: () => fetchRawManifest(fluidOsApi),
|
|
3087
3166
|
select: (raw) => {
|
|
3088
|
-
return
|
|
3167
|
+
return transformManifestToRepAppData(raw).profile;
|
|
3089
3168
|
}
|
|
3090
3169
|
});
|
|
3091
3170
|
}
|
|
3092
3171
|
//#endregion
|
|
3093
|
-
//#region src/hooks/use-fluid-permissions.ts
|
|
3094
|
-
/**
|
|
3095
|
-
* Base query key for permissions data.
|
|
3096
|
-
* Kept for backwards compatibility — the runtime key used by the hook
|
|
3097
|
-
* includes a company prefix via {@link useCompanyScopedQueryKey}.
|
|
3098
|
-
*/
|
|
3099
|
-
const PERMISSIONS_QUERY_KEY = ["fluid", "permissions"];
|
|
3100
|
-
/**
|
|
3101
|
-
* Hook to fetch and check user permissions
|
|
3102
|
-
*
|
|
3103
|
-
* @example
|
|
3104
|
-
* ```tsx
|
|
3105
|
-
* function TeamSettings() {
|
|
3106
|
-
* const { can, isSuperAdmin } = useFluidPermissions();
|
|
3107
|
-
*
|
|
3108
|
-
* if (!can("team", "manage")) {
|
|
3109
|
-
* return <AccessDenied />;
|
|
3110
|
-
* }
|
|
3111
|
-
*
|
|
3112
|
-
* return <TeamSettingsForm canDelete={can("team", "delete")} />;
|
|
3113
|
-
* }
|
|
3114
|
-
* ```
|
|
3115
|
-
*/
|
|
3116
|
-
function useFluidPermissions() {
|
|
3117
|
-
const api = useFluidApi();
|
|
3118
|
-
const { scopeKey } = useCompanyScopedQueryKey();
|
|
3119
|
-
const query = (0, _tanstack_react_query.useQuery)({
|
|
3120
|
-
queryKey: scopeKey(PERMISSIONS_QUERY_KEY),
|
|
3121
|
-
queryFn: () => api.permissions.get()
|
|
3122
|
-
});
|
|
3123
|
-
const permissions = query.data;
|
|
3124
|
-
return {
|
|
3125
|
-
query,
|
|
3126
|
-
permissions,
|
|
3127
|
-
can: (0, react.useMemo)(() => {
|
|
3128
|
-
return (resource, action = "view") => {
|
|
3129
|
-
if (!permissions) return false;
|
|
3130
|
-
if (permissions.is_super_admin) return true;
|
|
3131
|
-
const resourcePermissions = permissions.permissions[resource];
|
|
3132
|
-
if (!resourcePermissions) return false;
|
|
3133
|
-
return resourcePermissions[action] ?? false;
|
|
3134
|
-
};
|
|
3135
|
-
}, [permissions]),
|
|
3136
|
-
isSuperAdmin: permissions?.is_super_admin ?? false
|
|
3137
|
-
};
|
|
3138
|
-
}
|
|
3139
|
-
//#endregion
|
|
3140
3172
|
//#region src/hooks/use-fluid-theme.ts
|
|
3141
3173
|
/**
|
|
3142
3174
|
* Hook to access and control theme settings
|
|
@@ -3180,41 +3212,6 @@ function useFluidTheme() {
|
|
|
3180
3212
|
};
|
|
3181
3213
|
}
|
|
3182
3214
|
//#endregion
|
|
3183
|
-
//#region src/hooks/use-current-rep.ts
|
|
3184
|
-
/**
|
|
3185
|
-
* Base query key for current rep data.
|
|
3186
|
-
* Kept for backwards compatibility — the runtime key used by the hook
|
|
3187
|
-
* includes a company prefix via {@link useCompanyScopedQueryKey}.
|
|
3188
|
-
*/
|
|
3189
|
-
const CURRENT_REP_QUERY_KEY = ["fluid", "currentRep"];
|
|
3190
|
-
/**
|
|
3191
|
-
* Hook to fetch the currently authenticated rep's profile
|
|
3192
|
-
*
|
|
3193
|
-
* @example
|
|
3194
|
-
* ```tsx
|
|
3195
|
-
* function RepHeader() {
|
|
3196
|
-
* const { data: rep, isLoading } = useCurrentRep();
|
|
3197
|
-
*
|
|
3198
|
-
* if (isLoading) return <Skeleton />;
|
|
3199
|
-
*
|
|
3200
|
-
* return (
|
|
3201
|
-
* <div>
|
|
3202
|
-
* <Avatar src={rep?.avatar_url} />
|
|
3203
|
-
* <span>{rep?.first_name} {rep?.last_name}</span>
|
|
3204
|
-
* </div>
|
|
3205
|
-
* );
|
|
3206
|
-
* }
|
|
3207
|
-
* ```
|
|
3208
|
-
*/
|
|
3209
|
-
function useCurrentRep() {
|
|
3210
|
-
const api = useFluidApi();
|
|
3211
|
-
const { scopeKey } = useCompanyScopedQueryKey();
|
|
3212
|
-
return (0, _tanstack_react_query.useQuery)({
|
|
3213
|
-
queryKey: scopeKey(CURRENT_REP_QUERY_KEY),
|
|
3214
|
-
queryFn: () => api.reps.current()
|
|
3215
|
-
});
|
|
3216
|
-
}
|
|
3217
|
-
//#endregion
|
|
3218
3215
|
//#region src/hooks/use-company-switch.ts
|
|
3219
3216
|
/**
|
|
3220
3217
|
* Hook that handles company switching for the portal.
|
|
@@ -4032,16 +4029,16 @@ zod.z.object({
|
|
|
4032
4029
|
//#endregion
|
|
4033
4030
|
//#region src/screens/index.ts
|
|
4034
4031
|
const screenPropertySchemas = {
|
|
4035
|
-
ProfileScreen: () => Promise.resolve().then(() => require("./ProfileScreen-
|
|
4036
|
-
MessagingScreen: () => Promise.resolve().then(() => require("./MessagingScreen-
|
|
4032
|
+
ProfileScreen: () => Promise.resolve().then(() => require("./ProfileScreen-Bf-lYNzz.cjs")).then((m) => m.profileScreenPropertySchema),
|
|
4033
|
+
MessagingScreen: () => Promise.resolve().then(() => require("./MessagingScreen-BRCUJDDZ.cjs")).then((m) => m.messagingScreenPropertySchema),
|
|
4037
4034
|
ContactsScreen: () => Promise.resolve().then(() => require("./ContactsScreen-BiQdoJnm.cjs")).then((m) => m.contactsScreenPropertySchema),
|
|
4038
4035
|
OrdersScreen: () => Promise.resolve().then(() => require("./OrdersScreen-B7puF8He.cjs")).then((m) => m.ordersScreenPropertySchema),
|
|
4039
|
-
SubscriptionsScreen: () => Promise.resolve().then(() => require("./SubscriptionsScreen-
|
|
4036
|
+
SubscriptionsScreen: () => Promise.resolve().then(() => require("./SubscriptionsScreen-nRUMdnx7.cjs")).then((m) => m.subscriptionsScreenPropertySchema),
|
|
4040
4037
|
CustomersScreen: () => Promise.resolve().then(() => require("./CustomersScreen-CSLbl2As.cjs")).then((n) => n.CustomersScreen_exports).then((m) => m.customersScreenPropertySchema),
|
|
4041
|
-
ProductsScreen: () => Promise.resolve().then(() => require("./ProductsScreen-
|
|
4042
|
-
MySiteScreen: () => Promise.resolve().then(() => require("./MySiteScreen-
|
|
4043
|
-
ShareablesScreen: () => Promise.resolve().then(() => require("./ShareablesScreen-
|
|
4044
|
-
ShopScreen: () => Promise.resolve().then(() => require("./ShopScreen-
|
|
4038
|
+
ProductsScreen: () => Promise.resolve().then(() => require("./ProductsScreen-B8OynxlP.cjs")).then((m) => m.productsScreenPropertySchema),
|
|
4039
|
+
MySiteScreen: () => Promise.resolve().then(() => require("./MySiteScreen-B90qzZPe.cjs")).then((m) => m.mySiteScreenPropertySchema),
|
|
4040
|
+
ShareablesScreen: () => Promise.resolve().then(() => require("./ShareablesScreen-rmLcUhbL.cjs")).then((m) => m.shareablesScreenPropertySchema),
|
|
4041
|
+
ShopScreen: () => Promise.resolve().then(() => require("./ShopScreen-CjEbB3Q7.cjs")).then((m) => m.shopScreenPropertySchema),
|
|
4045
4042
|
UpgradeScreen: () => Promise.resolve().then(() => require("./UpgradeScreen-Bk35epg9.cjs")).then((m) => m.upgradeScreenPropertySchema),
|
|
4046
4043
|
AppDownloadScreen: () => Promise.resolve().then(() => require("./AppDownloadScreen-BSkt2tYd.cjs")).then((n) => n.AppDownloadScreen_exports).then((m) => m.appDownloadScreenPropertySchema)
|
|
4047
4044
|
};
|
|
@@ -4376,7 +4373,6 @@ exports.AppShell = AppShell;
|
|
|
4376
4373
|
exports.BuilderScreenView = BuilderScreenView;
|
|
4377
4374
|
exports.BulletListWidget = require_BulletListWidget.BulletListWidget;
|
|
4378
4375
|
exports.CORE_PAGE_IDS = CORE_PAGE_IDS;
|
|
4379
|
-
exports.CURRENT_REP_QUERY_KEY = CURRENT_REP_QUERY_KEY;
|
|
4380
4376
|
exports.CalendarWidget = require_CalendarWidget.CalendarWidget;
|
|
4381
4377
|
exports.CardWidget = require_CardWidget.CardWidget;
|
|
4382
4378
|
exports.CarouselWidget = require_CarouselWidget.CarouselWidget;
|
|
@@ -4408,7 +4404,6 @@ exports.MySiteWidget = require_MySiteWidget.MySiteWidget;
|
|
|
4408
4404
|
exports.NestedWidget = require_NestedWidget.NestedWidget;
|
|
4409
4405
|
exports.OrdersScreen = require_OrdersScreen.OrdersScreen;
|
|
4410
4406
|
exports.PAGE_CATEGORIES = PAGE_CATEGORIES;
|
|
4411
|
-
exports.PERMISSIONS_QUERY_KEY = PERMISSIONS_QUERY_KEY;
|
|
4412
4407
|
exports.PROFILE_QUERY_KEY = PROFILE_QUERY_KEY;
|
|
4413
4408
|
exports.PROPERTY_FIELD_TYPES = require_registries.PROPERTY_FIELD_TYPES;
|
|
4414
4409
|
exports.PageRouter = PageRouter;
|
|
@@ -4456,7 +4451,6 @@ exports.contactsScreenPropertySchema = require_ContactsScreen.contactsScreenProp
|
|
|
4456
4451
|
exports.containerWidgetPropertySchema = require_ContainerWidget.containerWidgetPropertySchema;
|
|
4457
4452
|
exports.createCompanyQueryKey = createCompanyQueryKey;
|
|
4458
4453
|
exports.createDefaultFluidConfig = createDefaultFluidConfig;
|
|
4459
|
-
exports.createFluidClient = require_FluidProvider.createFluidClient;
|
|
4460
4454
|
exports.createFluidFileUploader = require_MessagingScreen.createFluidFileUploader;
|
|
4461
4455
|
exports.createPortal = createPortal;
|
|
4462
4456
|
exports.createScreen = require_FluidProvider.createScreen;
|
|
@@ -4502,7 +4496,7 @@ exports.messagingScreenPropertySchema = require_MessagingScreen.messagingScreenP
|
|
|
4502
4496
|
exports.mySiteScreenPropertySchema = require_MySiteScreen.mySiteScreenPropertySchema;
|
|
4503
4497
|
exports.mySiteWidgetPropertySchema = require_MySiteWidget.mySiteWidgetPropertySchema;
|
|
4504
4498
|
exports.nestedWidgetPropertySchema = require_NestedWidget.nestedWidgetPropertySchema;
|
|
4505
|
-
exports.normalizeComponentTree =
|
|
4499
|
+
exports.normalizeComponentTree = normalizeComponentTree;
|
|
4506
4500
|
exports.ordersScreenPropertySchema = require_OrdersScreen.ordersScreenPropertySchema;
|
|
4507
4501
|
exports.parseColor = require_FluidProvider.parseColor;
|
|
4508
4502
|
exports.pointsWidgetPropertySchema = require_PointsWidget.pointsWidgetPropertySchema;
|
|
@@ -4526,10 +4520,10 @@ exports.subscriptionsScreenPropertySchema = require_SubscriptionsScreen.subscrip
|
|
|
4526
4520
|
exports.tableWidgetPropertySchema = require_TableWidget.tableWidgetPropertySchema;
|
|
4527
4521
|
exports.textWidgetPropertySchema = require_TextWidget.textWidgetPropertySchema;
|
|
4528
4522
|
exports.toDoWidgetPropertySchema = require_ToDoWidget.toDoWidgetPropertySchema;
|
|
4529
|
-
exports.toNavigationItem =
|
|
4530
|
-
exports.toRawManifest =
|
|
4531
|
-
exports.toScreenDefinition =
|
|
4532
|
-
exports.transformManifestToRepAppData =
|
|
4523
|
+
exports.toNavigationItem = toNavigationItem;
|
|
4524
|
+
exports.toRawManifest = toRawManifest;
|
|
4525
|
+
exports.toScreenDefinition = toScreenDefinition;
|
|
4526
|
+
exports.transformManifestToRepAppData = transformManifestToRepAppData;
|
|
4533
4527
|
exports.transformThemes = require_FluidProvider.transformThemes;
|
|
4534
4528
|
exports.useActivities = useActivities;
|
|
4535
4529
|
exports.useAppDefinition = useAppDefinition;
|
|
@@ -4543,11 +4537,8 @@ exports.useContact = useContact;
|
|
|
4543
4537
|
exports.useContacts = useContacts;
|
|
4544
4538
|
exports.useConversationMessages = useConversationMessages;
|
|
4545
4539
|
exports.useConversations = useConversations;
|
|
4546
|
-
exports.useCurrentRep = useCurrentRep;
|
|
4547
|
-
exports.useFluidApi = useFluidApi;
|
|
4548
4540
|
exports.useFluidApp = useFluidApp;
|
|
4549
4541
|
exports.useFluidContext = require_FluidProvider.useFluidContext;
|
|
4550
|
-
exports.useFluidPermissions = useFluidPermissions;
|
|
4551
4542
|
exports.useFluidProfile = useFluidProfile;
|
|
4552
4543
|
exports.useFluidTheme = useFluidTheme;
|
|
4553
4544
|
exports.useLogout = useLogout;
|