react#useDebugValue JavaScript Examples
The following examples show how to use
react#useDebugValue.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: useSelector.js From the-eye-knows-the-garbage with MIT License | 6 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context = ReactReduxContext) {
const useReduxContext =
context === ReactReduxContext
? useDefaultReduxContext
: () => useContext(context)
return function useSelector(selector, equalityFn = refEquality) {
if (process.env.NODE_ENV !== 'production' && !selector) {
throw new Error(`You must pass a selector to useSelector`)
}
const { store, subscription: contextSub } = useReduxContext()
const selectedState = useSelectorWithStoreAndSubscription(
selector,
equalityFn,
store,
contextSub
)
useDebugValue(selectedState)
return selectedState
}
}
Example #2
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 6 votes |
// Below copied from https://usehooks.com/
function useDebounce(value, delay) {
// State and setters for debounced value
const [debouncedValue, setDebouncedValue] = useState(value);
// Show the value in DevTools
useDebugValue(debouncedValue);
useEffect(
() => {
// Update debounced value after delay
const handler = setTimeout(() => {
setDebouncedValue(value);
}, delay);
// Cancel the timeout if value changes (also on delay change or unmount)
// This is how we prevent debounced value from updating if value is changed ...
// .. within the delay period. Timeout gets cleared and restarted.
return () => {
clearTimeout(handler);
};
},
[value, delay], // Only re-call effect if value or delay changes
);
return debouncedValue;
}
Example #3
Source File: styled-components.browser.esm.js From VTour with MIT License | 6 votes |
function useInjectedStyle(componentStyle, hasAttrs, resolvedAttrs, warnTooManyClasses) {
var styleSheet = useStyleSheet();
var stylis = useStylis(); // statically styled-components don't need to build an execution context object,
// and shouldn't be increasing the number of class names
var isStatic = componentStyle.isStatic && !hasAttrs;
var className = isStatic ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis) : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);
useDebugValue(className);
if (process.env.NODE_ENV !== 'production' && !isStatic && warnTooManyClasses) {
warnTooManyClasses(className);
}
return className;
}
Example #4
Source File: index.js From ReactSourceCodeAnalyze with MIT License | 6 votes |
function useInnerBar() {
useDebugValue({
debugA: {
debugB: {
debugC: 'abc',
},
},
});
const [count] = useState(123);
return count;
}
Example #5
Source File: index.js From ReactSourceCodeAnalyze with MIT License | 6 votes |
function useOuterBar() {
useDebugValue({
debugA: {
debugB: {
debugC: 'abc',
},
},
});
return useInnerBar();
}
Example #6
Source File: index.js From ReactSourceCodeAnalyze with MIT License | 6 votes |
function useOuterFoo() {
useDebugValue({
debugA: {
debugB: {
debugC: 'abc',
},
},
});
useState({
valueA: {
valueB: {
valueC: 'abc',
},
},
});
return useInnerFoo();
}
Example #7
Source File: index.js From ReactSourceCodeAnalyze with MIT License | 6 votes |
// Below copied from https://usehooks.com/
function useDebounce(value, delay) {
// State and setters for debounced value
const [debouncedValue, setDebouncedValue] = useState(value);
// Show the value in DevTools
useDebugValue(debouncedValue);
useEffect(
() => {
// Update debounced value after delay
const handler = setTimeout(() => {
setDebouncedValue(value);
}, delay);
// Cancel the timeout if value changes (also on delay change or unmount)
// This is how we prevent debounced value from updating if value is changed ...
// .. within the delay period. Timeout gets cleared and restarted.
return () => {
clearTimeout(handler);
};
},
[value, delay], // Only re-call effect if value or delay changes
);
return debouncedValue;
}
Example #8
Source File: useSelector.js From Learning-Redux with MIT License | 6 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context = ReactReduxContext) {
const useReduxContext =
context === ReactReduxContext
? useDefaultReduxContext
: () => useContext(context)
return function useSelector(selector, equalityFn = refEquality) {
if (process.env.NODE_ENV !== 'production') {
if (!selector) {
throw new Error(`You must pass a selector to useSelector`)
}
if (typeof selector !== 'function') {
throw new Error(`You must pass a function as a selector to useSelector`)
}
if (typeof equalityFn !== 'function') {
throw new Error(
`You must pass a function as an equality function to useSelector`
)
}
}
const { store, subscription: contextSub } = useReduxContext()
const selectedState = useSelectorWithStoreAndSubscription(
selector,
equalityFn,
store,
contextSub
)
useDebugValue(selectedState)
return selectedState
}
}
Example #9
Source File: useCustomEffect.js From mern_docker_demo with MIT License | 6 votes |
function useCustomEffect(effect, dependencies, isEqualOrOptions) {
var isMounted = useMounted();
var _ref = typeof isEqualOrOptions === 'function' ? {
isEqual: isEqualOrOptions
} : isEqualOrOptions,
isEqual = _ref.isEqual,
_ref$effectHook = _ref.effectHook,
effectHook = _ref$effectHook === void 0 ? useEffect : _ref$effectHook;
var dependenciesRef = useRef();
dependenciesRef.current = dependencies;
var cleanupRef = useRef(null);
effectHook(function () {
// If the ref the is `null` it's either the first effect or the last effect
// ran and was cleared, meaning _this_ update should run, b/c the equality
// check failed on in the cleanup of the last effect.
if (cleanupRef.current === null) {
var cleanup = effect();
cleanupRef.current = function () {
if (isMounted() && isEqual(dependenciesRef.current, dependencies)) {
return;
}
cleanupRef.current = null;
if (cleanup) cleanup();
};
}
return cleanupRef.current;
});
useDebugValue(effect);
}
Example #10
Source File: useSelector.js From Learning-Redux with MIT License | 6 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context = ReactReduxContext) {
const useReduxContext =
context === ReactReduxContext
? useDefaultReduxContext
: () => useContext(context)
return function useSelector(selector, equalityFn = refEquality) {
if (process.env.NODE_ENV !== 'production') {
if (!selector) {
throw new Error(`You must pass a selector to useSelector`)
}
if (typeof selector !== 'function') {
throw new Error(`You must pass a function as a selector to useSelector`)
}
if (typeof equalityFn !== 'function') {
throw new Error(
`You must pass a function as an equality function to useSelector`
)
}
}
const { store, subscription: contextSub } = useReduxContext()
const selectedState = useSelectorWithStoreAndSubscription(
selector,
equalityFn,
store,
contextSub
)
useDebugValue(selectedState)
return selectedState
}
}
Example #11
Source File: useSelector.js From mern_docker_demo with MIT License | 6 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context) {
if (context === void 0) {
context = ReactReduxContext;
}
var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {
return useContext(context);
};
return function useSelector(selector, equalityFn) {
if (equalityFn === void 0) {
equalityFn = refEquality;
}
if (process.env.NODE_ENV !== 'production' && !selector) {
throw new Error("You must pass a selector to useSelector");
}
var _useReduxContext = useReduxContext(),
store = _useReduxContext.store,
contextSub = _useReduxContext.subscription;
var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
useDebugValue(selectedState);
return selectedState;
};
}
Example #12
Source File: useSelector.js From mern_docker_demo with MIT License | 6 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context = ReactReduxContext) {
const useReduxContext =
context === ReactReduxContext
? useDefaultReduxContext
: () => useContext(context)
return function useSelector(selector, equalityFn = refEquality) {
if (process.env.NODE_ENV !== 'production' && !selector) {
throw new Error(`You must pass a selector to useSelector`)
}
const { store, subscription: contextSub } = useReduxContext()
const selectedState = useSelectorWithStoreAndSubscription(
selector,
equalityFn,
store,
contextSub
)
useDebugValue(selectedState)
return selectedState
}
}
Example #13
Source File: useSelector.js From the-eye-knows-the-garbage with MIT License | 6 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context) {
if (context === void 0) {
context = ReactReduxContext;
}
var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {
return useContext(context);
};
return function useSelector(selector, equalityFn) {
if (equalityFn === void 0) {
equalityFn = refEquality;
}
if (process.env.NODE_ENV !== 'production' && !selector) {
throw new Error("You must pass a selector to useSelector");
}
var _useReduxContext = useReduxContext(),
store = _useReduxContext.store,
contextSub = _useReduxContext.subscription;
var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
useDebugValue(selectedState);
return selectedState;
};
}
Example #14
Source File: styled-components.esm.js From VTour with MIT License | 6 votes |
function useInjectedStyle(componentStyle, hasAttrs, resolvedAttrs, warnTooManyClasses) {
var styleSheet = useStyleSheet();
var stylis = useStylis(); // statically styled-components don't need to build an execution context object,
// and shouldn't be increasing the number of class names
var isStatic = componentStyle.isStatic && !hasAttrs;
var className = isStatic ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis) : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);
useDebugValue(className);
if (process.env.NODE_ENV !== 'production' && !isStatic && warnTooManyClasses) {
warnTooManyClasses(className);
}
return className;
}
Example #15
Source File: helpers.jsx From Log_app with MIT License | 5 votes |
useStateWithLabel = (name, initialValue) => {
const [value, setValue] = useState(initialValue);
useDebugValue(`${name}: ${value}`);
return [value, setValue];
}
Example #16
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useCustomObject() {
useDebugValue(object);
return useState(123);
}
Example #17
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useDeepHookF() {
useDebugValue('useDeepHookF');
}
Example #18
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useDeepHookE() {
useDebugValue('useDeepHookE');
useDeepHookF();
}
Example #19
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useDeepHookD() {
useDebugValue('useDeepHookD');
useDeepHookE();
}
Example #20
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useDeepHookC() {
useDebugValue('useDeepHookC');
useDeepHookD();
}
Example #21
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useDeepHookB() {
useDebugValue('useDeepHookB');
useDeepHookC();
}
Example #22
Source File: CustomHooks.js From ReactSourceCodeAnalyze with MIT License | 5 votes |
function useDeepHookA() {
useDebugValue('useDeepHookA');
useDeepHookB();
}
Example #23
Source File: hooks.js From Learning-Redux with MIT License | 5 votes |
useColors = () => {
const ctx = useContext(ColorContext);
useDebugValue(ctx.colors.length);
return ctx;
}
Example #24
Source File: hooks.js From Learning-Redux with MIT License | 5 votes |
useInput = (initialValue) => {
const [value, setValue] = useState(initialValue);
useDebugValue(value);
return [
{ value, onChange: (e) => setValue(e.target.value) },
() => setValue(initialValue),
];
}
Example #25
Source File: useSelector.js From Learning-Redux with MIT License | 5 votes |
/**
* Hook factory, which creates a `useSelector` hook bound to a given context.
*
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
* @returns {Function} A `useSelector` hook bound to the specified context.
*/
export function createSelectorHook(context) {
if (context === void 0) {
context = ReactReduxContext;
}
var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {
return useContext(context);
};
return function useSelector(selector, equalityFn) {
if (equalityFn === void 0) {
equalityFn = refEquality;
}
if (process.env.NODE_ENV !== 'production') {
if (!selector) {
throw new Error("You must pass a selector to useSelector");
}
if (typeof selector !== 'function') {
throw new Error("You must pass a function as a selector to useSelector");
}
if (typeof equalityFn !== 'function') {
throw new Error("You must pass a function as an equality function to useSelector");
}
}
var _useReduxContext = useReduxContext(),
store = _useReduxContext.store,
contextSub = _useReduxContext.subscription;
var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
useDebugValue(selectedState);
return selectedState;
};
}
Example #26
Source File: useAuth.js From citu-api with MIT License | 5 votes |
useAuth = () => {
const { auth } = useContext(AuthContext);
useDebugValue(auth, auth => auth?.user ? "Logged In" : "Logged Out")
return useContext(AuthContext);
}
Example #27
Source File: styled-components.esm.js From VTour with MIT License | 5 votes |
function useStyledComponentImpl(forwardedComponent, props, forwardedRef) {
var componentAttrs = forwardedComponent.attrs,
componentStyle = forwardedComponent.componentStyle,
defaultProps = forwardedComponent.defaultProps,
foldedComponentIds = forwardedComponent.foldedComponentIds,
styledComponentId = forwardedComponent.styledComponentId,
target = forwardedComponent.target;
useDebugValue(styledComponentId); // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,
// but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it
// should be an immutable value, but behave for now.
var theme = determineTheme(props, useContext(ThemeContext), defaultProps);
var _useResolvedAttrs = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs),
context = _useResolvedAttrs[0],
attrs = _useResolvedAttrs[1];
var generatedClassName = useInjectedStyle(componentStyle, componentAttrs.length > 0, context, process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined);
var refToForward = forwardedRef;
var elementToBeCreated = attrs.as || props.as || target;
var isTargetTag = isTag(elementToBeCreated);
var computedProps = attrs !== props ? _extends({}, props, {}, attrs) : props;
var shouldFilterProps = isTargetTag || 'as' in computedProps || 'forwardedAs' in computedProps;
var propsForElement = shouldFilterProps ? {} : _extends({}, computedProps);
if (shouldFilterProps) {
// eslint-disable-next-line guard-for-in
for (var key in computedProps) {
if (key === 'forwardedAs') {
propsForElement.as = computedProps[key];
} else if (key !== 'as' && key !== 'forwardedAs' && (!isTargetTag || validAttr(key))) {
// Don't pass through non HTML tags through to HTML elements
propsForElement[key] = computedProps[key];
}
}
}
if (props.style && attrs.style !== props.style) {
propsForElement.style = _extends({}, props.style, {}, attrs.style);
}
propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, props.className, attrs.className).filter(Boolean).join(' ');
propsForElement.ref = refToForward;
return createElement(elementToBeCreated, propsForElement);
}
Example #28
Source File: styled-components.browser.esm.js From VTour with MIT License | 5 votes |
function useStyledComponentImpl(forwardedComponent, props, forwardedRef) {
var componentAttrs = forwardedComponent.attrs,
componentStyle = forwardedComponent.componentStyle,
defaultProps = forwardedComponent.defaultProps,
foldedComponentIds = forwardedComponent.foldedComponentIds,
styledComponentId = forwardedComponent.styledComponentId,
target = forwardedComponent.target;
useDebugValue(styledComponentId); // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,
// but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it
// should be an immutable value, but behave for now.
var theme = determineTheme(props, useContext(ThemeContext), defaultProps);
var _useResolvedAttrs = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs),
context = _useResolvedAttrs[0],
attrs = _useResolvedAttrs[1];
var generatedClassName = useInjectedStyle(componentStyle, componentAttrs.length > 0, context, process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined);
var refToForward = forwardedRef;
var elementToBeCreated = attrs.as || props.as || target;
var isTargetTag = isTag(elementToBeCreated);
var computedProps = attrs !== props ? _extends({}, props, {}, attrs) : props;
var shouldFilterProps = isTargetTag || 'as' in computedProps || 'forwardedAs' in computedProps;
var propsForElement = shouldFilterProps ? {} : _extends({}, computedProps);
if (shouldFilterProps) {
// eslint-disable-next-line guard-for-in
for (var key in computedProps) {
if (key === 'forwardedAs') {
propsForElement.as = computedProps[key];
} else if (key !== 'as' && key !== 'forwardedAs' && (!isTargetTag || validAttr(key))) {
// Don't pass through non HTML tags through to HTML elements
propsForElement[key] = computedProps[key];
}
}
}
if (props.style && attrs.style !== props.style) {
propsForElement.style = _extends({}, props.style, {}, attrs.style);
}
propsForElement.className = Array.prototype.concat(foldedComponentIds, styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : null, props.className, attrs.className).filter(Boolean).join(' ');
propsForElement.ref = refToForward;
return createElement(elementToBeCreated, propsForElement);
}