@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
17 lines (15 loc) • 503 B
text/typescript
import { useEffect, useState } from "react";
import { changes, getEnv } from "@ledgerhq/live-env";
import type { EnvName, EnvValue } from "@ledgerhq/live-env";
export const useEnv = <Name extends EnvName>(type: Name): EnvValue<Name> => {
const [env, setEnv] = useState(() => getEnv(type));
useEffect(() => {
const sub = changes.subscribe(({ name, value }) => {
if (type === name) {
setEnv(value);
}
});
return () => sub.unsubscribe();
}, [type]);
return env;
};