File size: 575 Bytes
cb7934e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const TEXT_SIZE_KEY = "textSize";

class Settings {
	#textSize = $state(100);

	constructor() {
		const storedTextSize = localStorage.getItem(TEXT_SIZE_KEY);
		const parsed = storedTextSize ? parseInt(storedTextSize, 10) : null;
		this.textSize = parsed && !isNaN(parsed) ? parsed : 100;
	}

	get textSize() {
		return this.#textSize;
	}

	set textSize(size: number) {
		localStorage.setItem(TEXT_SIZE_KEY, JSON.stringify(size));
		this.#textSize = size;
	}

	// Reset to default
	resetTextSize = () => {
		this.textSize = 100;
	};
}

export const settings = new Settings();