Files
polymer-starter-kit/app/elements/routing.html
Sam Saccone d86b86a48b Focus the page header on nav.
No longer focus the section which caused the header to jump. Note that
we are doing outline none here not to "hide" focus, rather to act
as a focus start for screen readers and tab navigation.

Fixes #717
2016-03-14 16:57:24 -07:00

84 lines
2.2 KiB
HTML

<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<script src="../bower_components/page/page.js"></script>
<script>
window.addEventListener('WebComponentsReady', function() {
// We use Page.js for routing. This is a Micro
// client-side router inspired by the Express router
// More info: https://visionmedia.github.io/page.js/
// Removes end / from app.baseUrl which page.base requires for production
if (window.location.port === '') { // if production
page.base(app.baseUrl.replace(/\/$/, ''));
}
// Middleware
function scrollToTop(ctx, next) {
app.scrollPageToTop();
next();
}
function closeDrawer(ctx, next) {
app.closeDrawer();
next();
}
function setFocus(selected){
document.querySelector('section[data-route="' + selected + '"] .page-title').focus();
}
// Routes
page('*', scrollToTop, closeDrawer, function(ctx, next) {
next();
});
page('/', function() {
app.route = 'home';
setFocus(app.route);
});
page(app.baseUrl, function() {
app.route = 'home';
setFocus(app.route);
});
page('/users', function() {
app.route = 'users';
setFocus(app.route);
});
page('/users/:name', function(data) {
app.route = 'user-info';
app.params = data.params;
setFocus(app.route);
});
page('/contact', function() {
app.route = 'contact';
setFocus(app.route);
});
// 404
page('*', function() {
app.$.toast.text = 'Can\'t find: ' + window.location.href + '. Redirected you to Home Page';
app.$.toast.show();
page.redirect(app.baseUrl);
});
// add #! before urls
page({
hashbang: true
});
});
</script>