@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.
Files changed (50) hide show
  1. package/dist/components/WhatsNew.d.ts +2 -0
  2. package/dist/components/WhatsNew.d.ts.map +1 -1
  3. package/dist/components/WhatsNew.js +10 -13
  4. package/dist/components/WhatsNew.js.map +1 -1
  5. package/dist/core/SDKManager.d.ts +36 -4
  6. package/dist/core/SDKManager.d.ts.map +1 -1
  7. package/dist/core/SDKManager.js +210 -63
  8. package/dist/core/SDKManager.js.map +1 -1
  9. package/dist/hooks/index.d.ts +1 -3
  10. package/dist/hooks/index.d.ts.map +1 -1
  11. package/dist/hooks/index.js +1 -3
  12. package/dist/hooks/index.js.map +1 -1
  13. package/dist/hooks/useApps.d.ts +1 -1
  14. package/dist/hooks/useApps.d.ts.map +1 -1
  15. package/dist/hooks/useApps.js +15 -7
  16. package/dist/hooks/useApps.js.map +1 -1
  17. package/dist/hooks/useArticles.d.ts.map +1 -1
  18. package/dist/hooks/useArticles.js +12 -12
  19. package/dist/hooks/useArticles.js.map +1 -1
  20. package/dist/hooks/useBanner.d.ts +1 -1
  21. package/dist/hooks/useBanner.d.ts.map +1 -1
  22. package/dist/hooks/useBanner.js +15 -13
  23. package/dist/hooks/useBanner.js.map +1 -1
  24. package/dist/hooks/useDashboard.d.ts.map +1 -1
  25. package/dist/hooks/useDashboard.js +13 -7
  26. package/dist/hooks/useDashboard.js.map +1 -1
  27. package/dist/hooks/useFloatingCards.d.ts +1 -0
  28. package/dist/hooks/useFloatingCards.d.ts.map +1 -1
  29. package/dist/hooks/useFloatingCards.js +45 -94
  30. package/dist/hooks/useFloatingCards.js.map +1 -1
  31. package/dist/hooks/usePartnerIntegration.d.ts +7 -3
  32. package/dist/hooks/usePartnerIntegration.d.ts.map +1 -1
  33. package/dist/hooks/usePartnerIntegration.js +62 -7
  34. package/dist/hooks/usePartnerIntegration.js.map +1 -1
  35. package/dist/hooks/useWhatsNew.d.ts.map +1 -1
  36. package/dist/hooks/useWhatsNew.js +10 -10
  37. package/dist/hooks/useWhatsNew.js.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/hooks/useFloatingCardActions.d.ts +0 -18
  40. package/dist/hooks/useFloatingCardActions.d.ts.map +0 -1
  41. package/dist/hooks/useFloatingCardActions.js +0 -55
  42. package/dist/hooks/useFloatingCardActions.js.map +0 -1
  43. package/dist/hooks/useFloatingCardEngine.d.ts +0 -22
  44. package/dist/hooks/useFloatingCardEngine.d.ts.map +0 -1
  45. package/dist/hooks/useFloatingCardEngine.js +0 -40
  46. package/dist/hooks/useFloatingCardEngine.js.map +0 -1
  47. package/dist/hooks/useGrowApps.d.ts +0 -11
  48. package/dist/hooks/useGrowApps.d.ts.map +0 -1
  49. package/dist/hooks/useGrowApps.js +0 -15
  50. 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,mDAAmD;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,6CAA6C;QAC7C,OAAO,EAAW,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,MAAM;QACN,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAAW;IAEX,MAAM,EAAE,YAAY,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAElD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;IACpE,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAW;IAKrD,MAAM,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IAEpD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACrE,CAAC;QAED,mDAAmD;QACnD,MAAM,WAAW,GAAG,GAAG,KAAK,gBAAgB,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,KAAK,YAAY,CAAC;QACtC,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAErD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC","sourcesContent":["import { useMemo } from \"react\";\nimport { useSDK } 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 // Legacy hook - components should use SDK directly\n const sdk = useSDK({});\n\n const groups = useMemo(() => {\n // Returning empty for backward compatibility\n return [] as any[];\n }, []);\n\n return {\n groups,\n loading: sdk.loading,\n error: sdk.error,\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
+ {"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,CA8B7D;AAED,wBAAgB,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAG1D;AAED,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAGrD"}
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
- // Legacy hook - components should use SDK directly
5
- const sdk = useSDK({});
4
+ const sdk = useSDK();
6
5
  const updates = useMemo(() => {
7
- // Returning empty for backward compatibility
8
- return [];
9
- }, [limit]);
10
- const getUpdate = (_id) => {
11
- return undefined; // Legacy compatibility
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 = (_type) => {
14
- return []; // Legacy compatibility
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.loading,
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,mDAAmD;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,6CAA6C;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAiC,EAAE;QACxE,OAAO,SAAS,CAAC,CAAC,uBAAuB;IAC3C,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACvB,KAAkC,EACb,EAAE;QACvB,OAAO,EAAE,CAAC,CAAC,uBAAuB;IACpC,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,OAAO;QACpB,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 // Legacy hook - components should use SDK directly\n const sdk = useSDK({});\n\n const updates = useMemo(() => {\n // Returning empty for backward compatibility\n return [];\n }, [limit]);\n\n const getUpdate = (_id: string | number): ProductUpdateItem | undefined => {\n return undefined; // Legacy compatibility\n };\n\n const getUpdatesByType = (\n _type: \"major\" | \"minor\" | \"patch\",\n ): ProductUpdateItem[] => {\n return []; // Legacy compatibility\n };\n\n const getLatestUpdate = (): ProductUpdateItem | null => {\n return updates[0] || null;\n };\n\n return {\n updates,\n loading: sdk.loading,\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"]}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@datlv-trustshop/shopify-inapp-components",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "private": false,
5
5
  "description": "React TypeScript components for Shopify in-app dashboard content",
6
6
  "main": "dist/index.js",
@@ -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"]}