diff --git a/Libraries/StyleSheet/TransformPropTypes.js b/Libraries/StyleSheet/TransformPropTypes.js
index 9338f7ff5f..c9f403f75f 100644
--- a/Libraries/StyleSheet/TransformPropTypes.js
+++ b/Libraries/StyleSheet/TransformPropTypes.js
@@ -14,7 +14,15 @@
var ReactPropTypes = require('ReactPropTypes');
var TransformPropTypes = {
- transform: ReactPropTypes.arrayOf(ReactPropTypes.object),
+ transform: ReactPropTypes.arrayOf(
+ ReactPropTypes.oneOfType([
+ ReactPropTypes.shape({rotate: ReactPropTypes.string}),
+ ReactPropTypes.shape({scaleX: ReactPropTypes.number}),
+ ReactPropTypes.shape({scaleY: ReactPropTypes.number}),
+ ReactPropTypes.shape({translateX: ReactPropTypes.number}),
+ ReactPropTypes.shape({translateY: ReactPropTypes.number})
+ ])
+ ),
transformMatrix: ReactPropTypes.arrayOf(ReactPropTypes.number),
// DEPRECATED
diff --git a/website/layout/AutodocsLayout.js b/website/layout/AutodocsLayout.js
index 23b2238144..ed583372e4 100644
--- a/website/layout/AutodocsLayout.js
+++ b/website/layout/AutodocsLayout.js
@@ -33,6 +33,10 @@ var ComponentDoc = React.createClass({
return '{' + Object.keys(type.value).map((key => key + ': ' + this.renderType(type.value[key]))).join(', ') + '}';
}
+ if (type.name == 'union') {
+ return type.value.map(this.renderType).join(', ');
+ }
+
if (type.name === 'arrayOf') {
return '[' + this.renderType(type.value) + ']';
}
@@ -96,14 +100,18 @@ var ComponentDoc = React.createClass({
{(style.composes || []).map((name) => {
var link;
- if (name !== 'LayoutPropTypes') {
- name = name.replace('StylePropTypes', '');
- link =
-
{name}#style...;
- } else {
+ if (name === 'LayoutPropTypes') {
name = 'Flexbox';
link =
{name}...;
+ } else if (name === 'TransformPropTypes') {
+ name = 'Transforms';
+ link =
+
{name}...;
+ } else {
+ name = name.replace('StylePropTypes', '');
+ link =
+
{name}#style...;
}
return (
diff --git a/website/server/extractDocs.js b/website/server/extractDocs.js
index fec125cadc..ccb15f3296 100644
--- a/website/server/extractDocs.js
+++ b/website/server/extractDocs.js
@@ -19,9 +19,12 @@ function getNameFromPath(filepath) {
while (ext = path.extname(filepath)) {
filepath = path.basename(filepath, ext);
}
+
if (filepath === 'LayoutPropTypes') {
return 'Flexbox';
- } else if (filepath == 'TabBarItemIOS') {
+ } else if (filepath === 'TransformPropTypes') {
+ return 'Transforms';
+ } else if (filepath === 'TabBarItemIOS') {
return 'TabBarIOS.Item';
}
return filepath;
@@ -148,6 +151,7 @@ var apis = [
var styles = [
'../Libraries/StyleSheet/LayoutPropTypes.js',
+ '../Libraries/StyleSheet/TransformPropTypes.js',
'../Libraries/Components/View/ViewStylePropTypes.js',
'../Libraries/Text/TextStylePropTypes.js',
'../Libraries/Image/ImageStylePropTypes.js',
@@ -159,10 +163,10 @@ var polyfills = [
var all = components
.concat(apis)
- .concat(styles.slice(0, 1))
+ .concat(styles.slice(0, 2))
.concat(polyfills);
-var styleDocs = styles.slice(1).reduce(function(docs, filepath) {
+var styleDocs = styles.slice(2).reduce(function(docs, filepath) {
docs[path.basename(filepath).replace(path.extname(filepath), '')] =
docgen.parse(
fs.readFileSync(filepath),
@@ -171,9 +175,9 @@ var styleDocs = styles.slice(1).reduce(function(docs, filepath) {
);
// Remove deprecated style props
- if (docs['ViewStylePropTypes']) {
+ if (docs['TransformPropTypes']) {
['rotation', 'scaleX', 'scaleY', 'translateX', 'translateY'].forEach(function(key) {
- delete docs['ViewStylePropTypes']['props'][key];
+ delete docs['TransformPropTypes']['props'][key];
});
}
@@ -185,7 +189,7 @@ module.exports = function() {
return [].concat(
components.map(renderComponent),
apis.map(renderAPI('api')),
- styles.slice(0, 1).map(renderStyle),
+ styles.slice(0, 2).map(renderStyle),
polyfills.map(renderAPI('Polyfill'))
);
};