You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 lines
350 B
13 lines
350 B
const buildObjectStateSetterCallback = |
|
<S extends Record<string, unknown>>(key: keyof S, value?: S[keyof S]) => |
|
({ [key]: toReplace, ...restPrevious }: S): S => { |
|
const result = { ...restPrevious } as S; |
|
|
|
if (value !== undefined) { |
|
result[key] = value; |
|
} |
|
|
|
return result; |
|
}; |
|
|
|
export default buildObjectStateSetterCallback;
|
|
|