44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
////////////////////////////////////////////////////////////////////////////////
|
|
///////////////// Preferred Client Library programming language ///////////////
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
import { activateTabs, updateBtnURLs } from './tabbed-content.js';
|
|
import { getPreference, setPreference } from './local-storage.js';
|
|
|
|
function getVisitedApiLib() {
|
|
const path = window.location.pathname.match(
|
|
/client-libraries\/((?:v[0-9]|flight)\/)?([a-zA-Z0-9]*)/
|
|
);
|
|
return path && path.length && path[2];
|
|
}
|
|
|
|
function isApiLib() {
|
|
return /\/client-libraries\//.test(window.location.pathname);
|
|
}
|
|
|
|
// Set the user's programming language (client library) preference.
|
|
function setApiLibPreference(preference) {
|
|
setPreference('api_lib', preference);
|
|
}
|
|
|
|
// Retrieve the user's programming language (client library) preference.
|
|
function getApiLibPreference() {
|
|
return getPreference('api_lib') || '';
|
|
}
|
|
|
|
function initialize() {
|
|
// When visiting a client library page, set the api_lib preference
|
|
if (isApiLib()) {
|
|
var selectedApiLib = getVisitedApiLib();
|
|
setPreference('api_lib', selectedApiLib);
|
|
}
|
|
|
|
// Activate code-tabs based on the cookie then override with query param.
|
|
const tab = getApiLibPreference();
|
|
['.tabs, .code-tabs'].forEach(
|
|
(selector) => activateTabs(selector, tab),
|
|
updateBtnURLs(tab)
|
|
);
|
|
}
|
|
|
|
export { initialize };
|