* 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
65 lines
2.2 KiB
JavaScript
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);
|
|
}
|