@datlv-trustshop/shopify-inapp-components 0.2.8 → 0.2.10
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/AppList.d.ts +1 -0
- package/dist/components/AppList.d.ts.map +1 -0
- package/dist/components/AppList.js +1 -0
- package/dist/components/AppList.js.map +1 -0
- package/dist/components/ArticleList.d.ts +1 -0
- package/dist/components/ArticleList.d.ts.map +1 -0
- package/dist/components/ArticleList.js +1 -0
- package/dist/components/ArticleList.js.map +1 -0
- package/dist/components/ArticleSlide.d.ts +1 -0
- package/dist/components/ArticleSlide.d.ts.map +1 -0
- package/dist/components/ArticleSlide.js +1 -0
- package/dist/components/ArticleSlide.js.map +1 -0
- package/dist/components/FloatingCard.d.ts +1 -0
- package/dist/components/FloatingCard.d.ts.map +1 -0
- package/dist/components/FloatingCard.js +5 -4
- package/dist/components/FloatingCard.js.map +1 -0
- package/dist/components/FooterBanner.d.ts +1 -0
- package/dist/components/FooterBanner.d.ts.map +1 -0
- package/dist/components/FooterBanner.js +1 -0
- package/dist/components/FooterBanner.js.map +1 -0
- package/dist/components/GrowApps.d.ts +6 -6
- package/dist/components/GrowApps.d.ts.map +1 -0
- package/dist/components/GrowApps.js +11 -3
- package/dist/components/GrowApps.js.map +1 -0
- package/dist/components/ImageLoading.d.ts +1 -0
- package/dist/components/ImageLoading.d.ts.map +1 -0
- package/dist/components/ImageLoading.js +1 -0
- package/dist/components/ImageLoading.js.map +1 -0
- package/dist/components/PartnerIntegration.d.ts +8 -8
- package/dist/components/PartnerIntegration.d.ts.map +1 -0
- package/dist/components/PartnerIntegration.js +15 -76
- package/dist/components/PartnerIntegration.js.map +1 -0
- package/dist/components/PartnerList.d.ts +1 -0
- package/dist/components/PartnerList.d.ts.map +1 -0
- package/dist/components/PartnerList.js +1 -0
- package/dist/components/PartnerList.js.map +1 -0
- package/dist/components/PopupBanner.d.ts +4 -4
- package/dist/components/PopupBanner.d.ts.map +1 -0
- package/dist/components/PopupBanner.js +5 -1
- package/dist/components/PopupBanner.js.map +1 -0
- package/dist/components/TopBanner.d.ts +7 -7
- package/dist/components/TopBanner.d.ts.map +1 -0
- package/dist/components/TopBanner.js +15 -30
- package/dist/components/TopBanner.js.map +1 -0
- package/dist/components/WhatsNew.d.ts +6 -7
- package/dist/components/WhatsNew.d.ts.map +1 -0
- package/dist/components/WhatsNew.js +23 -25
- package/dist/components/WhatsNew.js.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inlineStyles.d.ts +1 -0
- package/dist/components/inlineStyles.d.ts.map +1 -0
- package/dist/components/inlineStyles.js +1 -0
- package/dist/components/inlineStyles.js.map +1 -0
- package/dist/components/styles.d.ts +1 -0
- package/dist/components/styles.d.ts.map +1 -0
- package/dist/components/styles.js +1 -0
- package/dist/components/styles.js.map +1 -0
- package/dist/config/component-defaults.d.ts +71 -0
- package/dist/config/component-defaults.d.ts.map +1 -0
- package/dist/config/component-defaults.js +106 -0
- package/dist/config/component-defaults.js.map +1 -0
- package/dist/config/internal-config.d.ts +28 -0
- package/dist/config/internal-config.d.ts.map +1 -0
- package/dist/config/internal-config.js +100 -0
- package/dist/config/internal-config.js.map +1 -0
- package/dist/core/SDKManager.d.ts +262 -0
- package/dist/core/SDKManager.d.ts.map +1 -0
- package/dist/core/SDKManager.js +527 -0
- package/dist/core/SDKManager.js.map +1 -0
- package/dist/core/adapter.d.ts +1 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +1 -0
- package/dist/core/adapter.js.map +1 -0
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +1 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/fetcher.d.ts +1 -0
- package/dist/core/fetcher.d.ts.map +1 -0
- package/dist/core/fetcher.js +1 -0
- package/dist/core/fetcher.js.map +1 -0
- package/dist/core/global-manager.d.ts +1 -0
- package/dist/core/global-manager.d.ts.map +1 -0
- package/dist/core/global-manager.js +1 -0
- package/dist/core/global-manager.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -3
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +2 -3
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useApps.d.ts +1 -0
- package/dist/hooks/useApps.d.ts.map +1 -0
- package/dist/hooks/useApps.js +10 -9
- package/dist/hooks/useApps.js.map +1 -0
- package/dist/hooks/useArticles.d.ts +1 -0
- package/dist/hooks/useArticles.d.ts.map +1 -0
- package/dist/hooks/useArticles.js +10 -14
- package/dist/hooks/useArticles.js.map +1 -0
- package/dist/hooks/useBanner.d.ts +1 -0
- package/dist/hooks/useBanner.d.ts.map +1 -0
- package/dist/hooks/useBanner.js +6 -5
- package/dist/hooks/useBanner.js.map +1 -0
- package/dist/hooks/useCampaignTracking.d.ts +1 -0
- package/dist/hooks/useCampaignTracking.d.ts.map +1 -0
- package/dist/hooks/useCampaignTracking.js +1 -0
- package/dist/hooks/useCampaignTracking.js.map +1 -0
- package/dist/hooks/useDashboard.d.ts +1 -0
- package/dist/hooks/useDashboard.d.ts.map +1 -0
- package/dist/hooks/useDashboard.js +18 -9
- package/dist/hooks/useDashboard.js.map +1 -0
- package/dist/hooks/useFloatingCards.d.ts +4 -2
- package/dist/hooks/useFloatingCards.d.ts.map +1 -0
- package/dist/hooks/useFloatingCards.js +52 -76
- package/dist/hooks/useFloatingCards.js.map +1 -0
- package/dist/hooks/usePartnerIntegration.d.ts +7 -2
- package/dist/hooks/usePartnerIntegration.d.ts.map +1 -0
- package/dist/hooks/usePartnerIntegration.js +26 -37
- package/dist/hooks/usePartnerIntegration.js.map +1 -0
- package/dist/hooks/useTranslations.d.ts +1 -0
- package/dist/hooks/useTranslations.d.ts.map +1 -0
- package/dist/hooks/useTranslations.js +5 -3
- package/dist/hooks/useTranslations.js.map +1 -0
- package/dist/hooks/useWhatsNew.d.ts +1 -0
- package/dist/hooks/useWhatsNew.d.ts.map +1 -0
- package/dist/hooks/useWhatsNew.js +9 -8
- package/dist/hooks/useWhatsNew.js.map +1 -0
- package/dist/index.d.ts +38 -22
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -22
- package/dist/index.js.map +1 -0
- package/dist/translations/default.d.ts +1 -0
- package/dist/translations/default.d.ts.map +1 -0
- package/dist/translations/default.js +1 -0
- package/dist/translations/default.js.map +1 -0
- package/dist/translations/locales/cn.json +39 -0
- package/dist/translations/locales/de.json +39 -0
- package/dist/translations/locales/dk.json +39 -0
- package/dist/translations/locales/en.json +39 -0
- package/dist/translations/locales/es.json +39 -0
- package/dist/translations/locales/fr.json +39 -0
- package/dist/translations/locales/ie.json +39 -0
- package/dist/translations/locales/in.json +39 -0
- package/dist/translations/locales/it.json +39 -0
- package/dist/translations/locales/jp.json +39 -0
- package/dist/translations/locales/nl.json +39 -0
- package/dist/translations/locales/nz.json +39 -0
- package/dist/translations/locales/pt.json +39 -0
- package/dist/translations/locales/se.json +39 -0
- package/dist/translations/locales/vi.json +39 -0
- package/dist/translations/translation-manager.d.ts +89 -0
- package/dist/translations/translation-manager.d.ts.map +1 -0
- package/dist/translations/translation-manager.js +239 -0
- package/dist/translations/translation-manager.js.map +1 -0
- package/dist/types/app.d.ts +1 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +1 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/article.d.ts +1 -0
- package/dist/types/article.d.ts.map +1 -0
- package/dist/types/article.js +1 -0
- package/dist/types/article.js.map +1 -0
- package/dist/types/banner.d.ts +1 -0
- package/dist/types/banner.d.ts.map +1 -0
- package/dist/types/banner.js +1 -0
- package/dist/types/banner.js.map +1 -0
- package/dist/types/component-props.d.ts +140 -0
- package/dist/types/component-props.d.ts.map +1 -0
- package/dist/types/component-props.js +6 -0
- package/dist/types/component-props.js.map +1 -0
- package/dist/types/dashboard.d.ts +1 -0
- package/dist/types/dashboard.d.ts.map +1 -0
- package/dist/types/dashboard.js +1 -0
- package/dist/types/dashboard.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/integration.d.ts +1 -0
- package/dist/types/integration.d.ts.map +1 -0
- package/dist/types/integration.js +1 -0
- package/dist/types/integration.js.map +1 -0
- package/dist/types/partner.d.ts +1 -0
- package/dist/types/partner.d.ts.map +1 -0
- package/dist/types/partner.js +1 -0
- package/dist/types/partner.js.map +1 -0
- package/dist/types/product-update.d.ts +1 -0
- package/dist/types/product-update.d.ts.map +1 -0
- package/dist/types/product-update.js +1 -0
- package/dist/types/product-update.js.map +1 -0
- package/dist/types/translations.d.ts +1 -0
- package/dist/types/translations.d.ts.map +1 -0
- package/dist/types/translations.js +1 -0
- package/dist/types/translations.js.map +1 -0
- package/dist/utils/campaignTracking.d.ts +1 -0
- package/dist/utils/campaignTracking.d.ts.map +1 -0
- package/dist/utils/campaignTracking.js +1 -0
- package/dist/utils/campaignTracking.js.map +1 -0
- package/dist/utils/cls-monitor.d.ts +1 -0
- package/dist/utils/cls-monitor.d.ts.map +1 -0
- package/dist/utils/cls-monitor.js +1 -0
- package/dist/utils/cls-monitor.js.map +1 -0
- package/dist/utils/injectStyles.d.ts +1 -0
- package/dist/utils/injectStyles.d.ts.map +1 -0
- package/dist/utils/injectStyles.js +1 -0
- package/dist/utils/injectStyles.js.map +1 -0
- package/dist/utils/sessionManager.d.ts +1 -0
- package/dist/utils/sessionManager.d.ts.map +1 -0
- package/dist/utils/sessionManager.js +1 -0
- package/dist/utils/sessionManager.js.map +1 -0
- package/package.json +4 -3
- package/dist/hooks/useFloatingCardActions.d.ts +0 -17
- package/dist/hooks/useFloatingCardActions.js +0 -54
- package/dist/hooks/useFloatingCardEngine.d.ts +0 -21
- package/dist/hooks/useFloatingCardEngine.js +0 -39
- package/dist/hooks/useGrowApps.d.ts +0 -10
- package/dist/hooks/useGrowApps.js +0 -14
- package/dist/provider/DashboardProvider.d.ts +0 -36
- package/dist/provider/DashboardProvider.js +0 -200
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React, { createContext, useEffect, useState, useCallback, useMemo, useRef, } from "react";
|
|
3
|
-
import { GlobalDashboardManager } from "../core/global-manager";
|
|
4
|
-
import { defaultTranslations } from "../translations/default";
|
|
5
|
-
import { injectClsStyles } from "../utils/injectStyles";
|
|
6
|
-
export const DashboardContext = createContext(null);
|
|
7
|
-
export const useDashboardContext = () => {
|
|
8
|
-
const context = React.useContext(DashboardContext);
|
|
9
|
-
if (!context) {
|
|
10
|
-
throw new Error('useDashboardContext must be used within a DashboardProvider');
|
|
11
|
-
}
|
|
12
|
-
return context;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* DashboardProvider - Lightweight provider that connects to the global manager
|
|
16
|
-
*
|
|
17
|
-
* Multiple providers can be used throughout the app and they will all share:
|
|
18
|
-
* - The same engine instance
|
|
19
|
-
* - The same data/cache
|
|
20
|
-
* - The same locale state
|
|
21
|
-
* - Deduplicated API calls
|
|
22
|
-
*/
|
|
23
|
-
export const DashboardProvider = ({ children, config, locale, translations, autoInit = true, autoRefreshOnLocaleChange = true, onError, onLoad, onLocaleChange, onFallbackUsed, }) => {
|
|
24
|
-
const [state, setState] = useState({
|
|
25
|
-
data: null,
|
|
26
|
-
loading: false,
|
|
27
|
-
error: null,
|
|
28
|
-
lastFetch: null,
|
|
29
|
-
});
|
|
30
|
-
// Generate unique ID for this provider instance
|
|
31
|
-
const providerIdRef = useRef(`provider-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`);
|
|
32
|
-
// Track if we've called onLoad for this data
|
|
33
|
-
const lastDataRef = useRef(null);
|
|
34
|
-
const lastLocaleRef = useRef(locale || config.locale || "en");
|
|
35
|
-
// Get the global manager
|
|
36
|
-
const manager = useMemo(() => GlobalDashboardManager.getInstance(), []);
|
|
37
|
-
// Create config with current locale
|
|
38
|
-
const currentConfig = useMemo(() => ({
|
|
39
|
-
...config,
|
|
40
|
-
locale: locale || config.locale || "en",
|
|
41
|
-
}), [config, locale]);
|
|
42
|
-
// Inject CLS fix styles on mount (only once globally)
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
injectClsStyles();
|
|
45
|
-
}, []);
|
|
46
|
-
// Register this provider
|
|
47
|
-
useEffect(() => {
|
|
48
|
-
const providerId = providerIdRef.current;
|
|
49
|
-
manager.registerProvider(providerId, currentConfig, autoRefreshOnLocaleChange);
|
|
50
|
-
return () => {
|
|
51
|
-
manager.unregisterProvider(providerId);
|
|
52
|
-
};
|
|
53
|
-
}, [manager, currentConfig, autoRefreshOnLocaleChange]);
|
|
54
|
-
// Subscribe to global state changes
|
|
55
|
-
useEffect(() => {
|
|
56
|
-
const providerId = providerIdRef.current;
|
|
57
|
-
const unsubscribe = manager.subscribe(providerId, (globalState) => {
|
|
58
|
-
setState(globalState);
|
|
59
|
-
// Handle callbacks
|
|
60
|
-
if (globalState.data && globalState.data !== lastDataRef.current) {
|
|
61
|
-
lastDataRef.current = globalState.data;
|
|
62
|
-
// Check for fallback usage
|
|
63
|
-
if (globalState.data.fallback_used && onFallbackUsed) {
|
|
64
|
-
onFallbackUsed(globalState.data.requested_locale || locale || "en", globalState.data.locale || "en");
|
|
65
|
-
}
|
|
66
|
-
if (onLoad) {
|
|
67
|
-
onLoad(globalState.data);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (globalState.error && onError) {
|
|
71
|
-
onError(globalState.error);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
return unsubscribe;
|
|
75
|
-
}, [manager, locale, onError, onLoad, onFallbackUsed]);
|
|
76
|
-
// Handle locale changes
|
|
77
|
-
useEffect(() => {
|
|
78
|
-
if (!locale)
|
|
79
|
-
return;
|
|
80
|
-
const currentLocale = manager.getCurrentLocale();
|
|
81
|
-
if (currentLocale !== locale) {
|
|
82
|
-
const oldLocale = lastLocaleRef.current;
|
|
83
|
-
lastLocaleRef.current = locale;
|
|
84
|
-
if (autoRefreshOnLocaleChange) {
|
|
85
|
-
// Always call setLocale which will handle initialization if needed
|
|
86
|
-
manager.setLocale(locale).catch((error) => {
|
|
87
|
-
console.error('Failed to set locale:', error);
|
|
88
|
-
if (onError) {
|
|
89
|
-
onError(error instanceof Error ? error : new Error('Failed to set locale'));
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// Just update config without refresh
|
|
95
|
-
const engine = manager.getEngine();
|
|
96
|
-
if (engine) {
|
|
97
|
-
engine.updateLocale(locale);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
// No engine yet, update config for future initialization
|
|
101
|
-
manager.registerProvider(providerIdRef.current, currentConfig);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (onLocaleChange) {
|
|
105
|
-
onLocaleChange(locale, oldLocale);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}, [locale, manager, autoRefreshOnLocaleChange, onLocaleChange, onError, currentConfig]);
|
|
109
|
-
// Auto-init on mount if requested
|
|
110
|
-
useEffect(() => {
|
|
111
|
-
if (autoInit) {
|
|
112
|
-
// Always attempt to initialize when autoInit is true
|
|
113
|
-
// The manager will handle deduplication
|
|
114
|
-
manager.init(currentConfig).catch((error) => {
|
|
115
|
-
console.error("Failed to auto-initialize dashboard:", error);
|
|
116
|
-
if (onError) {
|
|
117
|
-
onError(error instanceof Error
|
|
118
|
-
? error
|
|
119
|
-
: new Error("Failed to initialize dashboard"));
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}, [autoInit, manager, currentConfig, onError]);
|
|
124
|
-
// Create refresh function
|
|
125
|
-
const refresh = useCallback(async () => {
|
|
126
|
-
try {
|
|
127
|
-
await manager.refresh();
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
console.error("Failed to refresh dashboard:", error);
|
|
131
|
-
if (onError) {
|
|
132
|
-
onError(error instanceof Error
|
|
133
|
-
? error
|
|
134
|
-
: new Error("Failed to refresh dashboard"));
|
|
135
|
-
}
|
|
136
|
-
throw error;
|
|
137
|
-
}
|
|
138
|
-
}, [manager, onError]);
|
|
139
|
-
// Merge translations with defaults
|
|
140
|
-
const mergedTranslations = useMemo(() => {
|
|
141
|
-
if (!translations)
|
|
142
|
-
return defaultTranslations;
|
|
143
|
-
return {
|
|
144
|
-
whatsNew: {
|
|
145
|
-
...defaultTranslations.whatsNew,
|
|
146
|
-
...translations.whatsNew,
|
|
147
|
-
tabs: {
|
|
148
|
-
...defaultTranslations.whatsNew.tabs,
|
|
149
|
-
...translations.whatsNew?.tabs,
|
|
150
|
-
},
|
|
151
|
-
buttonViewAll: {
|
|
152
|
-
...defaultTranslations.whatsNew.buttonViewAll,
|
|
153
|
-
...translations.whatsNew?.buttonViewAll,
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
growApps: {
|
|
157
|
-
...defaultTranslations.growApps,
|
|
158
|
-
...translations.growApps,
|
|
159
|
-
},
|
|
160
|
-
banner: {
|
|
161
|
-
...defaultTranslations.banner,
|
|
162
|
-
...translations.banner,
|
|
163
|
-
},
|
|
164
|
-
partnerIntegration: {
|
|
165
|
-
...defaultTranslations.partnerIntegration,
|
|
166
|
-
...translations.partnerIntegration,
|
|
167
|
-
},
|
|
168
|
-
};
|
|
169
|
-
}, [translations]);
|
|
170
|
-
// Get engine from manager (might be null initially)
|
|
171
|
-
const engine = manager.getEngine();
|
|
172
|
-
// Create stable context value
|
|
173
|
-
const contextValue = useMemo(() => {
|
|
174
|
-
if (!engine)
|
|
175
|
-
return null;
|
|
176
|
-
return {
|
|
177
|
-
engine,
|
|
178
|
-
state,
|
|
179
|
-
refresh,
|
|
180
|
-
isInitialized: manager.isInitialized(),
|
|
181
|
-
locale: manager.getCurrentLocale(),
|
|
182
|
-
translations: mergedTranslations,
|
|
183
|
-
};
|
|
184
|
-
}, [engine, state, refresh, manager, mergedTranslations]);
|
|
185
|
-
// If engine not ready yet, we can still render children
|
|
186
|
-
// This allows components to mount even if engine isn't initialized
|
|
187
|
-
if (!contextValue) {
|
|
188
|
-
// Create a placeholder context that will update once engine is ready
|
|
189
|
-
const placeholderContext = {
|
|
190
|
-
engine: null, // Will be replaced when ready
|
|
191
|
-
state,
|
|
192
|
-
refresh,
|
|
193
|
-
isInitialized: false,
|
|
194
|
-
locale: manager.getCurrentLocale(),
|
|
195
|
-
translations: mergedTranslations,
|
|
196
|
-
};
|
|
197
|
-
return (_jsx(DashboardContext.Provider, { value: placeholderContext, children: children }));
|
|
198
|
-
}
|
|
199
|
-
return (_jsx(DashboardContext.Provider, { value: contextValue, children: children }));
|
|
200
|
-
};
|