import { HttpClient } from 'core/http'; import { CapabilityService } from 'core/capability'; import { Serializable } from 'interface/serializableType'; export class Layout { private http: HttpClient; private capability: CapabilityService; constructor( public element: (props: { children: React.ReactNode; args?: Serializable; }) => React.ReactNode, services?: { http?: HttpClient; capability?: CapabilityService; } ) { this.http = services?.http || HttpClient.getInstance(); this.capability = services?.capability || CapabilityService.getInstance(); } render(props: { children: React.ReactNode; args?: Serializable; }) { return this.element(props); } }