Function bodies 104 total
handleTaskTap function · javascript · L292-L308 (17 LOC)src/pages/WeeklyPlanner.jsx
async function handleTaskTap(task) {
let updates
if (task.status === 'Pending') {
updates = { status: 'In Progress', assigned_to: profile.id }
} else if (task.status === 'In Progress') {
updates = { status: 'Done', completed_at: new Date().toISOString() }
} else if (task.status === 'Done') {
updates = { status: 'Pending', assigned_to: null, completed_at: null }
}
const { error } = await supabase
.from('tasks')
.update(updates)
.eq('id', task.id)
if (error) console.error('Error updating task:', error)
}getAssigneeName function · javascript · L310-L317 (8 LOC)src/pages/WeeklyPlanner.jsx
function getAssigneeName(task) {
if (task.assigned_user?.display_name) return task.assigned_user.display_name
if (task.assigned_to) {
const user = users.find((u) => u.id === task.assigned_to)
return user?.display_name || 'Unknown'
}
return null
}getScheduledStaff function · javascript · L320-L329 (10 LOC)src/pages/WeeklyPlanner.jsx
function getScheduledStaff(date, shift) {
const dayOfWeek = date.getDay()
return schedule
.filter((s) => s.day_of_week === dayOfWeek && s.shift === shift)
.map((s) => {
const name = s.user?.display_name ||
users.find((u) => u.id === s.user_id)?.display_name || 'Unknown'
return { id: s.user_id, name }
})
}getDayStats function · javascript · L331-L350 (20 LOC)src/pages/WeeklyPlanner.jsx
function getDayStats(dateStr, date) {
const dayTasks = weekTasks[dateStr] || []
const total = dayTasks.length
const done = dayTasks.filter((t) => t.status === 'Done').length
const myTasks = dayTasks.filter((t) => t.assigned_to === profile?.id).length
// For days without generated tasks, check if user is scheduled via weekly_schedule
let myScheduled = false
if (total === 0 && date) {
const dayOfWeek = date.getDay()
myScheduled = schedule.some(
(s) => s.day_of_week === dayOfWeek && s.user_id === profile?.id
)
}
// Also check if templates exist (means future days will have tasks)
const hasTemplates = total === 0 && templates.length > 0
return { total, done, myTasks, myScheduled, hasTemplates }
}‹ prevpage 3 / 3