From 0862369c56837178147c27500a3a212506554c42 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Thu, 6 Jul 2017 06:38:57 -0600 Subject: [PATCH 1/7] Fixes #3100 - Style changes for required properties. Pass `required` prop down to `ObjectModel` properly. Remove passing of `required` prop to "type" models. --- src/core/components/model.jsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index de714403..38f26e3b 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -29,18 +29,19 @@ class ObjectModel extends Component { name: PropTypes.string, isRef: PropTypes.bool, expandDepth: PropTypes.number, - depth: PropTypes.number + depth: PropTypes.number, + required: PropTypes.bool } render(){ - let { schema, name, isRef, getComponent, depth, ...props } = this.props + let { schema, name, isRef, getComponent, depth, required, ...props } = this.props let { expandDepth } = this.props const JumpToPath = getComponent("JumpToPath", true) let description = schema.get("description") let properties = schema.get("properties") let additionalProperties = schema.get("additionalProperties") let title = schema.get("title") || name - let required = schema.get("required") + let requiredProperties = schema.get("required") const Markdown = getComponent("Markdown") const JumpToPathSection = ({ name }) => let collapsedContent = ( @@ -76,17 +77,18 @@ class ObjectModel extends Component { { !(properties && properties.size) ? null : properties.entrySeq().map( ([key, value]) => { - let isRequired = List.isList(required) && required.contains(key) + let isRequired = List.isList(requiredProperties) && requiredProperties.contains(key) let propertyStyle = { verticalAlign: "top", paddingRight: "0.2em" } if ( isRequired ) { propertyStyle.fontWeight = "bold" } return ( - { key }: + + { key }{ isRequired && * } + @@ -257,7 +259,7 @@ class Model extends Component { switch(type) { case "object": return case "array": return From 4ddb3cd597aefb6995f4cfe58dd2264df8542034 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Thu, 6 Jul 2017 18:49:47 -0600 Subject: [PATCH 2/7] Remove unused `required` prop from ObjectModel --- src/core/components/model.jsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index 38f26e3b..fcacffb4 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -29,12 +29,11 @@ class ObjectModel extends Component { name: PropTypes.string, isRef: PropTypes.bool, expandDepth: PropTypes.number, - depth: PropTypes.number, - required: PropTypes.bool + depth: PropTypes.number } render(){ - let { schema, name, isRef, getComponent, depth, required, ...props } = this.props + let { schema, name, isRef, getComponent, depth, ...props } = this.props let { expandDepth } = this.props const JumpToPath = getComponent("JumpToPath", true) let description = schema.get("description") From a18c100d3f86f5200bee4b6e0cb2f6c94d6c8e0e Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Mon, 17 Jul 2017 18:46:29 -0600 Subject: [PATCH 3/7] Reimplemented fixes after merge with master --- src/core/components/model.jsx | 2 +- src/core/components/object-model.jsx | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index 499a0f05..cba34289 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -48,7 +48,7 @@ export default class Model extends Component { switch(type) { case "object": return case "array": return diff --git a/src/core/components/object-model.jsx b/src/core/components/object-model.jsx index 5e0a83a9..cfaab2e6 100644 --- a/src/core/components/object-model.jsx +++ b/src/core/components/object-model.jsx @@ -23,7 +23,7 @@ export default class ObjectModel extends Component { let properties = schema.get("properties") let additionalProperties = schema.get("additionalProperties") let title = schema.get("title") || name - let required = schema.get("required") + let requiredProperties = schema.get("required") const JumpToPath = getComponent("JumpToPath", true) const Markdown = getComponent("Markdown") @@ -63,14 +63,16 @@ export default class ObjectModel extends Component { { !(properties && properties.size) ? null : properties.entrySeq().map( ([key, value]) => { - let isRequired = List.isList(required) && required.contains(key) + let isRequired = List.isList(requiredProperties) && requiredProperties.contains(key) let propertyStyle = { verticalAlign: "top", paddingRight: "0.2em" } if ( isRequired ) { propertyStyle.fontWeight = "bold" } return ( - { key }: + + { key }{ isRequired && * } + Date: Fri, 21 Jul 2017 11:42:06 +1000 Subject: [PATCH 4/7] Remove fallback to name for array model title (Fixes #3424) --- src/core/components/array-model.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/components/array-model.jsx b/src/core/components/array-model.jsx index b507b42b..996a1cc6 100644 --- a/src/core/components/array-model.jsx +++ b/src/core/components/array-model.jsx @@ -17,13 +17,13 @@ export default class ArrayModel extends Component { render(){ let { getComponent, required, schema, depth, expandDepth } = this.props let items = schema.get("items") - let title = schema.get("title") || name + let title = schema.get("title") let properties = schema.filter( ( v, key) => ["type", "items", "$$ref"].indexOf(key) === -1 ) const ModelCollapse = getComponent("ModelCollapse") const Model = getComponent("Model") - const titleEl = title && + const titleEl = title && { title } @@ -44,4 +44,4 @@ export default class ArrayModel extends Component { { required && *} } -} \ No newline at end of file +} From ca937f4bdde0511b3239b1b00ae02fef077017e6 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Fri, 21 Jul 2017 20:13:12 -0600 Subject: [PATCH 5/7] Add `name` fallback, fix `name` extraction from `props` --- src/core/components/array-model.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/components/array-model.jsx b/src/core/components/array-model.jsx index 996a1cc6..3442d4c9 100644 --- a/src/core/components/array-model.jsx +++ b/src/core/components/array-model.jsx @@ -15,9 +15,9 @@ export default class ArrayModel extends Component { } render(){ - let { getComponent, required, schema, depth, expandDepth } = this.props + let { getComponent, required, schema, depth, expandDepth, name } = this.props let items = schema.get("items") - let title = schema.get("title") + let title = schema.get("title") || name let properties = schema.filter( ( v, key) => ["type", "items", "$$ref"].indexOf(key) === -1 ) const ModelCollapse = getComponent("ModelCollapse") From defc45f7a61c29d7c98a07b24b54f32c5fcaeee3 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Fri, 21 Jul 2017 20:16:51 -0600 Subject: [PATCH 6/7] Fixes #3435 - Update `image/` response types to create a proper blob url from the content returned. --- src/core/components/response-body.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/components/response-body.jsx b/src/core/components/response-body.jsx index df3bd061..6fb7350c 100644 --- a/src/core/components/response-body.jsx +++ b/src/core/components/response-body.jsx @@ -40,7 +40,7 @@ export default class ResponseBody extends React.Component { // Image } else if (/^image\//i.test(contentType)) { - bodyEl = + bodyEl = // Audio } else if (/^audio\//i.test(contentType)) { From 454e9af16bd4f963b3a9439c4026e84d328b697a Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Fri, 21 Jul 2017 20:56:00 -0600 Subject: [PATCH 7/7] Added max-width style to scale down large images --- src/core/components/response-body.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/components/response-body.jsx b/src/core/components/response-body.jsx index 6fb7350c..0829512e 100644 --- a/src/core/components/response-body.jsx +++ b/src/core/components/response-body.jsx @@ -40,7 +40,7 @@ export default class ResponseBody extends React.Component { // Image } else if (/^image\//i.test(contentType)) { - bodyEl = + bodyEl = // Audio } else if (/^audio\//i.test(contentType)) {