Refactors rendering pipeline with flexible data handling
Removes hardcoded data from render context, allowing more dynamic renderer implementation Changes include: - Decoupling data retrieval from render context - Simplifying renderer interface - Supporting more flexible data traversal strategies Prepares for more modular and adaptable rendering approach
This commit is contained in:
parent
a3a1b9a421
commit
c16e432b29
5 changed files with 517 additions and 22 deletions
|
|
@ -6,12 +6,6 @@ export interface NextFunction {
|
|||
render(items: IEnumerable<unknown>): void;
|
||||
}
|
||||
|
||||
export interface RenderData {
|
||||
teams?: IEnumerable<unknown>;
|
||||
resources?: IEnumerable<unknown>;
|
||||
dates?: IEnumerable<unknown>;
|
||||
}
|
||||
|
||||
interface RenderLevel {
|
||||
renderer: IGroupingRenderer;
|
||||
items: IEnumerable<unknown>;
|
||||
|
|
@ -20,10 +14,7 @@ interface RenderLevel {
|
|||
export class RenderBuilder {
|
||||
private levels: RenderLevel[] = [];
|
||||
|
||||
constructor(
|
||||
private context: RenderContext,
|
||||
private data: RenderData
|
||||
) {}
|
||||
constructor(private context: RenderContext) {}
|
||||
|
||||
add(renderer: IGroupingRenderer, items: IEnumerable<unknown>): this {
|
||||
this.levels.push({ renderer, items });
|
||||
|
|
@ -66,7 +57,7 @@ export class RenderBuilder {
|
|||
return total || from(items).count();
|
||||
},
|
||||
render: (items) => {
|
||||
level.renderer.render(items, this.data, nextChain, this.context);
|
||||
level.renderer.render(items, nextChain, this.context);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue