ryde/source/logic/platform/web/rental.ts
2026-03-06 08:37:53 +01:00

55 lines
983 B
TypeScript

namespace mod_platform.rental.web
{
/**
*/
export type type_state =
{
model : lib_mvc.type_model<mod_model.rental.type_subject>;
element_dom : (null | HTMLElement);
}
/**
*/
export function make
(
model : lib_mvc.type_model<mod_model.rental.type_subject>
) : type_state
{
return {
"model": model,
"element_dom": null,
};
}
/**
*/
export function setup
(
platform : lib_mvc.type_model<type_state>,
target_dom : HTMLElement
) : Promise<void>
{
let fragment : DocumentFragment = lib_dom.request("rental");
let rental_dom : HTMLElement = fragment.querySelector(".rental");
target_dom.appendChild(fragment);
platform.state.element_dom = rental_dom;
// propagate events from the model
lib_mvc.model_listen<mod_model.rental.type_subject, any>
(
platform.state.model,
(event) =>
{
return lib_mvc.model_notify<type_state, any>(platform, event);
}
);
return Promise.resolve<void>(undefined);
}
}