mirror of
https://github.com/mue/mue.git
synced 2026-07-15 13:03:55 +02:00
fix: stats, marketplace, deep links on preview
This commit is contained in:
@@ -20,6 +20,15 @@ const Modals = () => {
|
||||
const [deepLinkData, setDeepLinkData] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
// Check for preview mode - block deep links and redirect to /
|
||||
const isPreviewMode = localStorage.getItem('showWelcome') === 'true';
|
||||
if (isPreviewMode && shouldAutoOpenModal()) {
|
||||
window.history.replaceState(null, null, '/');
|
||||
setWelcomeModal(true);
|
||||
setPreview(false);
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for deep link first (has priority)
|
||||
if (shouldAutoOpenModal()) {
|
||||
const linkData = parseDeepLink();
|
||||
|
||||
@@ -16,6 +16,9 @@ function DiscoverContent({ category, onBreadcrumbsChange }) {
|
||||
|
||||
// Check for offline mode
|
||||
const offlineMode = localStorage.getItem('offlineMode') === 'true';
|
||||
// Check for preview mode
|
||||
const isPreviewMode = localStorage.getItem('welcomePreview') === 'true';
|
||||
const previewParam = isPreviewMode ? '&preview=true' : '';
|
||||
const isOffline = navigator.onLine === false || offlineMode;
|
||||
|
||||
// Clear breadcrumbs when component unmounts (navigating away from discover)
|
||||
@@ -39,12 +42,12 @@ function DiscoverContent({ category, onBreadcrumbsChange }) {
|
||||
if (iframeRef.current) {
|
||||
// Collections use path-based routing, others use query params
|
||||
if (category === 'collections') {
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}/collections?embed=true`;
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}/collections?embed=true${previewParam}`;
|
||||
} else {
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}?embed=true&type=${category}`;
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}?embed=true&type=${category}${previewParam}`;
|
||||
}
|
||||
}
|
||||
}, [category, onBreadcrumbsChange]);
|
||||
}, [category, onBreadcrumbsChange, previewParam]);
|
||||
|
||||
useEffect(() => {
|
||||
// Check for item parameter in URL and update iframe
|
||||
@@ -72,10 +75,10 @@ function DiscoverContent({ category, onBreadcrumbsChange }) {
|
||||
const itemIdToUse = item.id || itemId;
|
||||
|
||||
// Navigate to /packs/{id} or /presets/{id}
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}/${pathSegment}/${itemIdToUse}?embed=true`;
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}/${pathSegment}/${itemIdToUse}?embed=true${previewParam}`;
|
||||
} else {
|
||||
// Fallback if item not found in localStorage
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}/packs/${itemId}?embed=true`;
|
||||
iframeRef.current.src = `${MARKETPLACE_URL}/packs/${itemId}?embed=true${previewParam}`;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -91,7 +94,7 @@ function DiscoverContent({ category, onBreadcrumbsChange }) {
|
||||
window.removeEventListener('hashchange', checkAndLoadItem);
|
||||
window.removeEventListener('popstate', checkAndLoadItem);
|
||||
};
|
||||
}, [category]);
|
||||
}, [category, previewParam]);
|
||||
|
||||
useEffect(() => {
|
||||
// Listen for postMessage events from the iframe
|
||||
@@ -229,7 +232,7 @@ function DiscoverContent({ category, onBreadcrumbsChange }) {
|
||||
)}
|
||||
<iframe
|
||||
ref={iframeRef}
|
||||
src={category === 'collections' ? `${MARKETPLACE_URL}/collections?embed=true` : `${MARKETPLACE_URL}?embed=true&type=${category}`}
|
||||
src={category === 'collections' ? `${MARKETPLACE_URL}/collections?embed=true${previewParam}` : `${MARKETPLACE_URL}?embed=true&type=${category}${previewParam}`}
|
||||
onLoad={handleLoad}
|
||||
scrolling="no"
|
||||
style={{
|
||||
|
||||
@@ -4,6 +4,11 @@ import variables from 'config/variables';
|
||||
|
||||
export default class Stats {
|
||||
static async achievementTrigger(stats) {
|
||||
// Disable achievements in preview mode
|
||||
if (localStorage.getItem('showWelcome') === 'true') {
|
||||
return;
|
||||
}
|
||||
|
||||
const newAchievement = newAchievements(stats);
|
||||
newAchievement.forEach((achievement) => {
|
||||
if (achievement) {
|
||||
|
||||
Reference in New Issue
Block a user