react-use/src/useDefault.ts
xobotyi b6993a6f95
feat(prettier): make prettier a part of eslint.
Also reduce max line width to 100. And remove `lint:types` step for
commit sequence, it bothers when committing incomplete (wip) changes.
2021-02-01 18:58:55 +03:00

17 lines
401 B
TypeScript

import { useState } from 'react';
const useDefault = <TStateType>(
defaultValue: TStateType,
initialValue: TStateType | (() => TStateType)
) => {
const [value, setValue] = useState<TStateType | undefined | null>(initialValue);
if (value === undefined || value === null) {
return [defaultValue, setValue] as const;
}
return [value, setValue] as const;
};
export default useDefault;