test pertama:

- implementasi seluruh backend pada akun intern dan mentor pada bagian lms
- kondisi semua hooks dan types yang dibutuhkan
- Pengujian task, project, dan submission pada mentor dan intern

next progress:
- Implementasi lib eksternal untuk unduh kedalam devices dan kirim sertifikat ke internet (linkedin)
- implementasi proses sertifikat pada mentor untuk melakukan generate sertifikat dengan template dan intern pada projek
This commit is contained in:
Kemas M. Aryadary Rasyad
2026-06-29 20:01:37 +07:00
parent da67ad86d8
commit 28bd1d3d87
8 changed files with 33 additions and 21 deletions
@@ -19,7 +19,7 @@ export default function ManageInternsModal({ isOpen, onClose, projectId, initial
const [invitedList, setInvitedList] = useState<ProjectMember[]>(initialMembers);
const { mahasiswa, loading: loadingMahasiswa } = useMahasiswa();
const { assign, loading: assigning } = useAssignMember();
const { assign, loading: assigning, error } = useAssignMember();
// Sync saat modal dibuka
useEffect(() => {
@@ -84,8 +84,13 @@ export default function ManageInternsModal({ isOpen, onClose, projectId, initial
/>
<Search className="absolute right-3.5 w-4 h-4 text-gray-400" />
</div>
{error &&
<div className="p-1 flex justify-center bg-red-foreground border border-red text-sm text-red-500 font-light rounded-md">
{error}: Sudah berada di project lain
</div>
}
<div className="overflow-y-auto space-y-3 pr-1 flex-1">
<div className="overflow-y-auto space-y-3 pr-1 flex-1 h-[170px]">
{/* Sudah jadi member */}
{invitedList.map((member) => (
<div key={member.id} className="flex items-center justify-between p-2 rounded-xl hover:bg-gray-50 transition-colors">
@@ -17,7 +17,7 @@ export default function MentorTaskCard({ task }: {task: ProjectTask}) {
return (
<div
className="border border-[#eee] rounded-[10px] px-5 py-4 mb-3 bg-white shadow-lg flex items-start justify-between gap-3 cursor-pointer hover:border-gray-300 transition-colors"
className="border border-card-outline rounded-[10px] px-5 py-4 mb-3 bg-card shadow-lg flex items-start justify-between gap-3 cursor-pointer hover:border-card-outline/50 transition-colors"
onClick={handleCardClick}
>
<div className="flex-1 min-w-0">