@datlv-trustshop/shopify-inapp-components 0.2.9 → 0.2.11
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/components/WhatsNew.d.ts +2 -0
- package/dist/components/WhatsNew.d.ts.map +1 -1
- package/dist/components/WhatsNew.js +10 -13
- package/dist/components/WhatsNew.js.map +1 -1
- package/dist/core/SDKManager.d.ts +36 -4
- package/dist/core/SDKManager.d.ts.map +1 -1
- package/dist/core/SDKManager.js +210 -63
- package/dist/core/SDKManager.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -3
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useApps.d.ts +1 -1
- package/dist/hooks/useApps.d.ts.map +1 -1
- package/dist/hooks/useApps.js +15 -7
- package/dist/hooks/useApps.js.map +1 -1
- package/dist/hooks/useArticles.d.ts.map +1 -1
- package/dist/hooks/useArticles.js +12 -12
- package/dist/hooks/useArticles.js.map +1 -1
- package/dist/hooks/useBanner.d.ts +1 -1
- package/dist/hooks/useBanner.d.ts.map +1 -1
- package/dist/hooks/useBanner.js +15 -13
- package/dist/hooks/useBanner.js.map +1 -1
- package/dist/hooks/useDashboard.d.ts.map +1 -1
- package/dist/hooks/useDashboard.js +13 -7
- package/dist/hooks/useDashboard.js.map +1 -1
- package/dist/hooks/useFloatingCards.d.ts +1 -0
- package/dist/hooks/useFloatingCards.d.ts.map +1 -1
- package/dist/hooks/useFloatingCards.js +45 -94
- package/dist/hooks/useFloatingCards.js.map +1 -1
- package/dist/hooks/usePartnerIntegration.d.ts +7 -3
- package/dist/hooks/usePartnerIntegration.d.ts.map +1 -1
- package/dist/hooks/usePartnerIntegration.js +62 -7
- package/dist/hooks/usePartnerIntegration.js.map +1 -1
- package/dist/hooks/useWhatsNew.d.ts.map +1 -1
- package/dist/hooks/useWhatsNew.js +10 -10
- package/dist/hooks/useWhatsNew.js.map +1 -1
- package/package.json +1 -1
- package/dist/hooks/useFloatingCardActions.d.ts +0 -18
- package/dist/hooks/useFloatingCardActions.d.ts.map +0 -1
- package/dist/hooks/useFloatingCardActions.js +0 -55
- package/dist/hooks/useFloatingCardActions.js.map +0 -1
- package/dist/hooks/useFloatingCardEngine.d.ts +0 -22
- package/dist/hooks/useFloatingCardEngine.d.ts.map +0 -1
- package/dist/hooks/useFloatingCardEngine.js +0 -40
- package/dist/hooks/useFloatingCardEngine.js.map +0 -1
- package/dist/hooks/useGrowApps.d.ts +0 -11
- package/dist/hooks/useGrowApps.d.ts.map +0 -1
- package/dist/hooks/useGrowApps.js +0 -15
- package/dist/hooks/useGrowApps.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePartnerIntegration.js","sourceRoot":"","sources":["../../src/hooks/usePartnerIntegration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,
|
|
1
|
+
{"version":3,"file":"usePartnerIntegration.js","sourceRoot":"","sources":["../../src/hooks/usePartnerIntegration.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMemo } from \"react\";\nimport { useSDK } from \"../core/SDKManager\";\nimport SDKManager from \"../core/SDKManager\";\nimport { IntegrationItem } from \"../types/integration\";\n\n/**\n * Hook to get all partner integrations from dashboard data\n */\nexport function usePartnerIntegrations() {\n const sdk = useSDK({});\n\n // Get dashboard data from SDK\n const dashboardData = SDKManager.getDashboardData();\n\n // Partner integrations are stored directly in the integrations field\n const integrations = useMemo(() => {\n if (!dashboardData?.integrations) {\n return [];\n }\n // Filter out Google Reviews\n return dashboardData.integrations.filter(\n (item: any) =>\n item.key !== \"google_reviews\" && item.title !== \"Google Reviews\",\n );\n }, [dashboardData]);\n\n // Group integrations by category using the API's category_key field\n const groups = useMemo(() => {\n if (!integrations || integrations.length === 0) {\n return [];\n }\n\n // Group by category_key from API\n const categoryGroups: Record<string, any[]> = {};\n const categoryTitles: Record<string, string> = {};\n \n integrations.forEach((item: any) => {\n const categoryKey = item.category_key || 'other';\n const categoryTitle = item.category || 'Other';\n \n if (!categoryGroups[categoryKey]) {\n categoryGroups[categoryKey] = [];\n categoryTitles[categoryKey] = categoryTitle;\n }\n categoryGroups[categoryKey].push(item);\n });\n\n // Get translations\n const translations = sdk.translations?.partnerIntegration || {};\n\n // Define category order and translation mapping\n const categoryOrder = ['review_sources', 'post_purchase_automation', 'seo_rich_snippets'];\n const translationMap: Record<string, string> = {\n 'review_sources': translations.reviewSourcesTitle || 'Review Sources',\n 'post_purchase_automation': translations.postPurchaseTitle || 'Post-purchase & Automation',\n 'seo_rich_snippets': translations.seoSnippetsTitle || 'SEO & Rich Snippets'\n };\n\n // Build groups in order\n const allGroups: Array<{\n key: string;\n title: string;\n items: any[];\n }> = [];\n \n // Add categories in preferred order first\n categoryOrder.forEach(categoryKey => {\n if (categoryGroups[categoryKey]) {\n allGroups.push({\n key: categoryKey,\n title: translationMap[categoryKey] || categoryTitles[categoryKey],\n items: categoryGroups[categoryKey]\n });\n delete categoryGroups[categoryKey];\n }\n });\n \n // Add any remaining categories\n Object.entries(categoryGroups).forEach(([categoryKey, items]) => {\n allGroups.push({\n key: categoryKey,\n title: categoryTitles[categoryKey],\n items\n });\n });\n\n return allGroups;\n }, [integrations, sdk.translations]);\n\n return {\n groups,\n loading: sdk.dashboardLoading || false,\n error: sdk.dashboardError || null,\n integrations,\n };\n}\n\n/**\n * Hook to get a specific integration by key\n */\nexport function usePartnerIntegrationByKey(\n key: string,\n): IntegrationItem | null {\n const { integrations } = usePartnerIntegrations();\n\n return useMemo(() => {\n return integrations.find((item: any) => item.key === key) || null;\n }, [integrations, key]);\n}\n\n/**\n * Hook to get integration status\n */\nexport function usePartnerIntegrationStatus(key: string): {\n isConnected: boolean;\n isActive: boolean;\n isInstalled: boolean;\n} {\n const integration = usePartnerIntegrationByKey(key);\n\n return useMemo(() => {\n if (!integration) {\n return { isConnected: false, isActive: false, isInstalled: false };\n }\n\n // Check based on integration key and button states\n const isConnected = key === \"google_reviews\";\n const isActive = key !== \"after_ship\";\n const isInstalled = !integration.button_install_text;\n\n return { isConnected, isActive, isInstalled };\n }, [integration, key]);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWhatsNew.d.ts","sourceRoot":"","sources":["../../src/hooks/useWhatsNew.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAClE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,KAAK,iBAAiB,EAAE,CAAC;IAC7E,eAAe,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;CACjD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useWhatsNew.d.ts","sourceRoot":"","sources":["../../src/hooks/useWhatsNew.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAClE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,KAAK,iBAAiB,EAAE,CAAC;IAC7E,eAAe,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;CACjD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA+B7D;AAED,wBAAgB,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAG1D;AAED,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAGrD"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { useSDK } from "../core/SDKManager";
|
|
3
3
|
export function useWhatsNew(limit) {
|
|
4
|
-
|
|
5
|
-
const sdk = useSDK({});
|
|
4
|
+
const sdk = useSDK();
|
|
6
5
|
const updates = useMemo(() => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
if (!sdk.dashboardEngine)
|
|
7
|
+
return [];
|
|
8
|
+
return sdk.dashboardEngine.getWhatsNew(limit);
|
|
9
|
+
}, [sdk.dashboardEngine, sdk.dashboardData, limit]);
|
|
10
|
+
const getUpdate = (id) => {
|
|
11
|
+
return updates.find(update => update.id === id || update.id === String(id) || update.id === Number(id));
|
|
12
12
|
};
|
|
13
|
-
const getUpdatesByType = (
|
|
14
|
-
return
|
|
13
|
+
const getUpdatesByType = (type) => {
|
|
14
|
+
return updates.filter(update => update.type === type);
|
|
15
15
|
};
|
|
16
16
|
const getLatestUpdate = () => {
|
|
17
17
|
return updates[0] || null;
|
|
18
18
|
};
|
|
19
19
|
return {
|
|
20
20
|
updates,
|
|
21
|
-
loading: sdk.
|
|
21
|
+
loading: sdk.dashboardLoading || false,
|
|
22
22
|
getUpdate,
|
|
23
23
|
getUpdatesByType,
|
|
24
24
|
getLatestUpdate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWhatsNew.js","sourceRoot":"","sources":["../../src/hooks/useWhatsNew.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAW5C,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,
|
|
1
|
+
{"version":3,"file":"useWhatsNew.js","sourceRoot":"","sources":["../../src/hooks/useWhatsNew.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAW5C,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,CAAC,GAAG,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,CAAC,EAAmB,EAAiC,EAAE;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACvB,IAAiC,EACZ,EAAE;QACvB,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAA6B,EAAE;QACrD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,CAAC,gBAAgB,IAAI,KAAK;QACtC,SAAS;QACT,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;IAC3C,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import { useMemo } from \"react\";\nimport { useSDK } from \"../core/SDKManager\";\nimport { ProductUpdateItem } from \"../types\";\n\nexport interface UseWhatsNewResult {\n updates: ProductUpdateItem[];\n loading: boolean;\n getUpdate: (id: string | number) => ProductUpdateItem | undefined;\n getUpdatesByType: (type: \"major\" | \"minor\" | \"patch\") => ProductUpdateItem[];\n getLatestUpdate: () => ProductUpdateItem | null;\n}\n\nexport function useWhatsNew(limit?: number): UseWhatsNewResult {\n const sdk = useSDK();\n\n const updates = useMemo(() => {\n if (!sdk.dashboardEngine) return [];\n return sdk.dashboardEngine.getWhatsNew(limit);\n }, [sdk.dashboardEngine, sdk.dashboardData, limit]);\n\n const getUpdate = (id: string | number): ProductUpdateItem | undefined => {\n return updates.find(update => \n update.id === id || update.id === String(id) || update.id === Number(id)\n );\n };\n\n const getUpdatesByType = (\n type: \"major\" | \"minor\" | \"patch\",\n ): ProductUpdateItem[] => {\n return updates.filter(update => update.type === type);\n };\n\n const getLatestUpdate = (): ProductUpdateItem | null => {\n return updates[0] || null;\n };\n\n return {\n updates,\n loading: sdk.dashboardLoading || false,\n getUpdate,\n getUpdatesByType,\n getLatestUpdate,\n };\n}\n\nexport function useLatestUpdate(): ProductUpdateItem | null {\n const { updates } = useWhatsNew(1);\n return updates[0] || null;\n}\n\nexport function useMajorUpdates(): ProductUpdateItem[] {\n const { getUpdatesByType } = useWhatsNew();\n return getUpdatesByType(\"major\");\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { FloatingCardData } from '../components/FloatingCard';
|
|
2
|
-
export interface FloatingCardActionsConfig {
|
|
3
|
-
navigate: (path: string) => void;
|
|
4
|
-
onOpenPricing?: () => void;
|
|
5
|
-
onDismiss?: (cardId: string | number) => void;
|
|
6
|
-
specialRoutes?: {
|
|
7
|
-
[key: string]: () => void;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export interface FloatingCardActionsReturn {
|
|
11
|
-
handlePrimaryAction: (card: FloatingCardData) => void;
|
|
12
|
-
handleSecondaryAction: (card: FloatingCardData) => void;
|
|
13
|
-
handleDismiss: (cardId: string | number) => void;
|
|
14
|
-
resolveAction: (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => void;
|
|
15
|
-
}
|
|
16
|
-
export declare const useFloatingCardActions: (config: FloatingCardActionsConfig) => FloatingCardActionsReturn;
|
|
17
|
-
export default useFloatingCardActions;
|
|
18
|
-
//# sourceMappingURL=useFloatingCardActions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingCardActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useFloatingCardActions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtD,qBAAqB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACjD,aAAa,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CAC5G;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,yBAAyB,KAChC,yBA2EF,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
|
-
export const useFloatingCardActions = (config) => {
|
|
3
|
-
const { navigate, onOpenPricing, onDismiss, specialRoutes = {} } = config;
|
|
4
|
-
const resolveAction = useCallback((action) => {
|
|
5
|
-
if (!action?.url)
|
|
6
|
-
return;
|
|
7
|
-
const url = action.url;
|
|
8
|
-
// Check for special routes first
|
|
9
|
-
if (url === '/pricing' || url.startsWith('/pricing?')) {
|
|
10
|
-
if (onOpenPricing) {
|
|
11
|
-
onOpenPricing();
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
// Check custom special routes
|
|
16
|
-
for (const [route, handler] of Object.entries(specialRoutes)) {
|
|
17
|
-
if (url === route || url.startsWith(`${route}?`)) {
|
|
18
|
-
handler();
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// Handle internal routes (starts with /)
|
|
23
|
-
if (url.startsWith('/')) {
|
|
24
|
-
navigate(url);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
// Handle external links
|
|
28
|
-
if ((url.startsWith('http://') || url.startsWith('https://')) &&
|
|
29
|
-
action.external !== false) {
|
|
30
|
-
window.open(url, '_blank', 'noopener,noreferrer');
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Fallback to navigation for relative paths or unknown formats
|
|
34
|
-
navigate(url);
|
|
35
|
-
}, [navigate, onOpenPricing, specialRoutes]);
|
|
36
|
-
const handlePrimaryAction = useCallback((card) => {
|
|
37
|
-
resolveAction(card.primary_action);
|
|
38
|
-
}, [resolveAction]);
|
|
39
|
-
const handleSecondaryAction = useCallback((card) => {
|
|
40
|
-
resolveAction(card.secondary_action);
|
|
41
|
-
}, [resolveAction]);
|
|
42
|
-
const handleDismiss = useCallback((cardId) => {
|
|
43
|
-
if (onDismiss) {
|
|
44
|
-
onDismiss(cardId);
|
|
45
|
-
}
|
|
46
|
-
}, [onDismiss]);
|
|
47
|
-
return {
|
|
48
|
-
handlePrimaryAction,
|
|
49
|
-
handleSecondaryAction,
|
|
50
|
-
handleDismiss,
|
|
51
|
-
resolveAction,
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
export default useFloatingCardActions;
|
|
55
|
-
//# sourceMappingURL=useFloatingCardActions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingCardActions.js","sourceRoot":"","sources":["../../src/hooks/useFloatingCardActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAmBpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAiC,EACN,EAAE;IAC7B,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAE1E,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,MAAiF,EAAE,EAAE;QACpF,IAAI,CAAC,MAAM,EAAE,GAAG;YAAE,OAAO;QAEzB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEvB,iCAAiC;QACjC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IACE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,KAAK,KAAK,EACzB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,EACD,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CACzC,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,IAAsB,EAAE,EAAE;QACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,IAAsB,EAAE,EAAE;QACzB,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,MAAuB,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,qBAAqB;QACrB,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,sBAAsB,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport { FloatingCardData } from '../components/FloatingCard';\n\nexport interface FloatingCardActionsConfig {\n navigate: (path: string) => void;\n onOpenPricing?: () => void;\n onDismiss?: (cardId: string | number) => void;\n specialRoutes?: {\n [key: string]: () => void;\n };\n}\n\nexport interface FloatingCardActionsReturn {\n handlePrimaryAction: (card: FloatingCardData) => void;\n handleSecondaryAction: (card: FloatingCardData) => void;\n handleDismiss: (cardId: string | number) => void;\n resolveAction: (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => void;\n}\n\nexport const useFloatingCardActions = (\n config: FloatingCardActionsConfig\n): FloatingCardActionsReturn => {\n const { navigate, onOpenPricing, onDismiss, specialRoutes = {} } = config;\n\n const resolveAction = useCallback(\n (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => {\n if (!action?.url) return;\n\n const url = action.url;\n\n // Check for special routes first\n if (url === '/pricing' || url.startsWith('/pricing?')) {\n if (onOpenPricing) {\n onOpenPricing();\n return;\n }\n }\n\n // Check custom special routes\n for (const [route, handler] of Object.entries(specialRoutes)) {\n if (url === route || url.startsWith(`${route}?`)) {\n handler();\n return;\n }\n }\n\n // Handle internal routes (starts with /)\n if (url.startsWith('/')) {\n navigate(url);\n return;\n }\n\n // Handle external links\n if (\n (url.startsWith('http://') || url.startsWith('https://')) &&\n action.external !== false\n ) {\n window.open(url, '_blank', 'noopener,noreferrer');\n return;\n }\n\n // Fallback to navigation for relative paths or unknown formats\n navigate(url);\n },\n [navigate, onOpenPricing, specialRoutes]\n );\n\n const handlePrimaryAction = useCallback(\n (card: FloatingCardData) => {\n resolveAction(card.primary_action);\n },\n [resolveAction]\n );\n\n const handleSecondaryAction = useCallback(\n (card: FloatingCardData) => {\n resolveAction(card.secondary_action);\n },\n [resolveAction]\n );\n\n const handleDismiss = useCallback(\n (cardId: string | number) => {\n if (onDismiss) {\n onDismiss(cardId);\n }\n },\n [onDismiss]\n );\n\n return {\n handlePrimaryAction,\n handleSecondaryAction,\n handleDismiss,\n resolveAction,\n };\n};\n\nexport default useFloatingCardActions;"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { FloatingCardActionsConfig } from './useFloatingCardActions';
|
|
2
|
-
import { FloatingCardData } from '../components/FloatingCard';
|
|
3
|
-
export interface FloatingCardEngineConfig extends Omit<FloatingCardActionsConfig, 'onDismiss'> {
|
|
4
|
-
shopId?: string;
|
|
5
|
-
currentRoute?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface FloatingCardEngineReturn {
|
|
8
|
-
visibleCards: FloatingCardData[];
|
|
9
|
-
loading: boolean;
|
|
10
|
-
error: Error | null;
|
|
11
|
-
handlePrimaryAction: (card: FloatingCardData) => void;
|
|
12
|
-
handleSecondaryAction: (card: FloatingCardData) => void;
|
|
13
|
-
handleDismiss: (cardId: string | number) => void;
|
|
14
|
-
resolveAction: (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => void;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Comprehensive hook that combines floating card data fetching with action handling.
|
|
18
|
-
* This provides a complete solution for floating card functionality.
|
|
19
|
-
*/
|
|
20
|
-
export declare const useFloatingCardEngine: (config: FloatingCardEngineConfig) => FloatingCardEngineReturn;
|
|
21
|
-
export default useFloatingCardEngine;
|
|
22
|
-
//# sourceMappingURL=useFloatingCardEngine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingCardEngine.d.ts","sourceRoot":"","sources":["../../src/hooks/useFloatingCardEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,yBAAyB,EAAE,WAAW,CAAC;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IAEvC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAGpB,mBAAmB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtD,qBAAqB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAGjD,aAAa,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CAC5G;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,wBAAwB,KAC/B,wBAmCF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { useVisibleFloatingCards } from './useFloatingCards';
|
|
2
|
-
import { useFloatingCardActions } from './useFloatingCardActions';
|
|
3
|
-
/**
|
|
4
|
-
* Comprehensive hook that combines floating card data fetching with action handling.
|
|
5
|
-
* This provides a complete solution for floating card functionality.
|
|
6
|
-
*/
|
|
7
|
-
export const useFloatingCardEngine = (config) => {
|
|
8
|
-
const { shopId, currentRoute, navigate, onOpenPricing, specialRoutes } = config;
|
|
9
|
-
// Fetch visible floating cards
|
|
10
|
-
const { visibleCards, dismissCard, loading, error } = useVisibleFloatingCards({
|
|
11
|
-
shopId,
|
|
12
|
-
currentRoute,
|
|
13
|
-
});
|
|
14
|
-
// Set up action handlers with dismiss integrated
|
|
15
|
-
const actions = useFloatingCardActions({
|
|
16
|
-
navigate,
|
|
17
|
-
onOpenPricing,
|
|
18
|
-
specialRoutes,
|
|
19
|
-
onDismiss: (cardId) => {
|
|
20
|
-
// Convert to number if needed for compatibility
|
|
21
|
-
const id = typeof cardId === 'string' ? parseInt(cardId, 10) : cardId;
|
|
22
|
-
if (!isNaN(id)) {
|
|
23
|
-
dismissCard(id);
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
return {
|
|
28
|
-
// Data
|
|
29
|
-
visibleCards,
|
|
30
|
-
loading,
|
|
31
|
-
error,
|
|
32
|
-
// Actions
|
|
33
|
-
handlePrimaryAction: actions.handlePrimaryAction,
|
|
34
|
-
handleSecondaryAction: actions.handleSecondaryAction,
|
|
35
|
-
handleDismiss: actions.handleDismiss,
|
|
36
|
-
resolveAction: actions.resolveAction,
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
export default useFloatingCardEngine;
|
|
40
|
-
//# sourceMappingURL=useFloatingCardEngine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingCardEngine.js","sourceRoot":"","sources":["../../src/hooks/useFloatingCardEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0BAA0B,CAAC;AAuB7F;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAgC,EACN,EAAE;IAC5B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEhF,+BAA+B;IAC/B,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC;QAC5E,MAAM;QACN,YAAY;KACb,CAAC,CAAC;IAEH,iDAAiD;IACjD,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,QAAQ;QACR,aAAa;QACb,aAAa;QACb,SAAS,EAAE,CAAC,MAAuB,EAAE,EAAE;YACrC,gDAAgD;YAChD,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACf,WAAW,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,YAAY;QACZ,OAAO;QACP,KAAK;QAEL,UAAU;QACV,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC","sourcesContent":["import { useVisibleFloatingCards } from './useFloatingCards';\nimport { useFloatingCardActions, FloatingCardActionsConfig } from './useFloatingCardActions';\nimport { FloatingCardData } from '../components/FloatingCard';\n\nexport interface FloatingCardEngineConfig extends Omit<FloatingCardActionsConfig, 'onDismiss'> {\n shopId?: string;\n currentRoute?: string;\n}\n\nexport interface FloatingCardEngineReturn {\n // Data from useVisibleFloatingCards\n visibleCards: FloatingCardData[];\n loading: boolean;\n error: Error | null;\n \n // Actions\n handlePrimaryAction: (card: FloatingCardData) => void;\n handleSecondaryAction: (card: FloatingCardData) => void;\n handleDismiss: (cardId: string | number) => void;\n \n // Direct action resolver for custom use cases\n resolveAction: (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => void;\n}\n\n/**\n * Comprehensive hook that combines floating card data fetching with action handling.\n * This provides a complete solution for floating card functionality.\n */\nexport const useFloatingCardEngine = (\n config: FloatingCardEngineConfig\n): FloatingCardEngineReturn => {\n const { shopId, currentRoute, navigate, onOpenPricing, specialRoutes } = config;\n\n // Fetch visible floating cards\n const { visibleCards, dismissCard, loading, error } = useVisibleFloatingCards({\n shopId,\n currentRoute,\n });\n\n // Set up action handlers with dismiss integrated\n const actions = useFloatingCardActions({\n navigate,\n onOpenPricing,\n specialRoutes,\n onDismiss: (cardId: string | number) => {\n // Convert to number if needed for compatibility\n const id = typeof cardId === 'string' ? parseInt(cardId, 10) : cardId;\n if (!isNaN(id)) {\n dismissCard(id);\n }\n },\n });\n\n return {\n // Data\n visibleCards,\n loading,\n error,\n \n // Actions\n handlePrimaryAction: actions.handlePrimaryAction,\n handleSecondaryAction: actions.handleSecondaryAction,\n handleDismiss: actions.handleDismiss,\n resolveAction: actions.resolveAction,\n };\n};\n\nexport default useFloatingCardEngine;"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hook to access grow apps data from the dashboard context
|
|
3
|
-
* @returns Object containing grow apps array and loading/error states
|
|
4
|
-
*/
|
|
5
|
-
export declare function useGrowApps(): {
|
|
6
|
-
apps: import("..").GrowApp[];
|
|
7
|
-
loading: boolean;
|
|
8
|
-
error: Error | null;
|
|
9
|
-
isEmpty: boolean;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=useGrowApps.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useGrowApps.d.ts","sourceRoot":"","sources":["../../src/hooks/useGrowApps.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW;;;;;EAS1B"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useDashboard } from "./useDashboard";
|
|
2
|
-
/**
|
|
3
|
-
* Hook to access grow apps data from the dashboard context
|
|
4
|
-
* @returns Object containing grow apps array and loading/error states
|
|
5
|
-
*/
|
|
6
|
-
export function useGrowApps() {
|
|
7
|
-
const { data, loading, error } = useDashboard();
|
|
8
|
-
return {
|
|
9
|
-
apps: data?.grow_apps || [],
|
|
10
|
-
loading,
|
|
11
|
-
error,
|
|
12
|
-
isEmpty: !data?.grow_apps || data.grow_apps.length === 0,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=useGrowApps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useGrowApps.js","sourceRoot":"","sources":["../../src/hooks/useGrowApps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IAEhD,OAAO;QACL,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;QAC3B,OAAO;QACP,KAAK;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;KACzD,CAAC;AACJ,CAAC","sourcesContent":["import { useDashboard } from \"./useDashboard\";\n\n/**\n * Hook to access grow apps data from the dashboard context\n * @returns Object containing grow apps array and loading/error states\n */\nexport function useGrowApps() {\n const { data, loading, error } = useDashboard();\n\n return {\n apps: data?.grow_apps || [],\n loading,\n error,\n isEmpty: !data?.grow_apps || data.grow_apps.length === 0,\n };\n}\n"]}
|