mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-03 18:22:57 +00:00
5.7 KiB
5.7 KiB
MyUIbrix - Režim náhledu / Preview Mode
🔒 Koncept izolace náhledu
MyUIbrix nyní odděluje režim úprav (náhled) od produkčního zobrazení.
🎯 Jak to funguje
Před uložením:
- ✅ Změny vidíte pouze VY (admin v režimu úprav)
- ❌ Běžní návštěvníci webu změny NEVIDÍ
- 🔒 Preview mode je izolován od produkce
Po kliknutí "Publikovat":
- ✅ Změny se uloží do databáze
- ✅ Stránka se automaticky obnoví
- ✅ Změny jsou viditelné všem návštěvníkům
- ✅ Produkční web používá nové nastavení
🛠️ Technická implementace
1. Preview Events (previewMode flag)
Všechny události pro živý náhled nyní obsahují previewMode: true:
window.dispatchEvent(new CustomEvent('myuibrix-change', {
detail: {
elementName,
variant,
visible,
previewMode: true // ← Klíčový příznak!
}
}));
Události jsou odesílány POUZE když:
isEditing === true(editor je aktivní)- Admin má zapnutý režim úprav
2. Filtrování v hooks
Hook usePageElementConfig ignoruje preview události pokud nejsou v preview mode:
const handleMyUIbrixChange = ((event: CustomEvent) => {
const { elementName, variant, visible, previewMode } = event.detail;
// Aplikuj změny POUZE v preview mode
if (previewMode) {
setConfigs(prev => ({ ...prev, [elementName]: variant }));
setVisibility(prev => ({ ...prev, [elementName]: visible }));
}
}) as EventListener;
3. Produkční reload po uložení
Po úspěšném uložení se stránka automaticky obnoví:
await batchUpdatePageElementConfigs(configsToSave);
toast({
title: 'Změny úspěšně uloženy!',
description: 'Změny jsou nyní viditelné na produkci.',
status: 'success',
});
// Reload aby se načetla nová konfigurace z databáze
setTimeout(() => {
window.location.reload();
}, 1500);
📋 Workflow pro administrátora
Krok 1: Aktivace editoru
1. Přejděte na homepage
2. Klikněte na fialové tlačítko ✏️ (pravý dolní roh)
NEBO použijte: /?myuibrix=edit
Krok 2: Úpravy (Preview Mode)
✓ Vidíte horní lištu s textem "🔒 REŽIM NÁHLEDU"
✓ Pod tím text: "Změny vidíte pouze vy"
✓ Klikejte na elementy, měňte varianty
✓ Změny se zobrazují OKAMŽITĚ, ale jen VÁM
Krok 3: Publikování
1. Klikněte "Publikovat" v horní liště
2. Zobrazí se: "Změny úspěšně uloženy!"
3. Stránka se automaticky obnoví (1.5s)
4. ✅ Změny jsou nyní viditelné všem
🔍 Co vidí různí uživatelé
| Uživatel | Co vidí během editace | Co vidí po uložení |
|---|---|---|
| Admin (editor zapnutý) | ✅ Preview změn v reálném čase | ✅ Produkční verze po reloadu |
| Admin (editor vypnutý) | ❌ Pouze produkční verze | ✅ Produkční verze |
| Běžný návštěvník | ❌ Pouze produkční verze | ✅ Produkční verze |
🎨 Vizuální indikátory
V režimu úprav uvidíte:
1. Horní lišta:
⚽ ELEMENTOR | 🔒 REŽIM NÁHLEDU | Změny vidíte pouze vy
2. Oranžový badge:
- Bliká (animation pulse)
- Text: "🔒 REŽIM NÁHLEDU"
- Připomíná, že jste v preview mode
3. Modrá ohraničení:
- Elementy při najetí myší
- Vybraný element má modrý overlay
📁 Změněné soubory
Frontend:
-
frontend/src/components/editor/MyUIbrixEditor.tsx- Přidán
previewMode: truedo všech událostí - Události se odesílají pouze když
isEditing === true - Přidán vizuální indikátor "REŽIM NÁHLEDU"
- Reload stránky po uložení
- Přidán
-
frontend/src/hooks/usePageElementConfig.ts- Filtrování událostí podle
previewModepříznaku - Ignoruje preview události v produkci
- Filtrování událostí podle
⚠️ Důležité poznámky
✅ Výhody:
- Bezpečné testování změn před publikací
- Žádné nechtěné změny na produkci
- Jasné oddělení náhledu a produkce
- Lepší UX pro administrátory
🔄 Reload po uložení:
- Důvod: Zajistí, že se načte nová konfigurace z databáze
- Trvání: 1.5 sekundy delay (čas na zobrazení toastu)
- Alternativa: Mohli bychom použít SSE/WebSocket pro live reload bez refresh
🎯 Best Practices:
- Vždy testujte změny před publikováním
- Klikněte na různé elementy abyste viděli jak vypadají
- Zkontrolujte mobile view pomocí viewport switcher
- Publikujte až když jste spokojeni s výsledkem
🔧 Řešení problémů
Problem: Změny se nezobrazují po uložení
Řešení:
- Zkontrolujte, že se stránka automaticky obnovila
- Pokud ne, manuálně obnovte (F5)
- Vyčistěte cache prohlížeče
Problem: Vidím změny i když nejsem v editoru
Řešení:
- Ujistěte se, že jste ukončili režim úprav (ESC nebo ✕)
- Obnovte stránku pro reset
Problem: Preview se nenahrává
Řešení:
- Zkontrolujte konzoli prohlížeče (F12)
- Ujistěte se, že backend běží
- Zkontrolujte endpoint:
/api/v1/page-elements?page_type=homepage
🚀 Budoucí vylepšení
Možná rozšíření:
- Historii změn - Undo/Redo funkce
- Verzování - Ukládání verzí konfigurací
- Plánované publikování - Nastavit čas pro auto-publikaci
- Multi-user preview - Sdílení preview URL s jinými adminy
- A/B testování - Testování více variant najednou
Implementováno: 14. října 2025
Verze: 2.0.0
Status: ✅ Production Ready
📞 Kontakt
Pokud máte otázky nebo návrhy na vylepšení:
- Otevřete issue na GitHubu
- Kontaktujte vývojový tým
- Přečtěte si
MYUIBRIX_IMPROVEMENTS.mdpro více informací