Skip to content

Commit

Permalink
Update value if props is changed
Browse files Browse the repository at this point in the history
  • Loading branch information
0xhyperdust committed Feb 16, 2019
1 parent 4c17c38 commit d970fac
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-ts-timepicker",
"version": "0.0.5",
"version": "0.0.6",
"description": "Simple timepicker for React",
"main": "dist/index.js",
"scripts": {
Expand Down
23 changes: 23 additions & 0 deletions src/TimePicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,29 @@ class TimePicker extends React.Component<IProps, IState> {
document.addEventListener("keydown", this.onKeyDown);
}

componentDidUpdate(prevProps: IProps) {
const { value } = this.props;

let isValueChanged = false;

if ((!prevProps.value && value) || (prevProps.value && !value)) {
isValueChanged = true;
} else if (value instanceof Date && prevProps.value instanceof Date) {
isValueChanged = prevProps.value.getTime() !== value.getTime();
} else if (typeof value === "string" && typeof prevProps.value === "string") {
isValueChanged = prevProps.value !== value;
}

if (isValueChanged) {
const seconds = this.convertTimeToSeconds(value);

this.setState({
inputValue: seconds ? this.convertSecondsToFormattedString(seconds) : "",
value: seconds,
});
}
}

componentWillUnmount() {
document.removeEventListener("keydown", this.onKeyDown);
}
Expand Down

0 comments on commit d970fac

Please sign in to comment.