docbrown/app/assets/javascripts/initializers/initializeTouchDevice.js
Ali Spittel 52c60ce37e Feature/refactored onboarding (#3333)
* set up refactored onboarding

* create onboarding page

* add in first slide and change slide functionality

* fix test suite

* profile refactor

* profile refactor

* refactor to api

* add checkbox fields

* add checkbox fields

* remove puts

* add basic css

* add styling

* add redirect

* hide back and next at first and last slides

* test refactored onboarding

* test refactored onboarding

* remove article edits

* Fix schema

* Add deleted file back in

* Add default value for checked_t&c column

* Adjust HTML structure to keep nav buttons in place

* Fix ESLint issues on Onboarding.jsx file

* Handling for undefined or empty followedTags on getUserTags

* Fix codeclimate issues

* Fix codeclimate issues

* Fix more codeclimate issues

* Fix more codeclimate issues

* Update Onboarding snapshots

* Uncheck the CoC and T&C checkboxes on render

* Update snapshots

* Return false instead of raising error

* Update spec to use new onboarding

* Redirect to onboarding if haven't seen it yet

* Prevent redirect to onboarding from /signout_confirm

* Use assign_attributes instead of saving twice

* Move COC and T&C checkbox page to second slide

* Add 'go back to original page' functionality

* Reuse ready prototype logic

* Keep track of the last visited onboarding page

* Fix email subscription bug

* Fix overflow issue for tags page

* Remove height to prevent page container scrolling

* Check for CoC and T&C for displaying onboarding

* Add InstantClick redirect and preserve referrer in client

* Fix async update + check by using localStorage

* Turn off onboarding for tests

* Finalize design for onboarding

* Finalize design for onboarding

* Make bulk follows during onboarding

* Fix bulk follow test
2019-07-26 15:53:32 -04:00

65 lines
2.2 KiB
JavaScript

function initializeTouchDevice() {
var isTouchDevice = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|DEV-Native-ios/i.test(
navigator.userAgent,
);
if (navigator.userAgent === 'DEV-Native-ios') {
document
.getElementsByTagName('body')[0]
.classList.add('dev-ios-native-body');
}
setTimeout(function() {
removeShowingMenu();
if (isTouchDevice) {
document.getElementById('navigation-butt').onclick = function(e) {
document
.getElementById('navbar-menu-wrapper')
.classList.toggle('showing');
};
} else {
document.getElementById('navbar-menu-wrapper').classList.add('desktop');
document.getElementById('navigation-butt').onfocus = function(e) {
document.getElementById('navbar-menu-wrapper').classList.add('showing');
};
document.getElementById('last-nav-link').onblur = function(e) {
setTimeout(function() {
console.log(document.activeElement);
if (
document.activeElement !=
document.getElementById('second-last-nav-link')
) {
document
.getElementById('navbar-menu-wrapper')
.classList.remove('showing');
}
}, 10);
};
document.getElementById('navigation-butt').onblur = function(e) {
setTimeout(function() {
console.log(document.activeElement);
if (
document.activeElement != document.getElementById('first-nav-link')
) {
document
.getElementById('navbar-menu-wrapper')
.classList.remove('showing');
}
}, 10);
};
}
document.getElementById('menubg').onclick = function(e) {
document
.getElementById('navbar-menu-wrapper')
.classList.remove('showing');
};
}, 10);
}
function removeShowingMenu() {
document.getElementById('navbar-menu-wrapper').classList.remove('showing');
setTimeout(function() {
document.getElementById('navbar-menu-wrapper').classList.remove('showing');
}, 5);
setTimeout(function() {
document.getElementById('navbar-menu-wrapper').classList.remove('showing');
}, 150);
}