Double tapping

This commit is contained in:
James Barnsley
2017-12-06 17:02:11 +13:00
parent 6d28eacd65
commit ef99935e0a
2 changed files with 41 additions and 15 deletions

View File

@ -19,6 +19,7 @@ export default class Track extends React.Component{
hover: false
}
this.last_touchstart = 0;
this.start_position = false
}
@ -108,37 +109,56 @@ export default class Track extends React.Component{
handleDoubleClick(e){
console.log("handleDoubleClick");
var target = $(e.target);
this.props.handleDoubleClick(e);
}
handleTouchStart(e){
console.log("handleTouchStart");
e.preventDefault();
var target = $(e.target);
var timestamp = Math.floor(Date.now());
// Clicked a nested link (ie Artist name), so no touch intervention required
if (target.is('a')){
console.log('a');
return false;
// We started a touchstart within 300ms ago, so handle as double-tap
} else if ((timestamp - this.last_touchstart) > 0 && (timestamp - this.last_touchstart) <= 300){
e.preventDefault();
this.props.handleSelection(e);
this.props.handleDoubleClick(e);
// Touch-drag zone
if (target.hasClass('drag-zone')){
} else if (target.hasClass('drag-zone')){
e.preventDefault();
this.props.handleTouchDrag(e);
// Select zone
} else if (target.hasClass('select-zone')){
e.preventDefault();
this.props.handleSelection(e);
// Clicked a nested link (ie Artist name), so no dragging required
} else if (target.is('a')){
return false;
// Touch contextable
} else if (target.hasClass('touch-contextable')){
e.preventDefault();
this.props.handleContextMenu(e);
}
// Save our last tap
this.last_touchstart = timestamp;
return false;
}
handleTouchEnd(e){
console.log("handleTouchEnd");
e.preventDefault();
var target = $(e.target);
var timestamp = Math.floor(Date.now());
// Clicked a nested link (ie Artist name), so no dragging required
if (!target.is('a')){
e.preventDefault();
}
}
handleContextMenu(e){

View File

@ -177,8 +177,10 @@ class TrackList extends React.Component{
}
handleDoubleClick(e,track_key){
if (this.props.context_menu) this.props.uiActions.hideContextMenu()
this.playTracks()
if (this.props.context_menu){
this.props.uiActions.hideContextMenu();
}
this.playTracks();
}
handleContextMenu(e,track_key = null){
@ -263,17 +265,21 @@ class TrackList extends React.Component{
}
playTracks(){
let selected_tracks = this.digestTracksKeys()
let selected_tracks_indexes = helpers.arrayOf('index',selected_tracks)
let selected_tracks = this.digestTracksKeys();
let selected_tracks_indexes = helpers.arrayOf('index',selected_tracks);
if (selected_tracks.length <= 0){
return this.props.uiActions.createNotification('No tracks selected', 'bad');
}
// Our parent handles playing
if (this.props.playTracks !== undefined){
return this.props.playTracks(selected_tracks)
return this.props.playTracks(selected_tracks);
// Default to playing the URIs
} else {
let selected_tracks_uris = helpers.arrayOf('uri',selected_tracks)
return this.props.mopidyActions.playURIs(selected_tracks_uris, this.props.uri)
let selected_tracks_uris = helpers.arrayOf('uri',selected_tracks);
return this.props.mopidyActions.playURIs(selected_tracks_uris, this.props.uri);
}
}