diff --git a/client/src/components/DECard.tsx b/client/src/components/DECard.tsx
index 8093c68..1f3d110 100644
--- a/client/src/components/DECard.tsx
+++ b/client/src/components/DECard.tsx
@@ -10,6 +10,7 @@ interface DECardProps {
resourceUsage: string;
customization: string;
colorPalette: string[];
+ screenshot?: string;
};
onSwipe: (direction: 'left' | 'right' | 'super') => void;
isTop: boolean;
@@ -113,52 +114,73 @@ export default function DECard({ de, onSwipe, isTop }: DECardProps) {
GEÇ
-
-
-
-
-
-
- {de.name}
-
-
-
- {de.description}
-
-
-
-
+ {de.screenshot && (
+
+

{
+ e.currentTarget.style.display = 'none';
+ }}
+ />
+
+
+ )}
+
+
+
- {styleLabels[de.style] || de.style}
-
-
+
+
+
- {resourceLabels[de.resourceUsage] || de.resourceUsage}
-
-
- Özelleştirme: {de.customization}
-
+ {de.name}
+
+
+
+ {de.description}
+
+
+
+
+ {styleLabels[de.style] || de.style}
+
+
+ {resourceLabels[de.resourceUsage] || de.resourceUsage}
+
+
+ Özelleştirme: {de.customization}
+
+
diff --git a/client/src/components/DistroMatch.tsx b/client/src/components/DistroMatch.tsx
index 592572c..6bee683 100644
--- a/client/src/components/DistroMatch.tsx
+++ b/client/src/components/DistroMatch.tsx
@@ -39,7 +39,6 @@ export default function DistroMatch() {
setLikedDEs(prev => [...prev, currentDE.name]);
} else if (direction === 'super') {
setSuperLikedDEs(prev => [...prev, currentDE.name]);
- setLikedDEs(prev => [...prev, currentDE.name]);
} else {
setDislikedDEs(prev => [...prev, currentDE.name]);
}
diff --git a/client/src/data/distros.json b/client/src/data/distros.json
index 4a6e12e..56ee12e 100644
--- a/client/src/data/distros.json
+++ b/client/src/data/distros.json
@@ -636,7 +636,8 @@
"style": "modern",
"resourceUsage": "medium-high",
"customization": "extreme",
- "colorPalette": ["#1D99F3", "#3DAEE9", "#0D5A8F"]
+ "colorPalette": ["#1D99F3", "#3DAEE9", "#0D5A8F"],
+ "screenshot": "kde.png"
},
{
"id": "gnome",
@@ -645,7 +646,8 @@
"style": "minimalist",
"resourceUsage": "medium-high",
"customization": "limited",
- "colorPalette": ["#4A86CF", "#3584E4", "#1C71D8"]
+ "colorPalette": ["#4A86CF", "#3584E4", "#1C71D8"],
+ "screenshot": "gnome.png"
},
{
"id": "xfce",
@@ -654,7 +656,8 @@
"style": "traditional",
"resourceUsage": "low",
"customization": "moderate",
- "colorPalette": ["#2EB8E6", "#00AAD4", "#007EA8"]
+ "colorPalette": ["#2EB8E6", "#00AAD4", "#007EA8"],
+ "screenshot": "xfce.png"
},
{
"id": "cinnamon",
@@ -663,7 +666,8 @@
"style": "traditional",
"resourceUsage": "medium",
"customization": "good",
- "colorPalette": ["#87CF3E", "#6BBD2B", "#4E9A1A"]
+ "colorPalette": ["#87CF3E", "#6BBD2B", "#4E9A1A"],
+ "screenshot": "cinnamon.png"
},
{
"id": "mate",
@@ -672,7 +676,8 @@
"style": "traditional",
"resourceUsage": "low-medium",
"customization": "good",
- "colorPalette": ["#6CAD54", "#4E8A3A", "#356425"]
+ "colorPalette": ["#6CAD54", "#4E8A3A", "#356425"],
+ "screenshot": "mate.png"
},
{
"id": "lxqt",
@@ -681,7 +686,8 @@
"style": "minimal",
"resourceUsage": "very-low",
"customization": "moderate",
- "colorPalette": ["#0099CC", "#0077AA", "#005588"]
+ "colorPalette": ["#0099CC", "#0077AA", "#005588"],
+ "screenshot": "lxqt.png"
},
{
"id": "budgie",
@@ -690,7 +696,8 @@
"style": "modern",
"resourceUsage": "medium",
"customization": "moderate",
- "colorPalette": ["#6BCA81", "#4CAF50", "#388E3C"]
+ "colorPalette": ["#6BCA81", "#4CAF50", "#388E3C"],
+ "screenshot": "budgie.png"
},
{
"id": "pantheon",
@@ -699,7 +706,8 @@
"style": "mac-like",
"resourceUsage": "medium",
"customization": "very-limited",
- "colorPalette": ["#64BAFF", "#3689E6", "#0D52BF"]
+ "colorPalette": ["#64BAFF", "#3689E6", "#0D52BF"],
+ "screenshot": "pantheon.png"
},
{
"id": "cosmic",
@@ -708,7 +716,8 @@
"style": "modern",
"resourceUsage": "medium",
"customization": "good",
- "colorPalette": ["#FAA41A", "#48B9C7", "#574F4A"]
+ "colorPalette": ["#FAA41A", "#48B9C7", "#574F4A"],
+ "screenshot": "cosmic.png"
},
{
"id": "dde",
@@ -717,7 +726,8 @@
"style": "beautiful",
"resourceUsage": "medium-high",
"customization": "moderate",
- "colorPalette": ["#0082FC", "#006DD9", "#0052A3"]
+ "colorPalette": ["#0082FC", "#006DD9", "#0052A3"],
+ "screenshot": "dde.png"
},
{
"id": "i3",
@@ -726,7 +736,8 @@
"style": "minimal-tiling",
"resourceUsage": "very-low",
"customization": "extreme",
- "colorPalette": ["#285577", "#1C3D5A", "#122A40"]
+ "colorPalette": ["#285577", "#1C3D5A", "#122A40"],
+ "screenshot": "i3.png"
},
{
"id": "hyprland",
@@ -735,7 +746,8 @@
"style": "minimal-tiling",
"resourceUsage": "low",
"customization": "extreme",
- "colorPalette": ["#00D4AA", "#00B894", "#009874"]
+ "colorPalette": ["#00D4AA", "#00B894", "#009874"],
+ "screenshot": "hyprland.png"
}
],
"criticalQuestions": [
diff --git a/client/src/lib/scoring.ts b/client/src/lib/scoring.ts
index cc28eef..0d10575 100644
--- a/client/src/lib/scoring.ts
+++ b/client/src/lib/scoring.ts
@@ -57,20 +57,21 @@ export function calculateDistroScores(preferences: UserPreferences): ScoredDistr
});
preferences.superLikedDEs.forEach(de => {
- const deKey = de.toLowerCase().replace(/\s+/g, '').replace('plasma', '');
- const matchingDistros = DE_SCORES[deKey] || [];
+ const deKey = de.toLowerCase().replace(/\s+/g, '').replace('plasma', '').replace('/', '');
+ const matchingDistros = DE_SCORES[deKey] || DE_SCORES[de.toLowerCase()] || [];
matchingDistros.forEach(distroId => {
- scores[distroId] = (scores[distroId] || 0) + 15;
+ scores[distroId] = (scores[distroId] || 0) + 50;
if (!matchReasons[distroId]) matchReasons[distroId] = [];
- matchReasons[distroId].push(`${de} masaüstü ortamını çok beğendin`);
+ matchReasons[distroId].push(`${de} masaüstü ortamını bayıldın!`);
});
});
preferences.likedDEs.forEach(de => {
- const deKey = de.toLowerCase().replace(/\s+/g, '').replace('plasma', '');
- const matchingDistros = DE_SCORES[deKey] || [];
+ if (preferences.superLikedDEs.includes(de)) return;
+ const deKey = de.toLowerCase().replace(/\s+/g, '').replace('plasma', '').replace('/', '');
+ const matchingDistros = DE_SCORES[deKey] || DE_SCORES[de.toLowerCase()] || [];
matchingDistros.forEach(distroId => {
- scores[distroId] = (scores[distroId] || 0) + 8;
+ scores[distroId] = (scores[distroId] || 0) + 10;
if (!matchReasons[distroId]?.some(r => r.includes(de))) {
matchReasons[distroId]?.push(`${de} desteği mevcut`);
}
@@ -78,10 +79,10 @@ export function calculateDistroScores(preferences: UserPreferences): ScoredDistr
});
preferences.dislikedDEs.forEach(de => {
- const deKey = de.toLowerCase().replace(/\s+/g, '').replace('plasma', '');
- const matchingDistros = DE_SCORES[deKey] || [];
+ const deKey = de.toLowerCase().replace(/\s+/g, '').replace('plasma', '').replace('/', '');
+ const matchingDistros = DE_SCORES[deKey] || DE_SCORES[de.toLowerCase()] || [];
matchingDistros.forEach(distroId => {
- scores[distroId] = (scores[distroId] || 0) - 5;
+ scores[distroId] = (scores[distroId] || 0) - 15;
});
});