link secção nova look
This commit is contained in:
1
dist/assets/index-CvAWiRXE.css
vendored
Normal file
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
3304
dist/assets/index-D-Q7LD7U.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3259
dist/assets/index-D5iCQZqc.js
vendored
3259
dist/assets/index-D5iCQZqc.js
vendored
File diff suppressed because one or more lines are too long
1
dist/assets/index-DJVelbKf.css
vendored
1
dist/assets/index-DJVelbKf.css
vendored
File diff suppressed because one or more lines are too long
4
dist/index.html
vendored
4
dist/index.html
vendored
@@ -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>
|
||||||
|
|||||||
28
src/App.jsx
28
src/App.jsx
@@ -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)}
|
||||||
|
|||||||
@@ -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.",
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user