Skip to content

Commit 7e5e0b4

Browse files
committed
WIP
1 parent df7f426 commit 7e5e0b4

File tree

11 files changed

+3509
-2949
lines changed

11 files changed

+3509
-2949
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@
22
coverage
33
node_modules
44
lib
5-
storybook-static
65
.eslintcache

.npmignore

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
.babelrc
22
.eslintrc
33
.nyc_output
4-
.storybook
54
.travis.yml
65
coverage
76
node_modules
87
test
9-
stories
108
scripts
11-
storybook-static
129
.eslintcache
1310
.idea
1411
solano.yml
1512
renovate.json
1613
commitlint.config.js
1714
flow-typed
18-

.storybook/config.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

package.json

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@
6464
"@jedwards1211/eslint-config": "^2.0.0",
6565
"@jedwards1211/eslint-config-flow": "^1.0.0",
6666
"@jedwards1211/eslint-config-react": "^4.0.0",
67-
"@storybook/react": "^3.3.8",
6867
"@storybook/storybook-deployer": "^2.2.0",
6968
"babel-cli": "^6.26.0",
7069
"babel-core": "^6.26.0",
7170
"babel-eslint": "^8.2.1",
71+
"babel-loader": "^8.0.5",
7272
"babel-plugin-flow-react-proptypes": "^13.0.2",
7373
"babel-plugin-istanbul": "^4.1.5",
7474
"babel-plugin-lodash": "^3.3.4",
@@ -100,21 +100,23 @@
100100
"jsdom-global": "^3.0.2",
101101
"mocha": "^5.0.0",
102102
"nyc": "^11.4.1",
103-
"react": "^16.2.0",
104-
"react-dom": "^16.2.0",
103+
"react": "^16.8.6",
104+
"react-dom": "^16.8.6",
105105
"react-hot-loader": "^3.1.3",
106-
"react-transition-context": "^2.0.0",
106+
"react-transition-context": "^5.0.0",
107107
"rimraf": "^2.6.0",
108-
"semantic-release": "^15.1.4",
108+
"semantic-release": "^15.13.3",
109109
"sinon": "^4.1.4",
110-
"travis-deploy-once": "^4.3.1"
110+
"travis-deploy-once": "^4.3.1",
111+
"webpack": "^4.30.0",
112+
"webpack-cli": "^3.3.0",
113+
"webpack-dev-server": "^3.3.1"
111114
},
112115
"peerDependencies": {
113-
"react": "^15.0.0 || ^16.0.0"
116+
"react": "^16.8.0"
114117
},
115118
"dependencies": {
116119
"inline-style-prefixer": "^4.0.0",
117-
"lodash": "^4.17.10",
118120
"prop-types": "^15.6.0"
119121
}
120122
}

src/index.js

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@
44
import * as React from 'react'
55
import Prefixer from 'inline-style-prefixer'
66
import { range } from "lodash"
7+
import {TransitionContext} from 'react-transition-context'
78

89
type TransitionState = 'in' | 'out' | 'entering' | 'leaving'
910

1011
export type ViewProps = {
1112
index: number,
12-
key: number,
1313
active: boolean,
1414
transitionState: TransitionState,
15-
style: Object,
16-
ref: (element: ?React.ElementRef<string>) => mixed,
1715
}
1816

1917
export type DefaultProps = {
@@ -24,7 +22,6 @@ export type DefaultProps = {
2422
prefixer: Prefixer,
2523
style: Object,
2624
viewportStyle: Object,
27-
measureHeight: (node: HTMLElement) => number,
2825
}
2926

3027
export type Props = {
@@ -41,7 +38,6 @@ export type Props = {
4138
style: Object,
4239
viewportClassName?: string,
4340
viewportStyle: Object,
44-
measureHeight: (node: HTMLElement) => number,
4541
rootRef?: (node: ?React.ElementRef<'div'>) => mixed,
4642
viewportRef?: (node: ?React.ElementRef<'div'>) => mixed,
4743
}
@@ -78,7 +74,6 @@ export default class ViewSlider extends React.Component<Props, State> {
7874
prefixer: new Prefixer(),
7975
style: {},
8076
viewportStyle: {},
81-
measureHeight: (node: HTMLElement): number => node.offsetHeight,
8277
}
8378
state: State = {
8479
height: undefined,
@@ -94,7 +89,7 @@ export default class ViewSlider extends React.Component<Props, State> {
9489

9590
measureHeight = (node: ?HTMLElement): ?number => {
9691
if (!node) return null
97-
return this.props.measureHeight(node)
92+
return node.clientHeight
9893
}
9994

10095
setTimeout(name: string, callback: () => any, delay: number) {
@@ -165,7 +160,7 @@ export default class ViewSlider extends React.Component<Props, State> {
165160
const {fillParent, prefixer, keepViewsMounted} = this.props
166161
const {activeView, transitioning} = this.state
167162

168-
const style: Object = {...viewStyle}
163+
const style: Object = {display: 'flex', ...viewStyle}
169164
if (fillParent) {
170165
Object.assign(style, fillStyle)
171166
style.overflow = 'auto'
@@ -177,14 +172,19 @@ export default class ViewSlider extends React.Component<Props, State> {
177172
if (!transitioning && activeView !== index && !keepViewsMounted) {
178173
return <div key={index} style={prefixer.prefix(style)}></div>
179174
}
180-
return this.props.renderView({
181-
index,
182-
key: index,
183-
active: index === activeView,
184-
transitionState: this.getTransitionState(index),
185-
style: prefixer.prefix(style),
186-
ref: c => this.views[index] = c,
187-
})
175+
return (
176+
<div key={index} style={prefixer.prefix(style)} ref={c => this.views[index] = c}>
177+
<div style={{width: '100%'}}>
178+
<TransitionContext state={this.getTransitionState(index)}>
179+
{this.props.renderView({
180+
index,
181+
active: index === activeView,
182+
transitionState: this.getTransitionState(index),
183+
})}
184+
</TransitionContext>
185+
</div>
186+
</div>
187+
)
188188
}
189189

190190
animateHeight = (): boolean => {
@@ -254,5 +254,3 @@ export default class ViewSlider extends React.Component<Props, State> {
254254
)
255255
}
256256
}
257-
258-

src/simple.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export type Props = {
1919
style?: Object,
2020
viewportClassName?: string,
2121
viewportStyle?: Object,
22-
measureHeight?: (node: HTMLElement) => number,
2322
rootRef?: (node: ?React.ElementRef<'div'>) => mixed,
2423
viewportRef?: (node: ?React.ElementRef<'div'>) => mixed,
2524
}
@@ -29,12 +28,8 @@ export type State = {
2928
activeView: number,
3029
}
3130

32-
function defaultRenderView({index, key, style, ref}: ViewProps): React.Element<'div'> {
33-
return (
34-
<div key={key} style={style} ref={ref}>
35-
{this.state.views[index]}
36-
</div>
37-
)
31+
function defaultRenderView({index}: ViewProps): React.Element<'div'> {
32+
return this.state.views[index]
3833
}
3934

4035
export function createSimpleViewSlider(

src/simpleWithTransitionContext.js

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/withTransitionContext.js

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)