Initial commit

This commit is contained in:
Djuri 2025-05-03 18:21:06 +02:00
commit af2f593fb8
Signed by: djuri
GPG key ID: 61B9B2DDE5AA3AC1
66 changed files with 8735 additions and 0 deletions

112
src/lib/clockControl.ts Normal file
View file

@ -0,0 +1,112 @@
import { PUBLIC_BASE_URL } from '$env/static/public';
import { baseUrl } from './env';
/**
* Sets custom text to display on the clock
*/
export const setCustomText = (newText: string) => {
return fetch(`${baseUrl}/api/show/text/${newText}`).catch(() => {});
};
/**
* Updates the LED colors
*/
export const setLEDcolor = (ledStatus: { hex: string }[]) => {
return fetch(`${baseUrl}/api/lights/set`, {
headers: {
'Content-Type': 'application/json'
},
method: 'PATCH',
body: JSON.stringify(ledStatus)
}).catch(() => {});
};
/**
* Turns off all LEDs
*/
export const turnOffLeds = () => {
return fetch(`${baseUrl}/api/lights/off`).catch(() => {});
};
/**
* Restarts the clock
*/
export const restartClock = () => {
return fetch(`${baseUrl}/api/restart`).catch(() => {});
};
/**
* Forces a full refresh of the clock
*/
export const forceFullRefresh = () => {
return fetch(`${baseUrl}/api/full_refresh`).catch(() => {});
};
/**
* Generates a random color hex code
*/
export const generateRandomColor = () => {
return `#${Math.floor(Math.random() * 16777215)
.toString(16)
.padStart(6, '0')}`;
};
/**
* Sets the active screen
*/
export const setActiveScreen = async (screenId: string) => {
return fetch(`${baseUrl}/api/show/screen/${screenId}`);
}
/**
* Sets the active currency
*/
export const setActiveCurrency = async (currency: string) => {
return fetch(`${baseUrl}/api/show/currency/${currency}`);
}
/**
* Turns on the frontlight
*/
export const turnOnFrontlight = () => {
return fetch(`${baseUrl}/api/frontlight/on`).catch(() => {});
};
/**
* Flashes the frontlight
*/
export const flashFrontlight = () => {
return fetch(`${baseUrl}/api/frontlight/flash`).catch(() => {});
};
/**
* Turns off the frontlight
*/
export const turnOffFrontlight = () => {
return fetch(`${baseUrl}/api/frontlight/off`).catch(() => {});
};
/**
* Toggles the timer
*/
export const toggleTimer = (currentStatus: boolean) => (e: Event) => {
e.preventDefault();
if (currentStatus) {
fetch(`${baseUrl}/api/action/pause`);
} else {
fetch(`${baseUrl}/api/action/timer_restart`);
}
};
/**
* Toggles the do not disturb mode
*/
export const toggleDoNotDisturb = (currentStatus: boolean) => (e: Event) => {
e.preventDefault();
console.log(currentStatus);
if (!currentStatus) {
fetch(`${baseUrl}/api/dnd/enable`);
} else {
fetch(`${baseUrl}/api/dnd/disable`);
}
};