Spaces:
Sleeping
Sleeping
File size: 701 Bytes
05c5ed5 | 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 29 30 31 | "use client";
import { getStorageManager } from "lib/browser-stroage";
import { createEmitter } from "lib/utils";
import { useCallback, useEffect, useState } from "react";
const storage = getStorageManager<string>("theme-style");
const emitter = createEmitter();
export function useThemeStyle() {
const [themeStyle, _setThemeStyle] = useState(storage.get("default"));
const setThemeStyle = useCallback((value: string) => {
storage.set(value);
_setThemeStyle(value);
emitter.emit(value);
}, []);
useEffect(() => {
const unsubscribe = emitter.on(_setThemeStyle);
return () => {
unsubscribe();
};
}, []);
return {
themeStyle,
setThemeStyle,
};
}
|