feat: add featured flag to project, display featured projects on home page

This commit is contained in:
mstfyldz
2026-06-05 21:46:54 +03:00
parent 1f1bb8d913
commit 59b2afbc5a
6 changed files with 43 additions and 7 deletions
+17
View File
@@ -33,6 +33,7 @@ interface ProjectData {
image: string;
gallery?: string[];
website?: string;
featured?: boolean;
}
interface PartnerData {
@@ -94,6 +95,7 @@ export default function AdminClient({
const [formGallery, setFormGallery] = useState<string[]>([]);
const [newGalleryItem, setNewGalleryItem] = useState("");
const [formWebsite, setFormWebsite] = useState("");
const [formFeatured, setFormFeatured] = useState(false);
const [uploadingImage, setUploadingImage] = useState(false);
const [uploadingGallery, setUploadingGallery] = useState(false);
@@ -178,6 +180,7 @@ export default function AdminClient({
setFormGallery(p.gallery ? [...p.gallery] : []);
setNewGalleryItem("");
setFormWebsite(p.website || "");
setFormFeatured(p.featured || false);
};
// Open modal for project adding
@@ -200,6 +203,7 @@ export default function AdminClient({
setFormGallery([]);
setNewGalleryItem("");
setFormWebsite("");
setFormFeatured(false);
};
// Save project
@@ -237,6 +241,7 @@ export default function AdminClient({
image: formImage,
gallery: formGallery,
website: formWebsite,
featured: formFeatured,
};
const res = await saveProject(projectDataToSave);
@@ -1157,6 +1162,18 @@ export default function AdminClient({
className="w-full font-mono text-[11px] bg-[#EDE8E0] border border-[#C8C2B8] focus:border-[#0A0A0A] outline-none px-3 py-2 text-[#0A0A0A]"
/>
</div>
<div className="space-y-1">
<label className="font-mono text-[9px] uppercase text-[#A0998E] block">Öne Çıkan Proje (Ana Sayfa İçin)</label>
<div className="flex items-center h-[30px]">
<input
type="checkbox"
checked={formFeatured}
onChange={(e) => setFormFeatured(e.target.checked)}
className="w-4 h-4 cursor-pointer"
/>
<span className="ml-2 font-mono text-[10px] text-[#0A0A0A]">Bu bizim kendi projemiz (Ana sayfada göster)</span>
</div>
</div>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">