Skip to content
Snippets Groups Projects
Unverified Commit 08e283ba authored by DD Liu's avatar DD Liu Committed by GitHub
Browse files

Merge pull request #1138 from fsih/lastCostume

Prevent deleting the last costume
parents 9c9e67e5 1e11a92f
No related branches found
No related tags found
No related merge requests found
......@@ -57,7 +57,7 @@ Selector.propTypes = {
url: PropTypes.string,
name: PropTypes.string.isRequired
})),
onDeleteClick: PropTypes.func.isRequired,
onDeleteClick: PropTypes.func,
onItemClick: PropTypes.func.isRequired,
selectedItemIndex: PropTypes.number.isRequired
};
......
......@@ -22,7 +22,7 @@ const SpriteSelectorItem = props => (
}}
id={`${props.name}-${contextMenuId}`}
>
{props.selected ? (
{(props.selected && props.onDeleteButtonClick) ? (
<CloseButton
className={styles.deleteButton}
size={CloseButton.SIZE_SMALL}
......@@ -38,24 +38,28 @@ const SpriteSelectorItem = props => (
/>
) : null}
<div className={styles.spriteName}>{props.name}</div>
<ContextMenu id={`${props.name}-${contextMenuId++}`}>
{props.onDuplicateButtonClick ? (
<MenuItem onClick={props.onDuplicateButtonClick}>
<FormattedMessage
defaultMessage="duplicate"
description="Menu item to duplicate in the right click menu"
id="gui.spriteSelectorItem.contextMenuDuplicate"
/>
</MenuItem>
) : null}
<MenuItem onClick={props.onDeleteButtonClick}>
<FormattedMessage
defaultMessage="delete"
description="Menu item to delete in the right click menu"
id="gui.spriteSelectorItem.contextMenuDelete"
/>
</MenuItem>
</ContextMenu>
{props.onDuplicateButtonClick || props.onDeleteButtonClick ? (
<ContextMenu id={`${props.name}-${contextMenuId++}`}>
{props.onDuplicateButtonClick ? (
<MenuItem onClick={props.onDuplicateButtonClick}>
<FormattedMessage
defaultMessage="duplicate"
description="Menu item to duplicate in the right click menu"
id="gui.spriteSelectorItem.contextMenuDuplicate"
/>
</MenuItem>
) : null}
{props.onDeleteButtonClick ? (
<MenuItem onClick={props.onDeleteButtonClick}>
<FormattedMessage
defaultMessage="delete"
description="Menu item to delete in the right click menu"
id="gui.spriteSelectorItem.contextMenuDelete"
/>
</MenuItem>
) : null }
</ContextMenu>
) : null}
</ContextMenuTrigger>
);
......@@ -64,7 +68,7 @@ SpriteSelectorItem.propTypes = {
costumeURL: PropTypes.string,
name: PropTypes.string.isRequired,
onClick: PropTypes.func,
onDeleteButtonClick: PropTypes.func.isRequired,
onDeleteButtonClick: PropTypes.func,
onDuplicateButtonClick: PropTypes.func,
selected: PropTypes.bool.isRequired
};
......
......@@ -109,7 +109,7 @@ class CostumeTab extends React.Component {
}]}
items={target.costumes || []}
selectedItemIndex={this.state.selectedCostumeIndex}
onDeleteClick={this.handleDeleteCostume}
onDeleteClick={target.costumes.length > 1 ? this.handleDeleteCostume : null}
onItemClick={this.handleSelectCostume}
>
{target.costumes ?
......
......@@ -20,6 +20,7 @@ class SpriteSelectorItem extends React.Component {
this.props.onClick(this.props.id);
}
handleDelete () {
// @todo add i18n here
// eslint-disable-next-line no-alert
if (window.confirm('Are you sure you want to delete this sprite?')) {
this.props.onDeleteButtonClick(this.props.id);
......@@ -43,7 +44,7 @@ class SpriteSelectorItem extends React.Component {
return (
<SpriteSelectorItemComponent
onClick={this.handleClick}
onDeleteButtonClick={this.handleDelete}
onDeleteButtonClick={onDeleteButtonClick ? this.handleDelete : null}
onDuplicateButtonClick={onDuplicateButtonClick ? this.handleDuplicate : null}
{...props}
/>
......@@ -57,7 +58,7 @@ SpriteSelectorItem.propTypes = {
id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
name: PropTypes.string,
onClick: PropTypes.func,
onDeleteButtonClick: PropTypes.func.isRequired,
onDeleteButtonClick: PropTypes.func,
onDuplicateButtonClick: PropTypes.func,
selected: PropTypes.bool
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment