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 name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MyCloset</title>
<script type="module" crossorigin src="/assets/index-D5iCQZqc.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DJVelbKf.css">
<script type="module" crossorigin src="/assets/index-D-Q7LD7U.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CvAWiRXE.css">
</head>
<body>
<div id="root"></div>

View File

@@ -7,7 +7,7 @@ import {
PanelLeftClose, PanelLeftOpen, Sparkles, CloudSun,
ArrowRight, Droplets, CheckCircle2, PieChart, History,
X, Download, Bell, Globe, Filter, ShoppingBag, Share2,
FolderOpen, Tag
FolderOpen, Tag, Link
} from 'lucide-react';
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(() => {
if (editingItem && editingItem.color) {
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>
</div>
<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
value={colorFilter}
onChange={(e) => setColorFilter(e.target.value)}

View File

@@ -167,6 +167,9 @@ export const translations = {
themeColorTitle: "Cor do Tema",
personalizeColorDesc: "Personalize a cor",
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: {
loginModeIntro: "The Future of Your Style",
@@ -336,6 +339,9 @@ export const translations = {
themeColorTitle: "Theme Color",
personalizeColorDesc: "Personalize the color",
saveChanges: "Save Changes",
pasteLink: "Paste Link",
pasteSharedLookLink: "Paste the shared look link:",
invalidSharedLink: "Invalid link. Make sure you copied the full link.",
},
ES: {
loginModeIntro: "El Futuro de Tu Estilo",
@@ -505,6 +511,9 @@ export const translations = {
themeColorTitle: "Color del Tema",
personalizeColorDesc: "Personaliza el color",
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: {
loginModeIntro: "Le Futur de Ton Style",
@@ -674,6 +683,9 @@ export const translations = {
themeColorTitle: "Couleur du Thème",
personalizeColorDesc: "Personnaliser la couleur",
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: {
loginModeIntro: "Die Zukunft deines Stils",
@@ -843,5 +855,8 @@ export const translations = {
themeColorTitle: "Themenfarbe",
personalizeColorDesc: "Farbe anpassen",
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.",
}
};