ryde/source/logic/control/rental.ts

69 lines
1.4 KiB
TypeScript
Raw Normal View History

2026-03-06 08:37:53 +01:00
namespace mod_control.rental
{
/**
*/
export function setup
(
platform : lib_mvc.type_model<mod_platform.rental.web.type_state>
) : Promise<void>
{
let context_dom : HTMLElement = platform.state.element_dom;
context_dom.querySelector(".rental_start").addEventListener
(
"click",
(event) =>
{
const bike_name : string = lib_call.convey
(
platform.state.model.state.id,
[
x => lib_string.coin(".rental[rel=\"{{rel}}\"] > .rental_bike > input", {"rel": x}),
x => (document.querySelector(x) as HTMLInputElement),
x => x.value,
]
);
mod_model.rental.start(platform.state.model, bike_name);
}
);
context_dom.querySelector(".rental_open > button").addEventListener
(
"click",
(event) =>
{
mod_model.rental.open(platform.state.model);
}
);
context_dom.querySelector(".rental_pause > button").addEventListener
(
"click",
(event) =>
{
mod_model.rental.pause(platform.state.model);
}
);
context_dom.querySelector(".rental_finish > button").addEventListener
(
"click",
(event) =>
{
mod_model.rental.end(platform.state.model);
}
);
return Promise.resolve<void>(undefined);
}
/**
*/
export function implementation_control
(
) : lib_mvc.type_control<mod_platform.rental.web.type_state>
{
return {
"setup": (model) => setup(model),
};
}
}