link secção nova look

This commit is contained in:
2026-05-04 14:57:11 +01:00
parent bda5470638
commit 78b56a8b78
7 changed files with 3348 additions and 3264 deletions

1
dist/assets/index-CvAWiRXE.css vendored Normal file

File diff suppressed because one or more lines are too long

3304
dist/assets/index-D-Q7LD7U.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

4
dist/index.html vendored
View File

@@ -4,8 +4,8 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MyCloset</title> <title>MyCloset</title>
<script type="module" crossorigin src="/assets/index-D5iCQZqc.js"></script> <script type="module" crossorigin src="/assets/index-D-Q7LD7U.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DJVelbKf.css"> <link rel="stylesheet" crossorigin href="/assets/index-CvAWiRXE.css">
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>

View File

@@ -7,7 +7,7 @@ import {
PanelLeftClose, PanelLeftOpen, Sparkles, CloudSun, PanelLeftClose, PanelLeftOpen, Sparkles, CloudSun,
ArrowRight, Droplets, CheckCircle2, PieChart, History, ArrowRight, Droplets, CheckCircle2, PieChart, History,
X, Download, Bell, Globe, Filter, ShoppingBag, Share2, X, Download, Bell, Globe, Filter, ShoppingBag, Share2,
FolderOpen, Tag FolderOpen, Tag, Link
} from 'lucide-react'; } from 'lucide-react';
import { import {
@@ -162,6 +162,23 @@ export default function App() {
} }
}; };
const handlePasteSharedLink = () => {
const link = window.prompt(t('pasteSharedLookLink') || 'Cole o link do look partilhado:');
if (link) {
try {
const url = new URL(link);
const sharedId = url.searchParams.get('shared');
if (sharedId) {
fetchSharedLook(sharedId);
} else {
alert(t('invalidSharedLink') || 'Link inválido. Certifique-se de copiar o link completo.');
}
} catch (e) {
alert(t('invalidSharedLink') || 'Link inválido. Certifique-se de copiar o link completo.');
}
}
};
useEffect(() => { useEffect(() => {
if (editingItem && editingItem.color) { if (editingItem && editingItem.color) {
setItemColors(editingItem.color.split(',').map(c => c.trim()).filter(Boolean)); setItemColors(editingItem.color.split(',').map(c => c.trim()).filter(Boolean));
@@ -1360,7 +1377,14 @@ export default function App() {
<h3 className="text-2xl font-black tracking-tighter text-inherit">{t('lookHistory')} <span className="text-sm font-bold opacity-40"> {t('availableLooks')} ({availableLooks.length})</span></h3> <h3 className="text-2xl font-black tracking-tighter text-inherit">{t('lookHistory')} <span className="text-sm font-bold opacity-40"> {t('availableLooks')} ({availableLooks.length})</span></h3>
</div> </div>
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Filter size={16} className="text-gray-400" /> <button
onClick={handlePasteSharedLink}
className={`flex items-center gap-2 px-4 py-2 rounded-xl font-black text-[10px] uppercase tracking-widest transition-colors ${darkMode ? 'bg-primary-900/30 text-primary-400 hover:bg-primary-900/50' : 'bg-primary-50 text-primary-600 hover:bg-primary-100'}`}
title={t('pasteSharedLookLink') || 'Colar link de look'}
>
<Link size={14} /> <span className="hidden sm:inline">{t('pasteLink') || 'Colar Link'}</span>
</button>
<Filter size={16} className="text-gray-400 ml-2" />
<select <select
value={colorFilter} value={colorFilter}
onChange={(e) => setColorFilter(e.target.value)} onChange={(e) => setColorFilter(e.target.value)}

View File

@@ -167,6 +167,9 @@ export const translations = {
themeColorTitle: "Cor do Tema", themeColorTitle: "Cor do Tema",
personalizeColorDesc: "Personalize a cor", personalizeColorDesc: "Personalize a cor",
saveChanges: "Guardar Alterações", saveChanges: "Guardar Alterações",
pasteLink: "Colar Link",
pasteSharedLookLink: "Cole o link do look partilhado:",
invalidSharedLink: "Link inválido. Certifique-se de copiar o link completo.",
}, },
EN: { EN: {
loginModeIntro: "The Future of Your Style", loginModeIntro: "The Future of Your Style",
@@ -336,6 +339,9 @@ export const translations = {
themeColorTitle: "Theme Color", themeColorTitle: "Theme Color",
personalizeColorDesc: "Personalize the color", personalizeColorDesc: "Personalize the color",
saveChanges: "Save Changes", saveChanges: "Save Changes",
pasteLink: "Paste Link",
pasteSharedLookLink: "Paste the shared look link:",
invalidSharedLink: "Invalid link. Make sure you copied the full link.",
}, },
ES: { ES: {
loginModeIntro: "El Futuro de Tu Estilo", loginModeIntro: "El Futuro de Tu Estilo",
@@ -505,6 +511,9 @@ export const translations = {
themeColorTitle: "Color del Tema", themeColorTitle: "Color del Tema",
personalizeColorDesc: "Personaliza el color", personalizeColorDesc: "Personaliza el color",
saveChanges: "Guardar Cambios", saveChanges: "Guardar Cambios",
pasteLink: "Pegar Enlace",
pasteSharedLookLink: "Pega el enlace del look compartido:",
invalidSharedLink: "Enlace no válido. Asegúrate de copiar el enlace completo.",
}, },
FR: { FR: {
loginModeIntro: "Le Futur de Ton Style", loginModeIntro: "Le Futur de Ton Style",
@@ -674,6 +683,9 @@ export const translations = {
themeColorTitle: "Couleur du Thème", themeColorTitle: "Couleur du Thème",
personalizeColorDesc: "Personnaliser la couleur", personalizeColorDesc: "Personnaliser la couleur",
saveChanges: "Enregistrer les Modifications", saveChanges: "Enregistrer les Modifications",
pasteLink: "Coller le Lien",
pasteSharedLookLink: "Collez le lien du look partagé :",
invalidSharedLink: "Lien invalide. Assurez-vous d'avoir copié le lien complet.",
}, },
DE: { DE: {
loginModeIntro: "Die Zukunft deines Stils", loginModeIntro: "Die Zukunft deines Stils",
@@ -843,5 +855,8 @@ export const translations = {
themeColorTitle: "Themenfarbe", themeColorTitle: "Themenfarbe",
personalizeColorDesc: "Farbe anpassen", personalizeColorDesc: "Farbe anpassen",
saveChanges: "Änderungen Speichern", saveChanges: "Änderungen Speichern",
pasteLink: "Link Einfügen",
pasteSharedLookLink: "Fügen Sie den Link zum geteilten Look ein:",
invalidSharedLink: "Ungültiger Link. Stellen Sie sicher, dass Sie den vollständigen Link kopiert haben.",
} }
}; };