mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-22 08:48:21 +00:00
Summary: ## Changes in this pull request Get this fix and make it ready for 4.0 release. ### Checklist - [ ] All tests pass. Demo project builds and runs. - [ ] I added tests, an experiment, or detailed why my change isn't tested. - [ ] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes. - [ ] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md) Pull Request resolved: https://github.com/Instagram/IGListKit/pull/1393 Reviewed By: iperry90 Differential Revision: D18618773 Pulled By: lorixx fbshipit-source-id: 0360c36d85dc5db15d7e08bdf68ec9c8be992499
59 lines
1.5 KiB
JavaScript
Executable file
59 lines
1.5 KiB
JavaScript
Executable file
window.jazzy = {'docset': false}
|
|
if (typeof window.dash != 'undefined') {
|
|
document.documentElement.className += ' dash'
|
|
window.jazzy.docset = true
|
|
}
|
|
if (navigator.userAgent.match(/xcode/i)) {
|
|
document.documentElement.className += ' xcode'
|
|
window.jazzy.docset = true
|
|
}
|
|
|
|
function toggleItem($link, $content) {
|
|
var animationDuration = 300;
|
|
$link.toggleClass('token-open');
|
|
$content.slideToggle(animationDuration);
|
|
}
|
|
|
|
function itemLinkToContent($link) {
|
|
return $link.parent().parent().next();
|
|
}
|
|
|
|
// On doc load + hash-change, open any targetted item
|
|
function openCurrentItemIfClosed() {
|
|
if (window.jazzy.docset) {
|
|
return;
|
|
}
|
|
var $link = $(`.token[href="${location.hash}"]`);
|
|
$content = itemLinkToContent($link);
|
|
if ($content.is(':hidden')) {
|
|
toggleItem($link, $content);
|
|
}
|
|
}
|
|
|
|
$(openCurrentItemIfClosed);
|
|
$(window).on('hashchange', openCurrentItemIfClosed);
|
|
|
|
// On item link ('token') click, toggle its discussion
|
|
$('.token').on('click', function(event) {
|
|
if (window.jazzy.docset) {
|
|
return;
|
|
}
|
|
var $link = $(this);
|
|
toggleItem($link, itemLinkToContent($link));
|
|
|
|
// Keeps the document from jumping to the hash.
|
|
var href = $link.attr('href');
|
|
if (history.pushState) {
|
|
history.pushState({}, '', href);
|
|
} else {
|
|
location.hash = href;
|
|
}
|
|
event.preventDefault();
|
|
});
|
|
|
|
// Clicks on links to the current, closed, item need to open the item
|
|
$("a:not('.token')").on('click', function() {
|
|
if (location == this.href) {
|
|
openCurrentItemIfClosed();
|
|
}
|
|
});
|