@devcycle/nextjs-sdk
Version:
The Next.js SDK for DevCycle!
15 lines • 738 B
JavaScript
import { useCallback, useEffect, useState } from 'react';
import { useDevCycleClient } from './useDevCycleClient';
export const useRerenderOnVariableChange = (key) => {
const [_, forceRerender] = useState({});
const forceRerenderCallback = useCallback(() => forceRerender({}), []);
const client = useDevCycleClient();
const variableKey = key !== null && key !== void 0 ? key : '*';
useEffect(() => {
client.subscribe(`variableUpdated:${variableKey}`, forceRerenderCallback);
return () => {
client.unsubscribe(`variableUpdated:${variableKey}`, forceRerenderCallback);
};
}, [variableKey, client, forceRerenderCallback]);
};
//# sourceMappingURL=useRerenderOnVariableChange.js.map