28 lines
1002 B
TypeScript
28 lines
1002 B
TypeScript
// Metro module 15783 (f15784).
|
|
import { useRef, useLayoutEffect } from "react";
|
|
import ThemeStore from "../../user_settings/ThemeStore";
|
|
import MobileVisualRefreshExperiment from "../experiments/MobileVisualRefreshExperiment";
|
|
import { updateVisualRefresh } from "./updateVisualRefresh";
|
|
import { updateTheme } from "./updateTheme";
|
|
export default function useNativeThemeUpdater() {
|
|
const r9 = MobileVisualRefreshExperiment("useNativeThemeUpdater");
|
|
let c22440_0 = r9;
|
|
const ref = useRef(ThemeStore.theme);
|
|
useLayoutEffect(() => {
|
|
updateVisualRefresh(c22440_0);
|
|
}, [r9]);
|
|
useLayoutEffect(() => {
|
|
const handleThemeUpdate2 = function handleThemeUpdate() {
|
|
if (ThemeStore.theme !== ref.current) {
|
|
ref.current = ThemeStore.theme;
|
|
updateTheme(ThemeStore.theme);
|
|
}
|
|
};
|
|
updateTheme(ThemeStore.theme);
|
|
ThemeStore.addChangeListener(handleThemeUpdate2);
|
|
return () => {
|
|
ThemeStore.removeChangeListener(handleThemeUpdate2);
|
|
};
|
|
}, []);
|
|
};
|