Calendar/src/v2/features/resource/ResourceRenderer.ts
Janus C. H. Knudsen 6fc9be9534 wip
2025-12-09 21:32:30 +01:00

33 lines
1,013 B
TypeScript

import { Renderer, RenderContext } from '../../core/IGroupingRenderer';
interface Resource {
id: string;
name: string;
}
export class ResourceRenderer implements Renderer {
readonly type = 'resource';
// Hardcoded data
private resources: Resource[] = [
{ id: 'res1', name: 'Anders' },
{ id: 'res2', name: 'Bente' },
{ id: 'res3', name: 'Carsten' }
];
render(context: RenderContext): void {
const allowedIds = context.filter['resource'] || [];
const filteredResources = this.resources.filter(r => allowedIds.includes(r.id));
const dateCount = context.filter['date']?.length || 1;
// Render ALLE resource headers
for (const resource of filteredResources) {
const header = document.createElement('swp-resource-header');
header.dataset.resourceId = resource.id;
header.textContent = resource.name;
header.style.gridColumn = `span ${dateCount}`;
context.headerContainer.appendChild(header);
}
}
}