feat: implement micro-learning collections and completion tracking hook

This commit is contained in:
RaymondVerhoef
2026-05-24 23:50:08 +02:00
parent cd151aace4
commit 18e98380d9
2 changed files with 125 additions and 82 deletions

View File

@@ -1,19 +1,16 @@
import { pb } from '../lib/pb';
import { useApp } from '../store/AppContext';
export function useMicroLearningCompletions() {
const { state } = useApp();
const recordCompletion = async ({ microLearningId, topicId, type, sessionWeek }) => {
try {
const user = pb.authStore.model;
const user = state.currentUser;
if (!user) throw new Error("No authenticated user");
const teamMemberRec = await pb.collection('team_members').getFirstListItem(`user_id = "${user.id}"`);
if (!teamMemberRec) {
throw new Error("Team member record not found for user.");
}
const record = await pb.collection('micro_learning_completions').create({
team_member_id: teamMemberRec.id,
team_member_id: user.id,
micro_learning_id: microLearningId,
topic_id: topicId,
type: type,
@@ -28,11 +25,11 @@ export function useMicroLearningCompletions() {
const getSessionCompletions = async (sessionWeek) => {
try {
const teamMemberRec = await pb.collection('team_members').getFirstListItem(`user_id = "${pb.authStore.model.id}"`);
if (!teamMemberRec) return [];
const user = state.currentUser;
if (!user) return [];
const records = await pb.collection('micro_learning_completions').getFullList({
filter: `team_member_id = "${teamMemberRec.id}" && session_week = ${sessionWeek}`
filter: `team_member_id = "${user.id}" && session_week = ${sessionWeek}`
});
return records;
} catch (err) {