diff --git a/package.json b/package.json index 78f231d311..045564e923 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.10.4", + "version": "0.12.0", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 2816757695..0d3a056d68 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -99,7 +99,6 @@ var ImageCard = React.createClass({ shell.openExternal(repoUri); }, render: function () { - var self = this; var name; if (this.props.image.namespace === 'library') { name = ( @@ -119,7 +118,7 @@ var ImageCard = React.createClass({ var description; if (this.props.image.description) { description = this.props.image.description; - } else if(this.props.image.short_description){ + } else if (this.props.image.short_description) { description = this.props.image.short_description; } else { description = 'No description.'; @@ -134,17 +133,26 @@ var ImageCard = React.createClass({ imgsrc = 'https://kitematic.com/recommended/kitematic_html.png'; } var tags; - if (self.state.loading) { + if (this.state.loading) { tags = ; - } else if (self.state.tags.length === 0) { + } else if (this.state.tags.length === 0) { tags =
No Tags
; } else { - var tagDisplay = self.state.tags.map(function (tag) { - let t = tag.name; - if (t === self.state.chosenTag) { - return
{t}
; + var tagDisplay = this.state.tags.map((tag) => { + let t = ''; + if (tag.name) { + t = tag.name; } else { - return
{t}
; + t = tag; + } + let key = t; + if (typeof key === 'undefined') { + key = this.props.image.name; + } + if (t === this.state.chosenTag) { + return
{t}
; + } else { + return
{t}
; } }); tags = ( @@ -172,10 +180,10 @@ var ImageCard = React.createClass({ {this.state.chosenTag} -
+
-
+
CREATE
@@ -190,7 +198,7 @@ var ImageCard = React.createClass({
{this.props.image.inUse ?

To delete, remove all containers
using the above image

: null }
- +
); @@ -205,10 +213,10 @@ var ImageCard = React.createClass({ {pullCount} -
+
-
+
CREATE
@@ -223,7 +231,7 @@ var ImageCard = React.createClass({ VIEW ON DOCKER HUB
- +
); @@ -234,7 +242,7 @@ var ImageCard = React.createClass({

Please select an image tag.

{tags} -
+
diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index 886ad17817..83272a2182 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -240,7 +240,7 @@ module.exports = React.createClass({ ); paginateResults = null; } else if (filter === 'userimages') { - let userImageItems = this.state.images.map(image => { + let userImageItems = this.state.images.map((image, index) => { let repo = image.RepoTags[0].split(':')[0]; if (repo.indexOf('/') === -1) { repo = 'local/' + repo; @@ -250,7 +250,12 @@ module.exports = React.createClass({ let tags = image.tags.join('-'); image.star_count = 0; image.is_local = true; - return (); + const key = `local-${image.name}-${index}`; + let imageCard = null; + if (image.name !== '') { + imageCard = (); + } + return imageCard; }); let userImageResults = userImageItems.length ? (
@@ -277,8 +282,14 @@ module.exports = React.createClass({
); } else if (repos.length) { - let recommendedItems = repos.filter(repo => repo.is_recommended).map(image => ); - let otherItems = repos.filter(repo => !repo.is_recommended && !repo.is_user_repo).map(image => ); + let recommendedItems = repos.filter(repo => repo.is_recommended).map((image, index) => { + const key = `rec-${image.name}-${index}`; + return (); + }); + let otherItems = repos.filter(repo => !repo.is_recommended && !repo.is_user_repo).map((image, index) => { + const key = `other-${image.name}-${index}`; + return (); + }); let recommendedResults = recommendedItems.length ? (
@@ -289,7 +300,10 @@ module.exports = React.createClass({
) : null; - let userRepoItems = repos.filter(repo => repo.is_user_repo).map(image => ); + let userRepoItems = repos.filter(repo => repo.is_user_repo).map((image, index) => { + const key = `usr-${image.name}-${index}`; + return (); + }); let userRepoResults = userRepoItems.length ? (

My Repositories