pebble-web 2.9.3 → 2.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pebble-web",
3
- "version": "2.9.3",
3
+ "version": "2.10.1",
4
4
  "author": "ritz078 <rkritesh078@gmail.com>",
5
5
  "license": "MIT",
6
6
  "main": "dist/pebble-web.js",
@@ -44,12 +44,12 @@
44
44
  "utility-types": "^3.10.0"
45
45
  },
46
46
  "devDependencies": {
47
- "pebble-shared": "^2.9.3"
47
+ "pebble-shared": "^2.10.1"
48
48
  },
49
49
  "greenkeeper": {
50
50
  "ignore": [
51
51
  "rheostat"
52
52
  ]
53
53
  },
54
- "gitHead": "4af3ab593a194d8eeb9540671cb99fcf4bd132a1"
54
+ "gitHead": "89ca1fe1ea315fc30c22c3e58177d6a4a2860580"
55
55
  }
@@ -53,10 +53,10 @@ export default class DateInput extends React.PureComponent<
53
53
  state: DateInputState
54
54
  ): Partial<DateInputState> | null {
55
55
  let newState: Partial<DateInputState> | null = null;
56
- if (props.value && props.value !== state.propsValue) {
56
+ if (props.value !== state.propsValue) {
57
57
  newState = {
58
58
  propsValue: props.value,
59
- stringInput: (props.value && format(props.value, "dd/MM/yyyy")) || ""
59
+ stringInput: props.value ? format(props.value, "dd/MM/yyyy") : ""
60
60
  };
61
61
  }
62
62
  return newState;
@@ -91,7 +91,10 @@ export default class DateInput extends React.PureComponent<
91
91
  errorMessage,
92
92
  placement,
93
93
  wrapperClassName,
94
- initiallyOpen
94
+ initiallyOpen,
95
+ onOutsideClick,
96
+ controlled,
97
+ isOpen
95
98
  } = this.props;
96
99
 
97
100
  const _wrapperClassName = cx(wrapperStyle, wrapperClassName);
@@ -116,7 +119,7 @@ export default class DateInput extends React.PureComponent<
116
119
  value={value}
117
120
  placeholder={placeholder}
118
121
  onClick={() => {
119
- if (disabled) return;
122
+ if (disabled || controlled) return;
120
123
  toggleDropdown();
121
124
  }}
122
125
  fixLabelAtTop
@@ -136,6 +139,9 @@ export default class DateInput extends React.PureComponent<
136
139
  placement={placement}
137
140
  modifiers={modifiers}
138
141
  initiallyOpen={initiallyOpen}
142
+ onOutsideClick={onOutsideClick}
143
+ controlled={controlled}
144
+ isOpen={isOpen}
139
145
  >
140
146
  {({ toggle }) => (
141
147
  <>
@@ -147,6 +153,9 @@ export default class DateInput extends React.PureComponent<
147
153
  range={false}
148
154
  onChange={date => {
149
155
  this.onCalendarDateChange(date);
156
+ if (controlled) {
157
+ return;
158
+ }
150
159
  toggle();
151
160
  }}
152
161
  />
@@ -47,9 +47,13 @@ class DropDown extends React.PureComponent<DropdownProps, DropdownState> {
47
47
  isSelected,
48
48
  disabled,
49
49
  labelClassName,
50
+ controlled,
50
51
  onOutsideClick
51
52
  } = this.props;
52
- const { isOpen } = this.state;
53
+
54
+ const _isDropDownOpen = controlled
55
+ ? !!this.props.isOpen
56
+ : this.state.isOpen;
53
57
 
54
58
  return (
55
59
  <OutsideClick
@@ -58,9 +62,9 @@ class DropDown extends React.PureComponent<DropdownProps, DropdownState> {
58
62
  this.setState({
59
63
  isOpen: false
60
64
  });
61
- if (onOutsideClick) onOutsideClick(isOpen);
65
+ if (onOutsideClick) onOutsideClick(_isDropDownOpen);
62
66
  }}
63
- disabled={!isOpen}
67
+ disabled={!_isDropDownOpen}
64
68
  >
65
69
  <Manager>
66
70
  <Reference>
@@ -68,13 +72,13 @@ class DropDown extends React.PureComponent<DropdownProps, DropdownState> {
68
72
  <div style={{ display: "inline-block", width: "100%" }} ref={ref}>
69
73
  {labelComponent ? (
70
74
  labelComponent({
71
- isOpen,
75
+ isOpen: _isDropDownOpen,
72
76
  toggleDropdown: this.toggleDropdown
73
77
  })
74
78
  ) : (
75
79
  <DropDownButton
76
80
  isSelected={!!isSelected}
77
- isOpen={isOpen}
81
+ isOpen={_isDropDownOpen}
78
82
  onClick={this.toggleDropdown}
79
83
  disabled={disabled}
80
84
  className={labelClassName}
@@ -87,7 +91,7 @@ class DropDown extends React.PureComponent<DropdownProps, DropdownState> {
87
91
  </Reference>
88
92
 
89
93
  {/* TODO: Add native flag. */}
90
- <MountTransition visible={isOpen}>
94
+ <MountTransition visible={_isDropDownOpen}>
91
95
  {transitionStyles => (
92
96
  <animated.div
93
97
  className={cx(dropDownStyle, dropDownClassName)}
@@ -99,10 +103,12 @@ class DropDown extends React.PureComponent<DropdownProps, DropdownState> {
99
103
  ...style,
100
104
  ...transitionStyles,
101
105
  backgroundColor: colors.white.base,
102
- transform: `${style.transform ||
103
- ""} ${transitionStyles.transform || ""}`,
104
- transformOrigin: `${arrowProps.style.left ||
105
- 0}px ${arrowProps.style.top || 0}px`,
106
+ transform: `${style.transform || ""} ${
107
+ transitionStyles.transform || ""
108
+ }`,
109
+ transformOrigin: `${arrowProps.style.left || 0}px ${
110
+ arrowProps.style.top || 0
111
+ }px`,
106
112
  padding
107
113
  };
108
114
 
@@ -115,7 +121,7 @@ class DropDown extends React.PureComponent<DropdownProps, DropdownState> {
115
121
  >
116
122
  {children({
117
123
  toggle: this.toggleDropdown,
118
- isOpen: this.state.isOpen
124
+ isOpen: _isDropDownOpen
119
125
  })}
120
126
  </div>
121
127
  );
@@ -71,10 +71,12 @@ export default class PebblePopper extends React.PureComponent<
71
71
  ...style,
72
72
  ...transitionStyles,
73
73
  backgroundColor: popperBackgroundColor,
74
- transform: `${style.transform ||
75
- ""} ${transitionStyles.transform || ""}`,
76
- transformOrigin: `${arrowProps.style.left ||
77
- 0}px ${arrowProps.style.top || 0}px`
74
+ transform: `${style.transform || ""} ${
75
+ transitionStyles.transform || ""
76
+ }`,
77
+ transformOrigin: `${arrowProps.style.left || 0}px ${
78
+ arrowProps.style.top || 0
79
+ }px`
78
80
  };
79
81
 
80
82
  return (
@@ -3,6 +3,7 @@ import Popper from "./Popper";
3
3
  import { TooltipProps, TooltipState } from "./typings/Tooltip";
4
4
  import { colors } from "pebble-shared";
5
5
  import { popperStyle, textStyle } from "./styles/Tooltip.styles";
6
+ import { cx } from "emotion";
6
7
 
7
8
  class Tooltip extends React.PureComponent<TooltipProps, TooltipState> {
8
9
  state = {
@@ -27,7 +28,13 @@ class Tooltip extends React.PureComponent<TooltipProps, TooltipState> {
27
28
  };
28
29
 
29
30
  render() {
30
- const { placement, label, modifiers, isError } = this.props;
31
+ const {
32
+ placement,
33
+ label,
34
+ modifiers,
35
+ isError,
36
+ popperClassName
37
+ } = this.props;
31
38
 
32
39
  return (
33
40
  <Popper
@@ -42,7 +49,7 @@ class Tooltip extends React.PureComponent<TooltipProps, TooltipState> {
42
49
  popperBackgroundColor={isError ? colors.red.base : colors.gray.darker}
43
50
  modifiers={modifiers}
44
51
  isOpen={this.props.isOpen || this.state.isOpen}
45
- popperClassName={popperStyle}
52
+ popperClassName={cx(popperStyle, popperClassName)}
46
53
  closeOnOutsideClick={false}
47
54
  >
48
55
  {this.props.renderElement || this.defaultTooltip}
@@ -15,6 +15,9 @@ export interface DateInputProps {
15
15
  wrapperClassName?: string;
16
16
  dropDownClassName?: string;
17
17
  initiallyOpen?: boolean;
18
+ onOutsideClick?: (isOpen: boolean) => void;
19
+ controlled?: boolean;
20
+ isOpen?: boolean;
18
21
  }
19
22
 
20
23
  export interface DateInputState {
@@ -23,6 +23,8 @@ export interface DropdownProps {
23
23
  onOutsideClick?: (isOpen: boolean) => void;
24
24
  placement?: Placement;
25
25
  modifiers?: Modifiers;
26
+ controlled?: boolean;
27
+ isOpen?: boolean;
26
28
  }
27
29
 
28
30
  export interface DropdownState {
@@ -15,6 +15,7 @@ export interface TooltipProps {
15
15
  toggle: () => void;
16
16
  isOpen: boolean;
17
17
  }) => React.ReactNode;
18
+ popperClassName?: string;
18
19
  }
19
20
 
20
21
  export interface TooltipState {