mirror of
https://github.com/status-im/metro.git
synced 2025-02-10 10:07:12 +00:00
74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
|
/**
|
||
|
* Copyright (c) 2017-present, Facebook, Inc.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*/
|
||
|
|
||
|
/* eslint-disable module-strict */
|
||
|
|
||
|
(function() {
|
||
|
"use strict";
|
||
|
// Not on browser
|
||
|
if (typeof document === "undefined") {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
document.addEventListener("DOMContentLoaded", init);
|
||
|
|
||
|
function init() {
|
||
|
var mobile = isMobile();
|
||
|
|
||
|
if (mobile) {
|
||
|
document
|
||
|
.querySelector(".nav-site-wrapper a[data-target]")
|
||
|
.addEventListener("click", toggleTarget);
|
||
|
}
|
||
|
|
||
|
var webPlayerList = document.querySelectorAll(".web-player");
|
||
|
// Either show interactive or static code block, depending on desktop or mobile
|
||
|
for (var i = 0; i < webPlayerList.length; ++i) {
|
||
|
webPlayerList[i].classList.add(mobile ? "mobile" : "desktop");
|
||
|
|
||
|
if (!mobile) {
|
||
|
// Determine location to look up required assets
|
||
|
var assetRoot = encodeURIComponent(
|
||
|
document.location.origin + "/react-native"
|
||
|
);
|
||
|
|
||
|
// Set iframe src. Do this dynamically so the iframe never loads on mobile.
|
||
|
var iframe = webPlayerList[i].querySelector("iframe");
|
||
|
iframe.src =
|
||
|
iframe.getAttribute("data-src") + "&assetRoot=" + assetRoot;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var snackPlayerList = document.querySelectorAll(".snack-player");
|
||
|
|
||
|
// Either show interactive or static code block, depending on desktop or mobile
|
||
|
for (var i = 0; i < snackPlayerList.length; ++i) {
|
||
|
var snackPlayer = snackPlayerList[i];
|
||
|
var snackDesktopPlayer = snackPlayer.querySelectorAll(
|
||
|
".desktop-friendly-snack"
|
||
|
)[0];
|
||
|
var plainCodeExample = snackPlayer.querySelectorAll(
|
||
|
".mobile-friendly-snack"
|
||
|
)[0];
|
||
|
|
||
|
if (mobile) {
|
||
|
snackDesktopPlayer.remove();
|
||
|
plainCodeExample.style.display = "block";
|
||
|
} else {
|
||
|
plainCodeExample.remove();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Primitive mobile detection
|
||
|
function isMobile() {
|
||
|
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
||
|
navigator.userAgent
|
||
|
);
|
||
|
}
|
||
|
})();
|