@fluid-app/portal-sdk 0.1.182 → 0.1.183
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/{FluidProvider-B1XBDYlq.cjs → FluidProvider-CX2WZMLJ.cjs} +2 -2
- package/dist/{FluidProvider-B1XBDYlq.cjs.map → FluidProvider-CX2WZMLJ.cjs.map} +1 -1
- package/dist/{FluidProvider-B15cV2Xo.mjs → FluidProvider-CxTAbzER.mjs} +2 -2
- package/dist/{FluidProvider-B15cV2Xo.mjs.map → FluidProvider-CxTAbzER.mjs.map} +1 -1
- package/dist/{MessagingScreen-DcAX3uhm.mjs → MessagingScreen-DGB7agVV.mjs} +2 -2
- package/dist/{MessagingScreen-DcAX3uhm.mjs.map → MessagingScreen-DGB7agVV.mjs.map} +1 -1
- package/dist/{MessagingScreen-DIwJdXze.cjs → MessagingScreen-R9yqOP_e.cjs} +2 -2
- package/dist/{MessagingScreen-BTtr7ziP.cjs → MessagingScreen-hdB0BzpO.cjs} +2 -2
- package/dist/{MessagingScreen-BTtr7ziP.cjs.map → MessagingScreen-hdB0BzpO.cjs.map} +1 -1
- package/dist/{PortalContentApiProvider--tsJ7o74.mjs → PortalContentApiProvider-C5BcaBSL.mjs} +147 -26
- package/dist/PortalContentApiProvider-C5BcaBSL.mjs.map +1 -0
- package/dist/{PortalContentApiProvider-DyC6LEke.cjs → PortalContentApiProvider-eSOgc4Nv.cjs} +147 -26
- package/dist/{PortalContentApiProvider-DyC6LEke.cjs.map → PortalContentApiProvider-eSOgc4Nv.cjs.map} +1 -1
- package/dist/{ProductsScreen-Qk1zKT-D.cjs → ProductsScreen-C2mx-086.cjs} +2 -2
- package/dist/{ProductsScreen-S45XRFan.mjs → ProductsScreen-CIT--Mnq.mjs} +2 -2
- package/dist/{ProductsScreen-BjpSL8H8.cjs → ProductsScreen-CJPwyXvT.cjs} +2 -2
- package/dist/{ProductsScreen-BjpSL8H8.cjs.map → ProductsScreen-CJPwyXvT.cjs.map} +1 -1
- package/dist/{ProductsScreen-C80r2yNT.mjs → ProductsScreen-P4n3OFln.mjs} +2 -2
- package/dist/{ProductsScreen-C80r2yNT.mjs.map → ProductsScreen-P4n3OFln.mjs.map} +1 -1
- package/dist/{ProfileScreen-D6iQX-sL.cjs → ProfileScreen-CpQ5GpTs.cjs} +2 -2
- package/dist/{ProfileScreen-D6iQX-sL.cjs.map → ProfileScreen-CpQ5GpTs.cjs.map} +1 -1
- package/dist/{ProfileScreen-CEwrC2f4.cjs → ProfileScreen-D0CUvLHq.cjs} +2 -2
- package/dist/{ProfileScreen-CBnQqqsI.mjs → ProfileScreen-DzhxfhqL.mjs} +2 -2
- package/dist/{ProfileScreen-CBnQqqsI.mjs.map → ProfileScreen-DzhxfhqL.mjs.map} +1 -1
- package/dist/{ShareablesScreen-DBkDODzX.mjs → ShareablesScreen-BII-fIRD.mjs} +27 -22
- package/dist/ShareablesScreen-BII-fIRD.mjs.map +1 -0
- package/dist/{ShareablesScreen-BBxez962.mjs → ShareablesScreen-BLNcb2M-.mjs} +2 -3
- package/dist/{ShareablesScreen-DplgNCYs.cjs → ShareablesScreen-CBrJ8Vzm.cjs} +27 -22
- package/dist/ShareablesScreen-CBrJ8Vzm.cjs.map +1 -0
- package/dist/{ShareablesScreen-38fg84um.cjs → ShareablesScreen-C_KC7Ey1.cjs} +2 -3
- package/dist/{ShopScreen-DQPEIpru.mjs → ShopScreen-1k9PZ8qQ.mjs} +2 -2
- package/dist/{ShopScreen-DQPEIpru.mjs.map → ShopScreen-1k9PZ8qQ.mjs.map} +1 -1
- package/dist/{ShopScreen-r2i_ELGi.cjs → ShopScreen-B9EmEprQ.cjs} +2 -2
- package/dist/{ShopScreen-Cka6dqGQ.cjs → ShopScreen-BkwsMZ6V.cjs} +2 -2
- package/dist/{ShopScreen-Cka6dqGQ.cjs.map → ShopScreen-BkwsMZ6V.cjs.map} +1 -1
- package/dist/index.cjs +17 -17
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +17 -17
- package/dist/{portal_tenant_content-DSG9lqzg.mjs → portal_tenant_content-DgM42X08.mjs} +35 -2
- package/dist/{portal_tenant_content-DSG9lqzg.mjs.map → portal_tenant_content-DgM42X08.mjs.map} +1 -1
- package/dist/{portal_tenant_content-ONX_dSEw.cjs → portal_tenant_content-Dwmo8XZ-.cjs} +52 -1
- package/dist/{portal_tenant_content-ONX_dSEw.cjs.map → portal_tenant_content-Dwmo8XZ-.cjs.map} +1 -1
- package/package.json +15 -15
- package/dist/PortalContentApiProvider--tsJ7o74.mjs.map +0 -1
- package/dist/ShareablesScreen-DBkDODzX.mjs.map +0 -1
- package/dist/ShareablesScreen-DplgNCYs.cjs.map +0 -1
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { n as usePortalTenantClient } from "./PortalTenantClientProvider-4ZmY6hac.mjs";
|
|
2
|
-
import { _ as fluidToast } from "./src-BZbWkXOU.mjs";
|
|
3
2
|
import { t as useAccount } from "./use-account-B16Tor2Q.mjs";
|
|
4
|
-
import { t as useStore } from "./use-store-BnHhQDYo.mjs";
|
|
5
3
|
import { n as useAppNavigation } from "./AppNavigationContext-BW3lSpfT.mjs";
|
|
6
|
-
import { a as ShareablesApp, n as usePortalContentContext, o as ShareablesUIProvider, r as toggleFavorite, s as ShareablesCoreProvider, t as PortalContentApiProvider } from "./PortalContentApiProvider
|
|
4
|
+
import { a as ShareablesApp, n as usePortalContentContext, o as ShareablesUIProvider, r as toggleFavorite, s as ShareablesCoreProvider, t as PortalContentApiProvider } from "./PortalContentApiProvider-C5BcaBSL.mjs";
|
|
7
5
|
import { t as PortalProductsApiProvider } from "./PortalProductsApiProvider-BALswRao.mjs";
|
|
8
6
|
import { t as PORTAL_MYSITE_KEYS } from "./use-mysite-portal-BV-BP3CE.mjs";
|
|
9
7
|
import { useCallback, useMemo } from "react";
|
|
@@ -50,10 +48,9 @@ function ShareablesScreenContent() {
|
|
|
50
48
|
const shareablesCtx = usePortalContentContext();
|
|
51
49
|
const { productsApi: portalProductsApi } = shareablesCtx;
|
|
52
50
|
const { data: account } = useAccount();
|
|
53
|
-
const { data: store } = useStore();
|
|
54
51
|
const { currentSlug, navigate } = useAppNavigation();
|
|
55
52
|
const isCustomer = account?.member_type === "customer";
|
|
56
|
-
const
|
|
53
|
+
const client = usePortalTenantClient();
|
|
57
54
|
const queryClient = useQueryClient();
|
|
58
55
|
const fetchProducts = useCallback(async (search, cursor, limit) => {
|
|
59
56
|
if (search) return portalProductsApi.searchProducts(search, {
|
|
@@ -87,50 +84,58 @@ function ShareablesScreenContent() {
|
|
|
87
84
|
config: useMemo(() => ({
|
|
88
85
|
user: account ? {
|
|
89
86
|
id: account.id,
|
|
90
|
-
company:
|
|
87
|
+
company: null
|
|
91
88
|
} : void 0,
|
|
89
|
+
affiliateId: null,
|
|
92
90
|
basePath: "",
|
|
93
91
|
navigate: (path) => {
|
|
94
92
|
const cleanPath = path.replace(/^\//, "");
|
|
95
93
|
navigate(cleanPath.startsWith("share/") ? cleanPath : `share/${cleanPath}`);
|
|
96
94
|
},
|
|
97
95
|
showToast: (opts) => {
|
|
98
|
-
|
|
99
|
-
title: opts.title,
|
|
100
|
-
type: opts.type
|
|
101
|
-
});
|
|
102
|
-
if (opts.error) console.error("[Shareables]", opts.error);
|
|
96
|
+
console.warn(`[Shareables] ${opts.type}: ${opts.title}`);
|
|
103
97
|
},
|
|
104
98
|
filePickerApi: shareablesCtx.filePickerApi,
|
|
105
99
|
onToggleFavorite: async (params) => {
|
|
106
|
-
const result = await toggleFavorite(
|
|
107
|
-
queryClient.invalidateQueries({ queryKey: PORTAL_MYSITE_KEYS.favorites() });
|
|
108
|
-
return result;
|
|
109
|
-
},
|
|
110
|
-
onMySiteShare: async (params) => {
|
|
111
|
-
const result = await toggleFavorite(portalTenantClient, params.relateable_id, params.relateable_type);
|
|
100
|
+
const result = await toggleFavorite(client, params.favoriteableId, params.favoriteableType);
|
|
112
101
|
queryClient.invalidateQueries({ queryKey: PORTAL_MYSITE_KEYS.favorites() });
|
|
113
102
|
return result;
|
|
114
103
|
},
|
|
115
104
|
onDeletePlaylist: isCustomer ? void 0 : async (playlistId) => {
|
|
116
105
|
await shareablesCtx.playlistsAdapter.deletePlaylist(playlistId);
|
|
117
106
|
},
|
|
118
|
-
|
|
107
|
+
mediaProductsApi: isCustomer ? void 0 : shareablesCtx.mediaProductsAdapter,
|
|
108
|
+
searchProducts: isCustomer ? void 0 : async (query) => {
|
|
109
|
+
return ((await portalProductsApi.searchProducts(query)).products ?? []).map((p) => ({
|
|
110
|
+
id: p.id ?? 0,
|
|
111
|
+
name: p.name ?? p.title ?? "Untitled",
|
|
112
|
+
image_url: p.image_url ?? null,
|
|
113
|
+
price: p.price ?? null
|
|
114
|
+
}));
|
|
115
|
+
},
|
|
116
|
+
readOnly: isCustomer,
|
|
117
|
+
uploadThumbnail: isCustomer ? void 0 : async (blob, filename) => {
|
|
118
|
+
const formData = new FormData();
|
|
119
|
+
formData.append("asset[name]", filename);
|
|
120
|
+
formData.append("asset[file]", blob, filename);
|
|
121
|
+
return (await client.requestWithFormData("/api/content/dam/assets", formData)).asset?.default_variant_url ?? "";
|
|
122
|
+
}
|
|
119
123
|
}), [
|
|
120
124
|
account,
|
|
121
|
-
store,
|
|
122
125
|
navigate,
|
|
123
126
|
shareablesCtx.filePickerApi,
|
|
124
127
|
isCustomer,
|
|
125
128
|
shareablesCtx.playlistsAdapter,
|
|
126
|
-
|
|
129
|
+
shareablesCtx.mediaProductsAdapter,
|
|
130
|
+
portalProductsApi,
|
|
131
|
+
client,
|
|
127
132
|
queryClient
|
|
128
133
|
]),
|
|
129
134
|
children: /* @__PURE__ */ jsx(ShareablesApp, {
|
|
130
135
|
screen,
|
|
131
136
|
detailId,
|
|
132
137
|
action,
|
|
133
|
-
companyLogoUrl:
|
|
138
|
+
companyLogoUrl: void 0,
|
|
134
139
|
countryCode: void 0,
|
|
135
140
|
fetchProducts,
|
|
136
141
|
fetchProduct,
|
|
@@ -152,4 +157,4 @@ const shareablesScreenPropertySchema = {
|
|
|
152
157
|
//#endregion
|
|
153
158
|
export { shareablesScreenPropertySchema as n, ShareablesScreen as t };
|
|
154
159
|
|
|
155
|
-
//# sourceMappingURL=ShareablesScreen-
|
|
160
|
+
//# sourceMappingURL=ShareablesScreen-BII-fIRD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareablesScreen-BII-fIRD.mjs","names":[],"sources":["../src/screens/ShareablesScreen.tsx"],"sourcesContent":["import { useCallback, useMemo, type ComponentProps } from \"react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { PORTAL_MYSITE_KEYS } from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { ShareablesCoreProvider } from \"@fluid-app/shareables-core\";\nimport { ShareablesUIProvider, ShareablesApp } from \"@fluid-app/shareables-ui\";\nimport { useAppNavigation } from \"../shell/AppNavigationContext\";\nimport { useAccount } from \"../hooks/use-account\";\nimport { PortalProductsApiProvider } from \"../products/PortalProductsApiProvider\";\nimport {\n PortalContentApiProvider,\n usePortalContentContext,\n} from \"../content/PortalContentApiProvider\";\nimport { toggleFavorite } from \"../adapters/content-api-adapter\";\nimport { usePortalTenantClient } from \"../providers/PortalTenantClientProvider\";\n\ntype ShareablesScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\n/**\n * Parse the current shareables sub-route from the full slug.\n *\n * System nav slugs are \"share/products\", \"share/media\", \"share/playlists\".\n * Detail pages append an ID: \"share/products/123\", \"share/media/456\".\n *\n * \"share/products\" → screen=\"products\", detailId=null\n * \"share/products/123\" → screen=\"products\", detailId=\"123\"\n * \"share/media/456\" → screen=\"media\", detailId=\"456\"\n * \"share/playlists\" → screen=\"playlists\", detailId=null\n * \"share/playlists/789\" → screen=\"playlists\", detailId=\"789\"\n * \"share/files\" → screen=\"files\", detailId=null\n * \"share\" → screen=null (default to products)\n */\nfunction parseShareablesRoute(currentSlug: string): {\n screen: string | null;\n detailId: string | null;\n action: string | null;\n} {\n // Strip the \"share\" prefix\n const slugWithoutPrefix = currentSlug.replace(/^share\\/?/, \"\");\n if (!slugWithoutPrefix) {\n return { screen: null, detailId: null, action: null };\n }\n\n const parts = slugWithoutPrefix.split(\"/\");\n const screen = parts[0] || null;\n const detailId = parts[1] || null;\n const action = parts[2] || null;\n return { screen, detailId, action };\n}\n\nexport function ShareablesScreen({\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ShareablesScreenProps): React.JSX.Element {\n return (\n <div {...divProps} className={`h-full ${divProps.className ?? \"\"}`}>\n <PortalProductsApiProvider>\n <PortalContentApiProvider>\n <ShareablesScreenContent />\n </PortalContentApiProvider>\n </PortalProductsApiProvider>\n </div>\n );\n}\n\n/** Inner component rendered inside providers so hooks can access context. */\nfunction ShareablesScreenContent(): React.JSX.Element {\n const shareablesCtx = usePortalContentContext();\n const { productsApi: portalProductsApi } = shareablesCtx;\n const { data: account } = useAccount();\n const { currentSlug, navigate } = useAppNavigation();\n const isCustomer = account?.member_type === \"customer\";\n const client = usePortalTenantClient();\n const queryClient = useQueryClient();\n\n const fetchProducts = useCallback(\n async (search: string, cursor?: string, limit?: number) => {\n if (search) {\n return portalProductsApi.searchProducts(search, { cursor, limit });\n }\n return portalProductsApi.listProducts({ cursor, limit });\n },\n [portalProductsApi],\n );\n\n const fetchProduct = useCallback(\n async (id: string | number) => portalProductsApi.getProduct(id),\n [portalProductsApi],\n );\n\n const { screen, detailId, action } = parseShareablesRoute(currentSlug);\n\n const handleNavigate = useCallback(\n (subScreen: string, id?: string) => {\n const path = id ? `share/${subScreen}/${id}` : `share/${subScreen}`;\n navigate(path);\n },\n [navigate],\n );\n\n const handleBack = useCallback(() => {\n if (detailId && screen) {\n navigate(`share/${screen}`);\n } else {\n navigate(\"share/products\");\n }\n }, [navigate, detailId, screen]);\n\n const coreConfig = useMemo(\n () => ({\n user: account ? { id: account.id } : null,\n repContext: true,\n }),\n [account],\n );\n\n const uiConfig = useMemo(\n () => ({\n user: account\n ? {\n id: account.id,\n company: null, // TODO(portal-tenant): company branding not available from /api/account\n }\n : undefined,\n // TODO(portal-tenant): affiliate_id not available from /api/account\n affiliateId: null,\n basePath: \"\",\n navigate: (path: string) => {\n const cleanPath = path.replace(/^\\//, \"\");\n const prefixed = cleanPath.startsWith(\"share/\")\n ? cleanPath\n : `share/${cleanPath}`;\n navigate(prefixed);\n },\n showToast: (opts: {\n title: string;\n type: \"success\" | \"error\" | \"warning\";\n }) => {\n console.warn(`[Shareables] ${opts.type}: ${opts.title}`);\n },\n filePickerApi: shareablesCtx.filePickerApi,\n onToggleFavorite: async (params: {\n favoriteableId: number;\n favoriteableType: string;\n }) => {\n const result = await toggleFavorite(\n client,\n params.favoriteableId,\n params.favoriteableType,\n );\n void queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n return result;\n },\n onDeletePlaylist: isCustomer\n ? undefined\n : async (playlistId: number) => {\n await shareablesCtx.playlistsAdapter.deletePlaylist(playlistId);\n },\n mediaProductsApi: isCustomer\n ? undefined\n : shareablesCtx.mediaProductsAdapter,\n searchProducts: isCustomer\n ? undefined\n : async (query: string) => {\n const result = await portalProductsApi.searchProducts(query);\n return (result.products ?? []).map(\n (p: {\n id?: number;\n title?: string;\n name?: string;\n image_url?: string | null;\n price?: string | null;\n }) => ({\n id: p.id ?? 0,\n name: p.name ?? p.title ?? \"Untitled\",\n image_url: p.image_url ?? null,\n price: p.price ?? null,\n }),\n );\n },\n readOnly: isCustomer,\n uploadThumbnail: isCustomer\n ? undefined\n : async (blob: Blob, filename: string) => {\n const formData = new FormData();\n formData.append(\"asset[name]\", filename);\n formData.append(\"asset[file]\", blob, filename);\n const response = await client.requestWithFormData<{\n asset?: { default_variant_url?: string | null };\n }>(\"/api/content/dam/assets\", formData);\n return response.asset?.default_variant_url ?? \"\";\n },\n }),\n [\n account,\n navigate,\n shareablesCtx.filePickerApi,\n isCustomer,\n shareablesCtx.playlistsAdapter,\n shareablesCtx.mediaProductsAdapter,\n portalProductsApi,\n client,\n queryClient,\n ],\n );\n\n return (\n <ShareablesCoreProvider config={coreConfig}>\n <ShareablesUIProvider config={uiConfig}>\n <ShareablesApp\n screen={screen}\n detailId={detailId}\n action={action}\n companyLogoUrl={undefined}\n countryCode={undefined}\n fetchProducts={fetchProducts}\n fetchProduct={fetchProduct}\n onNavigate={handleNavigate}\n onBack={handleBack}\n />\n </ShareablesUIProvider>\n </ShareablesCoreProvider>\n );\n}\n\nexport const shareablesScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ShareablesScreen\",\n displayName: \"Shareables Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import "./es-I9usCQT-.mjs";
|
|
2
2
|
import "./account-api-context-BIZ_aibJ.mjs";
|
|
3
|
-
import "./store-api-context-C1lXT_3d.mjs";
|
|
4
3
|
import "./mysite-api-context-bXtZ8Gbm.mjs";
|
|
5
4
|
import "./src-BZbWkXOU.mjs";
|
|
6
5
|
import "./ScreenHeaderContext-FYyYk97y.mjs";
|
|
7
6
|
import "./dist-BETEuYfn.mjs";
|
|
8
7
|
import "./SearchSort-CFbJNJDL.mjs";
|
|
9
8
|
import "./dist-DiBoTZfl.mjs";
|
|
10
|
-
import "./PortalContentApiProvider
|
|
9
|
+
import "./PortalContentApiProvider-C5BcaBSL.mjs";
|
|
11
10
|
import "./sortable.esm-CJLSD-Ce.mjs";
|
|
12
11
|
import "./PortalProductsApiProvider-BALswRao.mjs";
|
|
13
12
|
import "./use-mysite-portal-BV-BP3CE.mjs";
|
|
14
|
-
import { n as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-
|
|
13
|
+
import { n as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-BII-fIRD.mjs";
|
|
15
14
|
export { ShareablesScreen, shareablesScreenPropertySchema };
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
require("./chunk-9hOWP6kD.cjs");
|
|
2
2
|
const require_PortalTenantClientProvider = require("./PortalTenantClientProvider-CVv-4rQ9.cjs");
|
|
3
|
-
const require_src = require("./src-CvtwdzKm.cjs");
|
|
4
3
|
const require_use_account = require("./use-account-BWdcuCCW.cjs");
|
|
5
|
-
const require_use_store = require("./use-store-DvtLtZ3f.cjs");
|
|
6
4
|
const require_AppNavigationContext = require("./AppNavigationContext-BKszSW5R.cjs");
|
|
7
|
-
const require_PortalContentApiProvider = require("./PortalContentApiProvider-
|
|
5
|
+
const require_PortalContentApiProvider = require("./PortalContentApiProvider-eSOgc4Nv.cjs");
|
|
8
6
|
const require_PortalProductsApiProvider = require("./PortalProductsApiProvider-Duj-EjQj.cjs");
|
|
9
7
|
const require_use_mysite_portal = require("./use-mysite-portal-DzDYRU0u.cjs");
|
|
10
8
|
let react = require("react");
|
|
@@ -51,10 +49,9 @@ function ShareablesScreenContent() {
|
|
|
51
49
|
const shareablesCtx = require_PortalContentApiProvider.usePortalContentContext();
|
|
52
50
|
const { productsApi: portalProductsApi } = shareablesCtx;
|
|
53
51
|
const { data: account } = require_use_account.useAccount();
|
|
54
|
-
const { data: store } = require_use_store.useStore();
|
|
55
52
|
const { currentSlug, navigate } = require_AppNavigationContext.useAppNavigation();
|
|
56
53
|
const isCustomer = account?.member_type === "customer";
|
|
57
|
-
const
|
|
54
|
+
const client = require_PortalTenantClientProvider.usePortalTenantClient();
|
|
58
55
|
const queryClient = (0, _tanstack_react_query.useQueryClient)();
|
|
59
56
|
const fetchProducts = (0, react.useCallback)(async (search, cursor, limit) => {
|
|
60
57
|
if (search) return portalProductsApi.searchProducts(search, {
|
|
@@ -88,50 +85,58 @@ function ShareablesScreenContent() {
|
|
|
88
85
|
config: (0, react.useMemo)(() => ({
|
|
89
86
|
user: account ? {
|
|
90
87
|
id: account.id,
|
|
91
|
-
company:
|
|
88
|
+
company: null
|
|
92
89
|
} : void 0,
|
|
90
|
+
affiliateId: null,
|
|
93
91
|
basePath: "",
|
|
94
92
|
navigate: (path) => {
|
|
95
93
|
const cleanPath = path.replace(/^\//, "");
|
|
96
94
|
navigate(cleanPath.startsWith("share/") ? cleanPath : `share/${cleanPath}`);
|
|
97
95
|
},
|
|
98
96
|
showToast: (opts) => {
|
|
99
|
-
|
|
100
|
-
title: opts.title,
|
|
101
|
-
type: opts.type
|
|
102
|
-
});
|
|
103
|
-
if (opts.error) console.error("[Shareables]", opts.error);
|
|
97
|
+
console.warn(`[Shareables] ${opts.type}: ${opts.title}`);
|
|
104
98
|
},
|
|
105
99
|
filePickerApi: shareablesCtx.filePickerApi,
|
|
106
100
|
onToggleFavorite: async (params) => {
|
|
107
|
-
const result = await require_PortalContentApiProvider.toggleFavorite(
|
|
108
|
-
queryClient.invalidateQueries({ queryKey: require_use_mysite_portal.PORTAL_MYSITE_KEYS.favorites() });
|
|
109
|
-
return result;
|
|
110
|
-
},
|
|
111
|
-
onMySiteShare: async (params) => {
|
|
112
|
-
const result = await require_PortalContentApiProvider.toggleFavorite(portalTenantClient, params.relateable_id, params.relateable_type);
|
|
101
|
+
const result = await require_PortalContentApiProvider.toggleFavorite(client, params.favoriteableId, params.favoriteableType);
|
|
113
102
|
queryClient.invalidateQueries({ queryKey: require_use_mysite_portal.PORTAL_MYSITE_KEYS.favorites() });
|
|
114
103
|
return result;
|
|
115
104
|
},
|
|
116
105
|
onDeletePlaylist: isCustomer ? void 0 : async (playlistId) => {
|
|
117
106
|
await shareablesCtx.playlistsAdapter.deletePlaylist(playlistId);
|
|
118
107
|
},
|
|
119
|
-
|
|
108
|
+
mediaProductsApi: isCustomer ? void 0 : shareablesCtx.mediaProductsAdapter,
|
|
109
|
+
searchProducts: isCustomer ? void 0 : async (query) => {
|
|
110
|
+
return ((await portalProductsApi.searchProducts(query)).products ?? []).map((p) => ({
|
|
111
|
+
id: p.id ?? 0,
|
|
112
|
+
name: p.name ?? p.title ?? "Untitled",
|
|
113
|
+
image_url: p.image_url ?? null,
|
|
114
|
+
price: p.price ?? null
|
|
115
|
+
}));
|
|
116
|
+
},
|
|
117
|
+
readOnly: isCustomer,
|
|
118
|
+
uploadThumbnail: isCustomer ? void 0 : async (blob, filename) => {
|
|
119
|
+
const formData = new FormData();
|
|
120
|
+
formData.append("asset[name]", filename);
|
|
121
|
+
formData.append("asset[file]", blob, filename);
|
|
122
|
+
return (await client.requestWithFormData("/api/content/dam/assets", formData)).asset?.default_variant_url ?? "";
|
|
123
|
+
}
|
|
120
124
|
}), [
|
|
121
125
|
account,
|
|
122
|
-
store,
|
|
123
126
|
navigate,
|
|
124
127
|
shareablesCtx.filePickerApi,
|
|
125
128
|
isCustomer,
|
|
126
129
|
shareablesCtx.playlistsAdapter,
|
|
127
|
-
|
|
130
|
+
shareablesCtx.mediaProductsAdapter,
|
|
131
|
+
portalProductsApi,
|
|
132
|
+
client,
|
|
128
133
|
queryClient
|
|
129
134
|
]),
|
|
130
135
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PortalContentApiProvider.ShareablesApp, {
|
|
131
136
|
screen,
|
|
132
137
|
detailId,
|
|
133
138
|
action,
|
|
134
|
-
companyLogoUrl:
|
|
139
|
+
companyLogoUrl: void 0,
|
|
135
140
|
countryCode: void 0,
|
|
136
141
|
fetchProducts,
|
|
137
142
|
fetchProduct,
|
|
@@ -164,4 +169,4 @@ Object.defineProperty(exports, "shareablesScreenPropertySchema", {
|
|
|
164
169
|
}
|
|
165
170
|
});
|
|
166
171
|
|
|
167
|
-
//# sourceMappingURL=ShareablesScreen-
|
|
172
|
+
//# sourceMappingURL=ShareablesScreen-CBrJ8Vzm.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShareablesScreen-CBrJ8Vzm.cjs","names":["PortalProductsApiProvider","PortalContentApiProvider","usePortalContentContext","useAccount","useAppNavigation","usePortalTenantClient","ShareablesCoreProvider","ShareablesUIProvider","toggleFavorite","PORTAL_MYSITE_KEYS","ShareablesApp"],"sources":["../src/screens/ShareablesScreen.tsx"],"sourcesContent":["import { useCallback, useMemo, type ComponentProps } from \"react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { PORTAL_MYSITE_KEYS } from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { ShareablesCoreProvider } from \"@fluid-app/shareables-core\";\nimport { ShareablesUIProvider, ShareablesApp } from \"@fluid-app/shareables-ui\";\nimport { useAppNavigation } from \"../shell/AppNavigationContext\";\nimport { useAccount } from \"../hooks/use-account\";\nimport { PortalProductsApiProvider } from \"../products/PortalProductsApiProvider\";\nimport {\n PortalContentApiProvider,\n usePortalContentContext,\n} from \"../content/PortalContentApiProvider\";\nimport { toggleFavorite } from \"../adapters/content-api-adapter\";\nimport { usePortalTenantClient } from \"../providers/PortalTenantClientProvider\";\n\ntype ShareablesScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\n/**\n * Parse the current shareables sub-route from the full slug.\n *\n * System nav slugs are \"share/products\", \"share/media\", \"share/playlists\".\n * Detail pages append an ID: \"share/products/123\", \"share/media/456\".\n *\n * \"share/products\" → screen=\"products\", detailId=null\n * \"share/products/123\" → screen=\"products\", detailId=\"123\"\n * \"share/media/456\" → screen=\"media\", detailId=\"456\"\n * \"share/playlists\" → screen=\"playlists\", detailId=null\n * \"share/playlists/789\" → screen=\"playlists\", detailId=\"789\"\n * \"share/files\" → screen=\"files\", detailId=null\n * \"share\" → screen=null (default to products)\n */\nfunction parseShareablesRoute(currentSlug: string): {\n screen: string | null;\n detailId: string | null;\n action: string | null;\n} {\n // Strip the \"share\" prefix\n const slugWithoutPrefix = currentSlug.replace(/^share\\/?/, \"\");\n if (!slugWithoutPrefix) {\n return { screen: null, detailId: null, action: null };\n }\n\n const parts = slugWithoutPrefix.split(\"/\");\n const screen = parts[0] || null;\n const detailId = parts[1] || null;\n const action = parts[2] || null;\n return { screen, detailId, action };\n}\n\nexport function ShareablesScreen({\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ShareablesScreenProps): React.JSX.Element {\n return (\n <div {...divProps} className={`h-full ${divProps.className ?? \"\"}`}>\n <PortalProductsApiProvider>\n <PortalContentApiProvider>\n <ShareablesScreenContent />\n </PortalContentApiProvider>\n </PortalProductsApiProvider>\n </div>\n );\n}\n\n/** Inner component rendered inside providers so hooks can access context. */\nfunction ShareablesScreenContent(): React.JSX.Element {\n const shareablesCtx = usePortalContentContext();\n const { productsApi: portalProductsApi } = shareablesCtx;\n const { data: account } = useAccount();\n const { currentSlug, navigate } = useAppNavigation();\n const isCustomer = account?.member_type === \"customer\";\n const client = usePortalTenantClient();\n const queryClient = useQueryClient();\n\n const fetchProducts = useCallback(\n async (search: string, cursor?: string, limit?: number) => {\n if (search) {\n return portalProductsApi.searchProducts(search, { cursor, limit });\n }\n return portalProductsApi.listProducts({ cursor, limit });\n },\n [portalProductsApi],\n );\n\n const fetchProduct = useCallback(\n async (id: string | number) => portalProductsApi.getProduct(id),\n [portalProductsApi],\n );\n\n const { screen, detailId, action } = parseShareablesRoute(currentSlug);\n\n const handleNavigate = useCallback(\n (subScreen: string, id?: string) => {\n const path = id ? `share/${subScreen}/${id}` : `share/${subScreen}`;\n navigate(path);\n },\n [navigate],\n );\n\n const handleBack = useCallback(() => {\n if (detailId && screen) {\n navigate(`share/${screen}`);\n } else {\n navigate(\"share/products\");\n }\n }, [navigate, detailId, screen]);\n\n const coreConfig = useMemo(\n () => ({\n user: account ? { id: account.id } : null,\n repContext: true,\n }),\n [account],\n );\n\n const uiConfig = useMemo(\n () => ({\n user: account\n ? {\n id: account.id,\n company: null, // TODO(portal-tenant): company branding not available from /api/account\n }\n : undefined,\n // TODO(portal-tenant): affiliate_id not available from /api/account\n affiliateId: null,\n basePath: \"\",\n navigate: (path: string) => {\n const cleanPath = path.replace(/^\\//, \"\");\n const prefixed = cleanPath.startsWith(\"share/\")\n ? cleanPath\n : `share/${cleanPath}`;\n navigate(prefixed);\n },\n showToast: (opts: {\n title: string;\n type: \"success\" | \"error\" | \"warning\";\n }) => {\n console.warn(`[Shareables] ${opts.type}: ${opts.title}`);\n },\n filePickerApi: shareablesCtx.filePickerApi,\n onToggleFavorite: async (params: {\n favoriteableId: number;\n favoriteableType: string;\n }) => {\n const result = await toggleFavorite(\n client,\n params.favoriteableId,\n params.favoriteableType,\n );\n void queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n return result;\n },\n onDeletePlaylist: isCustomer\n ? undefined\n : async (playlistId: number) => {\n await shareablesCtx.playlistsAdapter.deletePlaylist(playlistId);\n },\n mediaProductsApi: isCustomer\n ? undefined\n : shareablesCtx.mediaProductsAdapter,\n searchProducts: isCustomer\n ? undefined\n : async (query: string) => {\n const result = await portalProductsApi.searchProducts(query);\n return (result.products ?? []).map(\n (p: {\n id?: number;\n title?: string;\n name?: string;\n image_url?: string | null;\n price?: string | null;\n }) => ({\n id: p.id ?? 0,\n name: p.name ?? p.title ?? \"Untitled\",\n image_url: p.image_url ?? null,\n price: p.price ?? null,\n }),\n );\n },\n readOnly: isCustomer,\n uploadThumbnail: isCustomer\n ? undefined\n : async (blob: Blob, filename: string) => {\n const formData = new FormData();\n formData.append(\"asset[name]\", filename);\n formData.append(\"asset[file]\", blob, filename);\n const response = await client.requestWithFormData<{\n asset?: { default_variant_url?: string | null };\n }>(\"/api/content/dam/assets\", formData);\n return response.asset?.default_variant_url ?? \"\";\n },\n }),\n [\n account,\n navigate,\n shareablesCtx.filePickerApi,\n isCustomer,\n shareablesCtx.playlistsAdapter,\n shareablesCtx.mediaProductsAdapter,\n portalProductsApi,\n client,\n queryClient,\n ],\n );\n\n return (\n <ShareablesCoreProvider config={coreConfig}>\n <ShareablesUIProvider config={uiConfig}>\n <ShareablesApp\n screen={screen}\n detailId={detailId}\n action={action}\n companyLogoUrl={undefined}\n countryCode={undefined}\n fetchProducts={fetchProducts}\n fetchProduct={fetchProduct}\n onNavigate={handleNavigate}\n onBack={handleBack}\n />\n </ShareablesUIProvider>\n </ShareablesCoreProvider>\n );\n}\n\nexport const shareablesScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ShareablesScreen\",\n displayName: \"Shareables Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
require("./chunk-9hOWP6kD.cjs");
|
|
2
2
|
require("./account-api-context-DZP9IiGg.cjs");
|
|
3
|
-
require("./store-api-context-D1gZn22Z.cjs");
|
|
4
3
|
require("./mysite-api-context-CilZcDS4.cjs");
|
|
5
4
|
require("./src-CvtwdzKm.cjs");
|
|
6
5
|
require("./ScreenHeaderContext-B06T9svT.cjs");
|
|
@@ -8,10 +7,10 @@ require("./dist-BRT-FAUb.cjs");
|
|
|
8
7
|
require("./es-Dr47illR.cjs");
|
|
9
8
|
require("./SearchSort-BgHSdG1l.cjs");
|
|
10
9
|
require("./dist-DbiSKQz4.cjs");
|
|
11
|
-
require("./PortalContentApiProvider-
|
|
10
|
+
require("./PortalContentApiProvider-eSOgc4Nv.cjs");
|
|
12
11
|
require("./dist-DWs3-WOI.cjs");
|
|
13
12
|
require("./PortalProductsApiProvider-Duj-EjQj.cjs");
|
|
14
13
|
require("./use-mysite-portal-DzDYRU0u.cjs");
|
|
15
|
-
const require_ShareablesScreen = require("./ShareablesScreen-
|
|
14
|
+
const require_ShareablesScreen = require("./ShareablesScreen-CBrJ8Vzm.cjs");
|
|
16
15
|
exports.ShareablesScreen = require_ShareablesScreen.ShareablesScreen;
|
|
17
16
|
exports.shareablesScreenPropertySchema = require_ShareablesScreen.shareablesScreenPropertySchema;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __exportAll } from "./es-I9usCQT-.mjs";
|
|
2
|
-
import { n as useFluidContext } from "./FluidProvider-
|
|
2
|
+
import { n as useFluidContext } from "./FluidProvider-CxTAbzER.mjs";
|
|
3
3
|
import { A as SelectTrigger, D as Select, G as DropdownMenuContent, J as DropdownMenuRadioGroup, Jt as BreadcrumbLink, Kt as Breadcrumb, M as RadioGroup, N as RadioGroupItem, O as SelectContent, W as DropdownMenu, X as DropdownMenuSeparator, Xt as BreadcrumbPage, Y as DropdownMenuRadioItem, Yt as BreadcrumbList, Zt as BreadcrumbSeparator, b as Skeleton, et as DropdownMenuTrigger, j as SelectValue, k as SelectItem, q as DropdownMenuLabel, qt as BreadcrumbItem, un as Button, xt as Card } from "./src-BZbWkXOU.mjs";
|
|
4
4
|
import { n as useScreenHeaderActions, r as useScreenHeaderBreadcrumbs } from "./ScreenHeaderContext-FYyYk97y.mjs";
|
|
5
5
|
import { t as useStore } from "./use-store-BnHhQDYo.mjs";
|
|
@@ -1148,4 +1148,4 @@ function ProductBreadcrumb({ productId }) {
|
|
|
1148
1148
|
//#endregion
|
|
1149
1149
|
export { ShopScreen_exports as n, shopScreenPropertySchema as r, ShopScreen as t };
|
|
1150
1150
|
|
|
1151
|
-
//# sourceMappingURL=ShopScreen-
|
|
1151
|
+
//# sourceMappingURL=ShopScreen-1k9PZ8qQ.mjs.map
|