Some checks failed
ci/woodpecker/push/web Pipeline failed
Replace mock data with real fetchTasks() API call. Add workspace-aware data fetching, MosaicSpinner loading state, empty state card, and error state with retry using design tokens throughout. Refs #467
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
/**
|
|
* Task API Client
|
|
* Handles task-related API requests
|
|
*/
|
|
|
|
import type { Task } from "@mosaic/shared";
|
|
import type { TaskStatus, TaskPriority } from "@mosaic/shared";
|
|
import { apiGet, type ApiResponse } from "./client";
|
|
|
|
export interface TaskFilters {
|
|
status?: TaskStatus;
|
|
priority?: TaskPriority;
|
|
workspaceId?: string;
|
|
}
|
|
|
|
/**
|
|
* Fetch tasks with optional filters
|
|
*/
|
|
export async function fetchTasks(filters?: TaskFilters): Promise<Task[]> {
|
|
const params = new URLSearchParams();
|
|
|
|
// Add filter parameters (not workspace ID - that goes in header)
|
|
if (filters?.status) {
|
|
params.append("status", filters.status);
|
|
}
|
|
if (filters?.priority) {
|
|
params.append("priority", filters.priority);
|
|
}
|
|
|
|
const queryString = params.toString();
|
|
const endpoint = queryString ? `/api/tasks?${queryString}` : "/api/tasks";
|
|
|
|
// Pass workspaceId via header (X-Workspace-Id) instead of query string
|
|
const response = await apiGet<ApiResponse<Task[]>>(endpoint, filters?.workspaceId);
|
|
return response.data;
|
|
}
|