1
0
mirror of https://github.com/home-assistant/frontend.git synced 2026-02-15 07:25:54 +00:00
Files
frontend/src/data/schedule.ts
Wendelin e703750136 Add and fix stylistic eslint rules (#23735)
* Fix stylistic eslint rules

* Fix eslint issues
2025-01-14 21:00:14 +01:00

62 lines
1.2 KiB
TypeScript

import type { HomeAssistant } from "../types";
export const weekdays = [
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
] as const;
export interface ScheduleDay {
from: string;
to: string;
}
type ScheduleDays = Partial<Record<(typeof weekdays)[number], ScheduleDay[]>>;
export interface Schedule extends ScheduleDays {
id: string;
name: string;
icon?: string;
}
export interface ScheduleMutableParams {
name: string;
icon: string;
}
export const fetchSchedule = (hass: HomeAssistant) =>
hass.callWS<Schedule[]>({ type: "schedule/list" });
export const createSchedule = (
hass: HomeAssistant,
values: ScheduleMutableParams
) =>
hass.callWS<Schedule>({
type: "schedule/create",
...values,
});
export const updateSchedule = (
hass: HomeAssistant,
id: string,
updates: Partial<ScheduleMutableParams>
) =>
hass.callWS<Schedule>({
type: "schedule/update",
schedule_id: id,
...updates,
});
export const deleteSchedule = (hass: HomeAssistant, id: string) =>
hass.callWS({
type: "schedule/delete",
schedule_id: id,
});
export const getScheduleTime = (date: Date): string =>
`${("0" + date.getHours()).slice(-2)}:${("0" + date.getMinutes()).slice(-2)}`;