sendou.ink/app/features/chat/chat-utils.ts
hfcRed a3757199aa
Volume slider (#1622)
* Fixed slider border

* Implemented volume slider

* Mounted check

* Added IsBrowser helper function

* Fix for Firefox not supporting TouchEvent

* Removed IsBrowser function again cause it works without it now I guess lol

* Ran prettier

* Removed useEffect

* Switched from defaultValue to value

* Set default value

* Removed useEffect import

* Ignore audio promises

---------

Co-authored-by: hfcRed <hfcred@gmx.net>
2024-02-10 00:22:54 +02:00

27 lines
778 B
TypeScript

import type { ChatMessage } from "./chat-types";
export function messageTypeToSound(type: ChatMessage["type"]) {
if (type === "LIKE_RECEIVED") return "sq_like";
if (type === "MATCH_STARTED") return "sq_match";
if (type === "NEW_GROUP") return "sq_new-group";
return null;
}
export function soundCodeToLocalStorageKey(soundCode: string) {
return `settings__sound-enabled__${soundCode}`;
}
export function soundEnabled(soundCode: string) {
const localStorageKey = soundCodeToLocalStorageKey(soundCode);
const soundEnabled = localStorage.getItem(localStorageKey);
return !soundEnabled || soundEnabled === "true";
}
export function soundVolume() {
const volume = localStorage.getItem("settings__sound-volume");
return volume ? parseFloat(volume) : 100;
}