@skyscanner/backpack-web 0.0.5 → 0.0.6

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.
Files changed (48) hide show
  1. package/bpk-component-accordion/src/BpkAccordionItem.js +2 -2
  2. package/bpk-component-accordion/src/withAccordionItemState.js +1 -1
  3. package/bpk-component-aria-live/examples.js +2 -1
  4. package/bpk-component-autosuggest/examples.js +2 -2
  5. package/bpk-component-badge/examples.js +1 -1
  6. package/bpk-component-banner-alert/examples.js +1 -1
  7. package/bpk-component-barchart/src/BpkChartGridLines.js +8 -8
  8. package/bpk-component-button/examples.js +1 -1
  9. package/bpk-component-calendar/coloured-calendar-example.js +1 -1
  10. package/bpk-component-calendar/examples-components.js +1 -1
  11. package/bpk-component-calendar/examples.js +1 -1
  12. package/bpk-component-calendar/src/BpkCalendarGridTransition.js +11 -11
  13. package/bpk-component-calendar/src/BpkCalendarNav.js +8 -8
  14. package/bpk-component-calendar/src/Week.js +1 -1
  15. package/bpk-component-checkbox/examples.js +1 -1
  16. package/bpk-component-chip/examples.js +1 -1
  17. package/bpk-component-close-button/examples.js +1 -1
  18. package/bpk-component-datepicker/examples.js +1 -1
  19. package/bpk-component-dialog/src/BpkDialogInner.js +1 -1
  20. package/bpk-component-drawer/src/BpkDrawer.js +1 -1
  21. package/bpk-component-fieldset/examples.js +2 -2
  22. package/bpk-component-horizontal-nav/examples.js +1 -1
  23. package/bpk-component-icon/src/withAlignment.js +3 -2
  24. package/bpk-component-image/src/withLoadingBehavior.js +27 -27
  25. package/bpk-component-infinite-scroll/examples.js +1 -1
  26. package/bpk-component-infinite-scroll/src/withInfiniteScroll.js +105 -105
  27. package/bpk-component-input/examples.js +1 -1
  28. package/bpk-component-link/examples.js +1 -1
  29. package/bpk-component-loading-button/examples.js +1 -1
  30. package/bpk-component-map/examples.js +1 -1
  31. package/bpk-component-modal/examples.js +1 -1
  32. package/bpk-component-modal/src/BpkModal.js +7 -7
  33. package/bpk-component-navigation-bar/examples.js +1 -1
  34. package/bpk-component-navigation-stack/src/BpkNavigationStack.js +4 -3
  35. package/bpk-component-navigation-stack/stories-components.js +14 -14
  36. package/bpk-component-nudger/examples.js +1 -1
  37. package/bpk-component-overlay/src/BpkOverlay.js +1 -1
  38. package/bpk-component-radio/examples.js +1 -1
  39. package/bpk-component-scrollable-calendar/examples.js +1 -1
  40. package/bpk-component-section-list/examples.js +1 -1
  41. package/bpk-component-select/examples.js +1 -1
  42. package/bpk-component-slider/examples.js +8 -8
  43. package/bpk-component-star-rating/examples.js +1 -1
  44. package/bpk-component-star-rating/src/BpkStarRating.js +3 -3
  45. package/bpk-component-textarea/examples.js +1 -1
  46. package/bpk-component-ticket/src/BpkTicket.js +6 -6
  47. package/bpk-component-tooltip/examples.js +1 -1
  48. package/package.json +1 -1
@@ -79,8 +79,8 @@ const BpkAccordionItem = (props: Props) => {
79
79
  const contentId = `${id}_content`;
80
80
  const clonedIcon = icon
81
81
  ? React.cloneElement(icon, {
82
- className: getClassName('bpk-accordion__leading-icon'),
83
- })
82
+ className: getClassName('bpk-accordion__leading-icon'),
83
+ })
84
84
  : null;
85
85
 
86
86
  return (
@@ -59,7 +59,7 @@ const withAccordionItemState = (ComposedComponent: ComponentType<any>) => {
59
59
  (prevState) => ({
60
60
  expanded: !prevState.expanded,
61
61
  }),
62
- this.props.onClick || (() => { }),
62
+ this.props.onClick || (() => {}),
63
63
  );
64
64
  };
65
65
 
@@ -187,7 +187,8 @@ class ChipsExample extends React.Component<
187
187
  const nextState = prevState;
188
188
  nextState.categories[category] = !prevState.categories[category];
189
189
  nextState.updates.push(
190
- `${category} became ${nextState.categories[category] ? 'enabled' : 'disabled'
190
+ `${category} became ${
191
+ nextState.categories[category] ? 'enabled' : 'disabled'
191
192
  }.`,
192
193
  );
193
194
  return nextState;
@@ -108,8 +108,8 @@ const getSuggestions = (value, hanzi) => {
108
108
  return inputLength === 0
109
109
  ? []
110
110
  : data.filter(
111
- (office) => office.name.toLowerCase().indexOf(inputValue) !== -1,
112
- );
111
+ (office) => office.name.toLowerCase().indexOf(inputValue) !== -1,
112
+ );
113
113
  };
114
114
 
115
115
  const getSuggestionValue = (suggestion) =>
@@ -24,7 +24,7 @@ import BpkSmallFlightIcon from '../bpk-component-icon/sm/flight';
24
24
  import BpkSmallWeatherIcon from '../bpk-component-icon/sm/weather';
25
25
  import BpkSmallTickIcon from '../bpk-component-icon/sm/tick-circle';
26
26
  import BpkSmallCloseIcon from '../bpk-component-icon/sm/close-circle';
27
- import { BpkDarkExampleWrapper } from 'bpk-storybook-utils';
27
+ import { BpkDarkExampleWrapper } from '../bpk-storybook-utils';
28
28
 
29
29
  import BadgeLayout from './BadgeLayout';
30
30
 
@@ -18,7 +18,7 @@
18
18
  /* @flow strict */
19
19
 
20
20
  import React, { Component } from 'react';
21
- import { action } from 'bpk-storybook-utils';
21
+ import { action } from '../bpk-storybook-utils';
22
22
  import { fontWeightBold } from '@skyscanner/bpk-foundations-web/tokens/base.es6';
23
23
  import CurrencyIcon from '../bpk-component-icon/sm/currency';
24
24
  import { AriaLiveDemo } from '../bpk-component-aria-live/examples';
@@ -66,15 +66,15 @@ const BpkChartGridLines = (props: Props) => {
66
66
  const value = position(tick);
67
67
  return orientation === ORIENTATION_X
68
68
  ? {
69
- x1: value,
70
- x2: value,
71
- y2: height - margin.top - margin.bottom,
72
- }
69
+ x1: value,
70
+ x2: value,
71
+ y2: height - margin.top - margin.bottom,
72
+ }
73
73
  : {
74
- x2: width - margin.left - margin.right,
75
- y1: value,
76
- y2: value,
77
- };
74
+ x2: width - margin.left - margin.right,
75
+ y1: value,
76
+ y2: value,
77
+ };
78
78
  };
79
79
 
80
80
  const toLine = (tick, i) => (
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action, BpkDarkExampleWrapper } from 'bpk-storybook-utils';
22
+ import { action, BpkDarkExampleWrapper } from '../bpk-storybook-utils';
23
23
 
24
24
  import {
25
25
  withButtonAlignment,
@@ -20,7 +20,7 @@
20
20
 
21
21
  import React, { Component } from 'react';
22
22
  import PropTypes from 'prop-types';
23
- import { action } from 'bpk-storybook-utils';
23
+ import { action } from '../bpk-storybook-utils';
24
24
 
25
25
  import {
26
26
  BpkCalendarGrid,
@@ -29,7 +29,7 @@ import {
29
29
  colorSkyGrayTint04,
30
30
  colorMonteverde,
31
31
  } from '@skyscanner/bpk-foundations-web/tokens/base.es6';
32
- import { action } from 'bpk-storybook-utils';
32
+ import { action } from '../bpk-storybook-utils';
33
33
 
34
34
  import { withButtonAlignment, withRtlSupport } from '../bpk-component-icon';
35
35
  import SmallLongArrowRightIcon from '../bpk-component-icon/sm/long-arrow-right';
@@ -16,7 +16,7 @@
16
16
  * limitations under the License.
17
17
  */
18
18
  import React from 'react';
19
- import { action } from 'bpk-storybook-utils';
19
+ import { action } from '../bpk-storybook-utils';
20
20
  import addMonths from 'date-fns/addMonths';
21
21
  import BpkText from '../bpk-component-text';
22
22
  import startOfDay from 'date-fns/startOfDay';
@@ -172,11 +172,11 @@ class BpkCalendarGridTransition extends Component {
172
172
  index === 1
173
173
  ? focusedDate
174
174
  : getFocusedDateForMonth(
175
- m,
176
- focusedDate,
177
- rest.minDate,
178
- rest.maxDate,
179
- )
175
+ m,
176
+ focusedDate,
177
+ rest.minDate,
178
+ rest.maxDate,
179
+ )
180
180
  }
181
181
  aria-hidden={index !== 1}
182
182
  className={getClassName('bpk-calendar-grid-transition__grid')}
@@ -208,12 +208,12 @@ BpkCalendarGridTransition.defaultProps = {
208
208
  };
209
209
 
210
210
  const addCalendarGridTransition = (TransitionComponent) => (props) =>
211
- (
212
- <BpkCalendarGridTransition
213
- TransitionComponent={TransitionComponent}
214
- {...props}
215
- />
216
- );
211
+ (
212
+ <BpkCalendarGridTransition
213
+ TransitionComponent={TransitionComponent}
214
+ {...props}
215
+ />
216
+ );
217
217
 
218
218
  export default BpkCalendarGridTransition;
219
219
  export { addCalendarGridTransition };
@@ -39,14 +39,14 @@ const getClassName = cssModules(STYLES);
39
39
 
40
40
  const changeMonth =
41
41
  ({ callback, max, min, month, source }) =>
42
- (event) => {
43
- // Safeguard for disabled buttons is due to React bug in Chrome: https://github.com/facebook/react/issues/8308
44
- // PR: https://github.com/facebook/react/pull/8329 - unresolved as of 22/12/2016
45
- if (isWithinRange(month, { start: min, end: max })) {
46
- event.persist();
47
- callback(event, { month, source });
48
- }
49
- };
42
+ (event) => {
43
+ // Safeguard for disabled buttons is due to React bug in Chrome: https://github.com/facebook/react/issues/8308
44
+ // PR: https://github.com/facebook/react/pull/8329 - unresolved as of 22/12/2016
45
+ if (isWithinRange(month, { start: min, end: max })) {
46
+ event.persist();
47
+ callback(event, { month, source });
48
+ }
49
+ };
50
50
 
51
51
  const BpkCalendarNav = (props) => {
52
52
  const {
@@ -249,7 +249,7 @@ class Week extends Component {
249
249
  // render, component should update.
250
250
  if (
251
251
  this.props.selectionConfiguration.type ===
252
- CALENDAR_SELECTION_TYPE.single &&
252
+ CALENDAR_SELECTION_TYPE.single &&
253
253
  this.props.selectionConfiguration.date
254
254
  ) {
255
255
  return singleDateHandler(this.props, nextProps);
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React, { Component } from 'react';
22
- import { action, BpkDarkExampleWrapper } from 'bpk-storybook-utils';
22
+ import { action, BpkDarkExampleWrapper } from '../bpk-storybook-utils';
23
23
  import {
24
24
  spacingXs,
25
25
  spacingSm,
@@ -47,7 +47,7 @@ type StatefulSelectableChipProps = $Diff<
47
47
  accessibilityLabel: string,
48
48
  onClick: (event: SyntheticEvent<>) => mixed,
49
49
  },
50
- >;
50
+ >;
51
51
  /* eslint-enable */
52
52
 
53
53
  class StatefulSelectableChip extends React.Component<
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
 
24
24
  import BpkCloseButton from './index';
25
25
 
@@ -19,7 +19,7 @@
19
19
  import React, { Component } from 'react';
20
20
  import PropTypes from 'prop-types';
21
21
  import { memoize } from 'lodash';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
  import {
24
24
  colorSagano,
25
25
  colorBagan,
@@ -20,7 +20,7 @@
20
20
 
21
21
  import React from 'react';
22
22
  import { TransitionInitialMount, cssModules } from '../../bpk-react-utils';
23
- import { withScrim } from '../../bpk-react-utils';
23
+ import { withScrim } from '../../bpk-scrim-utils';
24
24
  import { BpkContentBubble } from '../../bpk-component-flare';
25
25
 
26
26
  import {
@@ -21,7 +21,7 @@
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { Component } from 'react';
23
23
  import { Portal, cssModules } from '../../bpk-react-utils';
24
- import { withScrim } from '../../bpk-react-utils';
24
+ import { withScrim } from '../../bpk-scrim-utils';
25
25
 
26
26
  import BpkDrawerContent from './BpkDrawerContent';
27
27
  import STYLES from './BpkDrawer.module.scss';
@@ -109,8 +109,8 @@ const getSuggestions = (value) => {
109
109
  return inputLength === 0
110
110
  ? []
111
111
  : offices.filter(
112
- (office) => office.name.toLowerCase().indexOf(inputValue) !== -1,
113
- );
112
+ (office) => office.name.toLowerCase().indexOf(inputValue) !== -1,
113
+ );
114
114
  };
115
115
 
116
116
  const getSuggestionValue = (suggestion) =>
@@ -25,7 +25,7 @@ import {
25
25
  colorSkyGrayTint06,
26
26
  } from '@skyscanner/bpk-foundations-web/tokens/base.es6';
27
27
  import BpkText from '../bpk-component-text';
28
- import { BpkDarkExampleWrapper } from 'bpk-storybook-utils';
28
+ import { BpkDarkExampleWrapper } from '../bpk-storybook-utils';
29
29
 
30
30
  import STYLES from './examples.module.scss';
31
31
 
@@ -23,8 +23,9 @@ export default function withAlignment(Component, objectHeight, subjectHeight) {
23
23
  const WithAlignment = (props) => {
24
24
  const objectHeightDecimal = `${objectHeight}`.replace('rem', '');
25
25
  const subjectHeightDecimal = `${subjectHeight}`.replace('rem', '');
26
- const marginTopCalculated = `${Math.max(0, objectHeightDecimal - subjectHeightDecimal) / 2
27
- }rem`;
26
+ const marginTopCalculated = `${
27
+ Math.max(0, objectHeightDecimal - subjectHeightDecimal) / 2
28
+ }rem`;
28
29
 
29
30
  return (
30
31
  <span
@@ -22,44 +22,44 @@ import { wrapDisplayName } from '../../bpk-react-utils';
22
22
 
23
23
  type InjectedProps = {|
24
24
  onLoad: () => mixed,
25
- loading: boolean,
25
+ loading: boolean,
26
26
  |};
27
27
 
28
28
  export default function withLoadingBehavior<Config>(
29
29
  Component: AbstractComponent<{| ...Config, ...InjectedProps |}>,
30
- ): AbstractComponent < Config > {
31
- class WithLoadingBehavior < C: Config> extends React.Component <
30
+ ): AbstractComponent<Config> {
31
+ class WithLoadingBehavior<C: Config> extends React.Component<
32
32
  C,
33
33
  {| loading: boolean |},
34
34
  > {
35
- constructor() {
36
- super();
35
+ constructor() {
36
+ super();
37
37
 
38
- this.state = {
39
- loading: true,
40
- };
41
- }
38
+ this.state = {
39
+ loading: true,
40
+ };
41
+ }
42
42
 
43
43
  onLoad = () => {
44
- this.setState(() => ({
45
- loading: false,
46
- }));
47
- };
44
+ this.setState(() => ({
45
+ loading: false,
46
+ }));
47
+ };
48
48
 
49
- render() {
50
- return (
51
- <Component
52
- onLoad={this.onLoad}
53
- loading={this.state.loading}
54
- {...this.props}
55
- />
56
- );
49
+ render() {
50
+ return (
51
+ <Component
52
+ onLoad={this.onLoad}
53
+ loading={this.state.loading}
54
+ {...this.props}
55
+ />
56
+ );
57
+ }
57
58
  }
58
- }
59
- WithLoadingBehavior.displayName = wrapDisplayName(
60
- Component,
61
- 'withLoadingBehavior',
62
- );
59
+ WithLoadingBehavior.displayName = wrapDisplayName(
60
+ Component,
61
+ 'withLoadingBehavior',
62
+ );
63
63
 
64
- return WithLoadingBehavior;
64
+ return WithLoadingBehavior;
65
65
  }
@@ -20,7 +20,7 @@
20
20
 
21
21
  import React from 'react';
22
22
  import PropTypes from 'prop-types';
23
- import { action } from 'bpk-storybook-utils';
23
+ import { action } from '../bpk-storybook-utils';
24
24
  import BpkButton from '../bpk-component-button';
25
25
  import { BpkList, BpkListItem } from '../bpk-component-list';
26
26
  import { BpkSpinner, SPINNER_TYPES } from '../bpk-component-spinner';
@@ -95,133 +95,133 @@ type PropsWithDefault = Config<Props, typeof defaultProps>;
95
95
 
96
96
  const withInfiniteScroll = <T: ExtendedProps>(
97
97
  ComponentToExtend: AbstractComponent<T>,
98
- ): AbstractComponent<PropsWithDefault & $Diff<T, ExtendedProps>> =>
99
- class WithInfiniteScroll extends Component<Props, State> {
100
- handleIntersection: IntersectionObserverCallback;
98
+ ): AbstractComponent<PropsWithDefault & $Diff<T, ExtendedProps>> =>
99
+ class WithInfiniteScroll extends Component<Props, State> {
100
+ handleIntersection: IntersectionObserverCallback;
101
101
 
102
102
  handleKeyPress: (e: SyntheticKeyboardEvent<HTMLButtonElement>) => void;
103
103
 
104
- handleSeeMoreClick: (e: SyntheticEvent<HTMLButtonElement>) => void;
104
+ handleSeeMoreClick: (e: SyntheticEvent<HTMLButtonElement>) => void;
105
105
 
106
- observer: IntersectionObserver;
106
+ observer: IntersectionObserver;
107
107
 
108
- sentinel: ?HTMLElement;
108
+ sentinel: ?HTMLElement;
109
109
 
110
- static propTypes = {...propTypes};
110
+ static propTypes = { ...propTypes };
111
111
 
112
- static defaultProps = {...defaultProps};
112
+ static defaultProps = { ...defaultProps };
113
113
 
114
- constructor(props: Props) {
115
- super(props);
114
+ constructor(props: Props) {
115
+ super(props);
116
116
 
117
- this.state = {
118
- index: 0,
117
+ this.state = {
118
+ index: 0,
119
119
  elementsToRender: [],
120
120
  isListFinished: false,
121
121
  showSeeMore: false,
122
122
  };
123
123
 
124
- this.props.dataSource.onDataChange(this.updateData);
124
+ this.props.dataSource.onDataChange(this.updateData);
125
125
 
126
- const thresholds = {
127
- small: 0.01,
126
+ const thresholds = {
127
+ small: 0.01,
128
128
  half: 0.5,
129
129
  full: 0.99, // using 0.99 instead of 1 to avoid problems with float precision in IE11
130
130
  };
131
- const displaySize = this.props.loaderIntersectionTrigger || 'full';
132
- this.observer = new IntersectionObserver(this.handleIntersection, {
133
- threshold: thresholds[displaySize] || thresholds.full,
131
+ const displaySize = this.props.loaderIntersectionTrigger || 'full';
132
+ this.observer = new IntersectionObserver(this.handleIntersection, {
133
+ threshold: thresholds[displaySize] || thresholds.full,
134
134
  });
135
135
  }
136
136
 
137
- componentDidMount() {
138
- this.fetchItems({
139
- elementsPerScroll: this.props.initiallyLoadedElements,
140
- }).then((newState) => {
141
- this.setState(newState);
142
- });
137
+ componentDidMount() {
138
+ this.fetchItems({
139
+ elementsPerScroll: this.props.initiallyLoadedElements,
140
+ }).then((newState) => {
141
+ this.setState(newState);
142
+ });
143
143
  }
144
144
 
145
- componentDidUpdate(prevProps) {
145
+ componentDidUpdate(prevProps) {
146
146
  if (this.sentinel && this.state.index > 0) {
147
- this.observer.observe(this.sentinel);
147
+ this.observer.observe(this.sentinel);
148
148
  }
149
149
 
150
- if (this.props.dataSource !== prevProps.dataSource) {
151
- prevProps.dataSource.removeListener(this.updateData);
150
+ if (this.props.dataSource !== prevProps.dataSource) {
151
+ prevProps.dataSource.removeListener(this.updateData);
152
152
  this.props.dataSource.onDataChange(this.updateData);
153
153
  this.fetchItems({
154
154
  index: 0,
155
- elementsPerScroll: this.props.elementsPerScroll,
156
- elementsToRender: [],
155
+ elementsPerScroll: this.props.elementsPerScroll,
156
+ elementsToRender: [],
157
157
  }).then((newState) => this.setStateAfterDsUpdate(newState));
158
158
  }
159
159
  }
160
160
 
161
- componentWillUnmount() {
162
- this.props.dataSource.removeListener(this.updateData);
163
- if (this.sentinel) {
164
- this.observer.unobserve(this.sentinel);
161
+ componentWillUnmount() {
162
+ this.props.dataSource.removeListener(this.updateData);
163
+ if (this.sentinel) {
164
+ this.observer.unobserve(this.sentinel);
165
165
  }
166
166
  }
167
167
 
168
- setStateAfterDsUpdate(newState: State) {
168
+ setStateAfterDsUpdate(newState: State) {
169
169
  // After a data source update (calling updateData in the data source or changing the dataSource prop)
170
170
  // all visible data is fetched again (from 0 to current index) to update the list with the new data.
171
171
  // If after this call there is no elementsToRender or index present in state
172
172
  // it means the new data source has no items and we need to
173
173
  // reset the list, which we do by setting `elementsToRender` to `[]` and `index` to `0`
174
- const {elementsToRender, index} = newState;
175
- this.setState({
176
- ...newState,
177
- elementsToRender: elementsToRender || [],
174
+ const { elementsToRender, index } = newState;
175
+ this.setState({
176
+ ...newState,
177
+ elementsToRender: elementsToRender || [],
178
178
  index: index || 0,
179
179
  });
180
180
  }
181
181
 
182
182
  updateData = () => {
183
- const {index} = this.state;
184
- // This means updateData was called before any data was loaded, e.g.
185
- // An ArrayDataSource initialized empty and then changed latter on via `updateData`
186
- // In this case we want to load new data and not just replace the old one.
187
- // "See More After" should also be computed again in this case.
188
- const isFirstLoad = index < this.props.elementsPerScroll;
189
- this.fetchItems({
190
- index: 0,
183
+ const { index } = this.state;
184
+ // This means updateData was called before any data was loaded, e.g.
185
+ // An ArrayDataSource initialized empty and then changed latter on via `updateData`
186
+ // In this case we want to load new data and not just replace the old one.
187
+ // "See More After" should also be computed again in this case.
188
+ const isFirstLoad = index < this.props.elementsPerScroll;
189
+ this.fetchItems({
190
+ index: 0,
191
191
  elementsPerScroll: isFirstLoad ? this.props.elementsPerScroll : index,
192
192
  elementsToRender: [],
193
193
  computeShowSeeMore: isFirstLoad,
194
194
  }).then((newState) => this.setStateAfterDsUpdate(newState));
195
195
  };
196
196
 
197
- fetchItems(config): Promise<$Shape<State>> {
198
- const {onScrollFinished, seeMoreAfter} = this.props;
199
- const {computeShowSeeMore, elementsPerScroll, elementsToRender, index} =
200
- extend(
197
+ fetchItems(config): Promise<$Shape<State>> {
198
+ const { onScrollFinished, seeMoreAfter } = this.props;
199
+ const { computeShowSeeMore, elementsPerScroll, elementsToRender, index } =
200
+ extend(
201
201
  {
202
202
  index: this.state.index,
203
- elementsPerScroll: this.props.elementsPerScroll,
204
- elementsToRender: this.state.elementsToRender,
205
- computeShowSeeMore: true,
203
+ elementsPerScroll: this.props.elementsPerScroll,
204
+ elementsToRender: this.state.elementsToRender,
205
+ computeShowSeeMore: true,
206
206
  },
207
207
  config,
208
- );
208
+ );
209
209
 
210
- return this.props.dataSource
211
- .fetchItems(index, elementsPerScroll)
210
+ return this.props.dataSource
211
+ .fetchItems(index, elementsPerScroll)
212
212
  .then((nextElements) => {
213
- let result = {
213
+ let result = {
214
214
  isListFinished: true,
215
215
  };
216
216
  if (nextElements && nextElements.length > 0) {
217
217
  const nextIndex = index + elementsPerScroll;
218
- result = {
219
- index: nextIndex,
220
- elementsToRender: (elementsToRender || []).concat(nextElements),
221
- showSeeMore: computeShowSeeMore
222
- ? seeMoreAfter === index / elementsPerScroll
223
- : this.state.showSeeMore,
224
- isListFinished: nextElements.length < elementsPerScroll,
218
+ result = {
219
+ index: nextIndex,
220
+ elementsToRender: (elementsToRender || []).concat(nextElements),
221
+ showSeeMore: computeShowSeeMore
222
+ ? seeMoreAfter === index / elementsPerScroll
223
+ : this.state.showSeeMore,
224
+ isListFinished: nextElements.length < elementsPerScroll,
225
225
  };
226
226
  }
227
227
  if (onScrollFinished && result.isListFinished) {
@@ -233,65 +233,65 @@ const withInfiniteScroll = <T: ExtendedProps>(
233
233
  });
234
234
  }
235
235
 
236
- handleIntersection = (entries: Array<IntersectionObserverEntry>) => {
237
- const {onScroll} = this.props;
238
- const entry = entries[0];
239
- if (entry.isIntersecting) {
236
+ handleIntersection = (entries: Array<IntersectionObserverEntry>) => {
237
+ const { onScroll } = this.props;
238
+ const entry = entries[0];
239
+ if (entry.isIntersecting) {
240
240
  if (this.sentinel) {
241
- this.observer.unobserve(this.sentinel);
241
+ this.observer.unobserve(this.sentinel);
242
242
  }
243
- if (onScroll) {
244
- onScroll({ currentIndex: this.state.index });
243
+ if (onScroll) {
244
+ onScroll({ currentIndex: this.state.index });
245
245
  }
246
246
  return this.fetchItems().then((newState) => {
247
- this.setState(newState);
247
+ this.setState(newState);
248
248
  });
249
249
  }
250
- return Promise.resolve();
250
+ return Promise.resolve();
251
251
  };
252
252
 
253
253
  handleSeeMoreClick = () => {
254
- this.fetchItems().then((newState) => {
255
- this.setState(newState);
256
- });
254
+ this.fetchItems().then((newState) => {
255
+ this.setState(newState);
256
+ });
257
257
  };
258
258
 
259
- render() {
260
- const {elementsToRender, isListFinished, showSeeMore} = this.state;
261
- const {renderLoadingComponent, renderSeeMoreComponent} = this.props;
259
+ render() {
260
+ const { elementsToRender, isListFinished, showSeeMore } = this.state;
261
+ const { renderLoadingComponent, renderSeeMoreComponent } = this.props;
262
262
 
263
- const rest = omit(this.props, Object.keys(propTypes));
263
+ const rest = omit(this.props, Object.keys(propTypes));
264
264
 
265
- let loadingOrButton = null;
265
+ let loadingOrButton = null;
266
266
 
267
- if (!isListFinished) {
267
+ if (!isListFinished) {
268
268
  if (showSeeMore && renderSeeMoreComponent) {
269
- loadingOrButton = renderSeeMoreComponent({
270
- onSeeMoreClick: this.handleSeeMoreClick,
271
- });
269
+ loadingOrButton = renderSeeMoreComponent({
270
+ onSeeMoreClick: this.handleSeeMoreClick,
271
+ });
272
272
  } else {
273
- loadingOrButton = (
274
- <div
275
- ref={(spinner) => {
276
- this.sentinel = spinner;
277
- }}
278
- className={
279
- renderLoadingComponent ? null : getClassNames('bpk-sentinel')
280
- }
281
- >
282
- {renderLoadingComponent && renderLoadingComponent()}
283
- </div>
284
- );
273
+ loadingOrButton = (
274
+ <div
275
+ ref={(spinner) => {
276
+ this.sentinel = spinner;
277
+ }}
278
+ className={
279
+ renderLoadingComponent ? null : getClassNames('bpk-sentinel')
280
+ }
281
+ >
282
+ {renderLoadingComponent && renderLoadingComponent()}
283
+ </div>
284
+ );
285
285
  }
286
286
  }
287
287
 
288
- return (
289
- <div>
290
- <ComponentToExtend {...rest} elements={elementsToRender} />
291
- {loadingOrButton}
292
- </div>
293
- );
288
+ return (
289
+ <div>
290
+ <ComponentToExtend {...rest} elements={elementsToRender} />
291
+ {loadingOrButton}
292
+ </div>
293
+ );
294
294
  }
295
295
  };
296
296
 
297
- export default withInfiniteScroll;
297
+ export default withInfiniteScroll;
@@ -20,7 +20,7 @@
20
20
  import React, { Component } from 'react';
21
21
  import PropTypes from 'prop-types';
22
22
  import { cssModules } from '../bpk-react-utils';
23
- import { action } from 'bpk-storybook-utils';
23
+ import { action } from '../bpk-storybook-utils';
24
24
  import BpkLabel from '../bpk-component-label';
25
25
  import BpkBannerAlert, { ALERT_TYPES } from '../bpk-component-banner-alert';
26
26
 
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action, BpkDarkExampleWrapper } from 'bpk-storybook-utils';
22
+ import { action, BpkDarkExampleWrapper } from '../bpk-storybook-utils';
23
23
  import {
24
24
  colorWhite,
25
25
  colorSkyGrayTint04,
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React, { Component } from 'react';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
  import {
24
24
  withButtonAlignment,
25
25
  withLargeButtonAlignment,
@@ -19,7 +19,7 @@
19
19
 
20
20
  import React, { Component, type Node } from 'react';
21
21
  import PropTypes from 'prop-types';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
  import BpkText from '../bpk-component-text';
24
24
  import { withRtlSupport } from '../bpk-component-icon';
25
25
  import LandmarkIconSm from '../bpk-component-icon/sm/landmark';
@@ -272,7 +272,7 @@ const WithAccessoryViewExample = () => (
272
272
  accessoryView={
273
273
  <BpkNavigationBarButtonLink
274
274
  label="Close"
275
- onClick={() => { }}
275
+ onClick={() => {}}
276
276
  className={getClassName('bpk-modal__leading-button')}
277
277
  >
278
278
  <div>
@@ -20,7 +20,7 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { type Element } from 'react';
23
- import { withScrim } from '../../bpk-react-utils';
23
+ import { withScrim } from '../../bpk-scrim-utils';
24
24
  import { Portal, cssModules, isDeviceIphone } from '../../bpk-react-utils';
25
25
 
26
26
  import STYLES from './BpkModal.module.scss';
@@ -45,12 +45,12 @@ export type Props = {
45
45
  // diff will suffice for now.
46
46
  ...$Exact<$Diff<ModalDialogProps, ScrimProps>>,
47
47
  isOpen: boolean,
48
- isIphone: boolean,
49
- closeOnScrimClick: boolean,
50
- closeOnEscPressed: boolean,
51
- renderTarget: ?() => ? HTMLElement,
52
- target: ?((() => ? HTMLElement) | Element < any >),
53
- onClose: (event: SyntheticEvent<>) => void | null,
48
+ isIphone: boolean,
49
+ closeOnScrimClick: boolean,
50
+ closeOnEscPressed: boolean,
51
+ renderTarget: ?() => ?HTMLElement,
52
+ target: ?((() => ?HTMLElement) | Element<any>),
53
+ onClose: (event: SyntheticEvent<>) => void | null,
54
54
  };
55
55
 
56
56
  const BpkModal = (props: Props) => {
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
  import { withRtlSupport } from '../bpk-component-icon';
24
24
  import ArrowIcon from '../bpk-component-icon/sm/long-arrow-left';
25
25
  import CloseIcon from '../bpk-component-icon/sm/close';
@@ -87,11 +87,12 @@ class BpkNavigationStack extends React.Component<Props, State> {
87
87
  className={getClassName(
88
88
  'bpk-navigation-stack__view-track',
89
89
  transition &&
90
- `bpk-navigation-stack__view-track--view-${transition}`,
90
+ `bpk-navigation-stack__view-track--view-${transition}`,
91
91
  )}
92
92
  style={{
93
- transform: `translateX(${lastIndex === 0 ? '0%' : `${isRTL() ? '' : '-'}${lastIndex}00%`
94
- })`,
93
+ transform: `translateX(${
94
+ lastIndex === 0 ? '0%' : `${isRTL() ? '' : '-'}${lastIndex}00%`
95
+ })`,
95
96
  }}
96
97
  >
97
98
  {Children.map(views, (view, idx) => (
@@ -53,15 +53,15 @@ export const View = ({
53
53
  }: {
54
54
  children: ({
55
55
  index: number,
56
- pushView: ? (Element < any >) => mixed,
57
- popView: ? () => mixed,
58
- }) => ?Element < any >,
59
- index: number,
60
- pushView: ?(Element < any >) => mixed,
61
- popView: ?() => mixed,
62
- className: ?string,
63
- noNavBar: boolean,
64
- centered: boolean,
56
+ pushView: ?(Element<any>) => mixed,
57
+ popView: ?() => mixed,
58
+ }) => ?Element<any>,
59
+ index: number,
60
+ pushView: ?(Element<any>) => mixed,
61
+ popView: ?() => mixed,
62
+ className: ?string,
63
+ noNavBar: boolean,
64
+ centered: boolean,
65
65
  }) => (
66
66
  // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
67
67
  <section
@@ -93,8 +93,8 @@ export const SimpleNav = ({
93
93
  pushView,
94
94
  }: {
95
95
  index: number,
96
- pushView: ?(Element < any >) => mixed,
97
- popView: ?() => mixed,
96
+ pushView: ?(Element<any>) => mixed,
97
+ popView: ?() => mixed,
98
98
  }) => (
99
99
  <div>
100
100
  <BpkButton
@@ -124,9 +124,9 @@ export const NavigationBar = ({
124
124
  pushView,
125
125
  }: {
126
126
  index: number,
127
- pushView: ?(Element < any >) => mixed,
128
- popView: ?() => mixed,
129
- nextView: ?() => ? Element < any >,
127
+ pushView: ?(Element<any>) => mixed,
128
+ popView: ?() => mixed,
129
+ nextView: ?() => ?Element<any>,
130
130
  }) => (
131
131
  <BpkNavigationBar
132
132
  id={`my-navigation-bar-${index}`}
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React, { Component } from 'react';
22
- import { action, BpkDarkExampleWrapper } from 'bpk-storybook-utils';
22
+ import { action, BpkDarkExampleWrapper } from '../bpk-storybook-utils';
23
23
  import BpkLabel from '../bpk-component-label';
24
24
  import { cssModules } from '../bpk-react-utils';
25
25
 
@@ -57,7 +57,7 @@ const BpkOverlay = (props: Props) => {
57
57
  const overlayClassNames = getClassName(
58
58
  'bpk-overlay__overlay',
59
59
  borderRadiusStyle === BORDER_RADIUS_STYLES.sm &&
60
- 'bpk-overlay__overlay--border-radius-sm',
60
+ 'bpk-overlay__overlay--border-radius-sm',
61
61
  overlayType === OVERLAY_TYPES.tint && 'bpk-overlay__overlay--tint',
62
62
  );
63
63
 
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action, BpkDarkExampleWrapper } from 'bpk-storybook-utils';
22
+ import { action, BpkDarkExampleWrapper } from '../bpk-storybook-utils';
23
23
 
24
24
  import BpkRadio from './index';
25
25
 
@@ -20,7 +20,7 @@ import PropTypes from 'prop-types';
20
20
  import React, { Component } from 'react';
21
21
  import startOfMonth from 'date-fns/startOfMonth';
22
22
  import endOfMonth from 'date-fns/endOfMonth';
23
- import { action } from 'bpk-storybook-utils';
23
+ import { action } from '../bpk-storybook-utils';
24
24
  import {
25
25
  DateUtils,
26
26
  CustomPropTypes,
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
 
24
24
  import BpkSectionList, {
25
25
  BpkSectionListSection,
@@ -18,7 +18,7 @@
18
18
 
19
19
  import React from 'react';
20
20
  import PropTypes from 'prop-types';
21
- import { action } from 'bpk-storybook-utils';
21
+ import { action } from '../bpk-storybook-utils';
22
22
 
23
23
  import BpkSelect from './index';
24
24
 
@@ -51,15 +51,15 @@ class SliderContainer extends Component {
51
51
  <div>
52
52
  {this.state.value.length
53
53
  ? this.valueComponent(
54
- this.state.value[0],
55
- this.state.value[1],
56
- time && this.valueTimeFormatter,
57
- )
54
+ this.state.value[0],
55
+ this.state.value[1],
56
+ time && this.valueTimeFormatter,
57
+ )
58
58
  : this.valueComponent(
59
- min,
60
- this.state.value,
61
- time && this.valueTimeFormatter,
62
- )}
59
+ min,
60
+ this.state.value,
61
+ time && this.valueTimeFormatter,
62
+ )}
63
63
  <BpkSlider
64
64
  min={min}
65
65
  max={time ? 59 : 100}
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
  import {
24
24
  BpkTable,
25
25
  BpkTableBody,
@@ -53,9 +53,9 @@ type Props = {
53
53
  maxRating: number,
54
54
  rating: number,
55
55
  rounding:
56
- | typeof ROUNDING_TYPES.down
57
- | typeof ROUNDING_TYPES.up
58
- | typeof ROUNDING_TYPES.nearest,
56
+ | typeof ROUNDING_TYPES.down
57
+ | typeof ROUNDING_TYPES.up
58
+ | typeof ROUNDING_TYPES.nearest,
59
59
  };
60
60
 
61
61
  const BpkStarRating = (props: Props) => {
@@ -19,7 +19,7 @@
19
19
  /* @flow strict */
20
20
 
21
21
  import React from 'react';
22
- import { action } from 'bpk-storybook-utils';
22
+ import { action } from '../bpk-storybook-utils';
23
23
  import BpkLabel from '../bpk-component-label';
24
24
 
25
25
  import BpkTextarea from './index';
@@ -93,13 +93,13 @@ const BpkTicket = (props: Props) => {
93
93
  const punchlineClassNames = getClassName(
94
94
  'bpk-ticket__punchline',
95
95
  vertical &&
96
- (withNotches
97
- ? 'bpk-ticket__punchline--horizontal-with-notches'
98
- : 'bpk-ticket__punchline--horizontal'),
96
+ (withNotches
97
+ ? 'bpk-ticket__punchline--horizontal-with-notches'
98
+ : 'bpk-ticket__punchline--horizontal'),
99
99
  !vertical &&
100
- (withNotches
101
- ? 'bpk-ticket__punchline--vertical-with-notches'
102
- : 'bpk-ticket__punchline--vertical'),
100
+ (withNotches
101
+ ? 'bpk-ticket__punchline--vertical-with-notches'
102
+ : 'bpk-ticket__punchline--vertical'),
103
103
  );
104
104
 
105
105
  const startNotchClassNames = getClassName(
@@ -157,7 +157,7 @@ const FocusExample = () => (
157
157
  >
158
158
  Should be focused on third
159
159
  </BpkTooltip>
160
- <button type="button" onClick={() => { }}>
160
+ <button type="button" onClick={() => {}}>
161
161
  Four
162
162
  </button>
163
163
  <BpkTooltip
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyscanner/backpack-web",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Backpack Design System web library",
5
5
  "repository": {
6
6
  "type": "git",