Skip to content

Commit

Permalink
fix: reuse handleChange in key enter handler
Browse files Browse the repository at this point in the history
  • Loading branch information
HellWolf93 committed Jun 4, 2020
1 parent 5e1fdc7 commit b181457
Showing 1 changed file with 21 additions and 34 deletions.
55 changes: 21 additions & 34 deletions src/components/InternalDropdown/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,26 @@ const InternalDropdown = forwardRef((props, reference) => {
}
};

const handleChange = useCallback(
option => {
const { name } = option;
if (multiple) {
if (Array.isArray(value)) {
if (value.some(v => v.name === name)) {
return null;
}
return onChange(value.concat([option]));
}
if (value) {
return onChange([value, option]);
}
return onChange([option]);
}
return onChange(option);
},
[multiple, value, onChange],
);

const handleKeyUpPressed = () => {
const nextActiveIndex =
(activeChildren.current.length + activeOptionIndex - 1) % activeChildren.current.length;
Expand All @@ -180,20 +200,7 @@ const InternalDropdown = forwardRef((props, reference) => {

const handleKeyEnterPressed = () => {
const { ref, ...rest } = activeChildren.current[activeOptionIndex];
const { name } = rest;
if (multiple) {
if (Array.isArray(value)) {
if (value.some(v => v.name === name)) {
return null;
}
return onChange(value.concat([rest]));
}
if (value) {
return onChange([value, rest]);
}
return onChange([rest]);
}
return onChange(rest);
return handleChange(rest);
};

const keyHandlerMap = {
Expand Down Expand Up @@ -231,26 +238,6 @@ const InternalDropdown = forwardRef((props, reference) => {
setTimeout(() => updateScrollingArrows(), 0);
};

const handleChange = useCallback(
option => {
const { name } = option;
if (multiple) {
if (Array.isArray(value)) {
if (value.some(v => v.name === name)) {
return null;
}
return onChange(value.concat([option]));
}
if (value) {
return onChange([value, option]);
}
return onChange([option]);
}
return onChange(option);
},
[multiple, value, onChange],
);

const context = useMemo(() => {
const currentValues = getValueNames(value);
return {
Expand Down

0 comments on commit b181457

Please sign in to comment.