Blame main.js

Packit Service eebd6f
import "core-js/stable";
Packit Service eebd6f
// redux-saga uses generators, use regenerator-runtime/runtime to transform generators
Packit Service eebd6f
import "regenerator-runtime/runtime";
Packit Service eebd6f
Packit Service eebd6f
import "whatwg-fetch";
Packit Service eebd6f
Packit Service eebd6f
// Contains PF3 stylesheets and base for PF4
Packit Service eebd6f
import "./lib/patternfly/patternfly-cockpit.scss";
Packit Service eebd6f
Packit Service eebd6f
import React from "react";
Packit Service eebd6f
import ReactDOM from "react-dom";
Packit Service eebd6f
import { addLocaleData, IntlProvider } from "react-intl";
Packit Service eebd6f
import enLocaleData from "react-intl/locale-data/en";
Packit Service eebd6f
import FastClick from "fastclick";
Packit Service eebd6f
import { Provider } from "react-redux";
Packit Service eebd6f
import "@patternfly/patternfly/patternfly-addons.css";
Packit Service eebd6f
import "@patternfly/patternfly/layouts/Flex/flex.css";
Packit Service eebd6f
import "@patternfly/patternfly/utilities/Display/display.css";
Packit Service eebd6f
import "./public/custom.css";
Packit Service eebd6f
import "bootstrap";
Packit Service eebd6f
import cockpit from "cockpit";
Packit Service eebd6f
Packit Service eebd6f
import store from "./core/store";
Packit Service eebd6f
import router from "./core/router";
Packit Service eebd6f
import history from "./core/history";
Packit Service eebd6f
Packit Service eebd6f
// Intialize any necessary locale data, and load translated messages
Packit Service eebd6f
const translations = require("./build/translations.json");
Packit Service eebd6f
Packit Service eebd6f
const languages = [...new Set(Object.keys(translations).map((lang) => lang.split("_")[0]))];
Packit Service eebd6f
for (const lang of languages) {
Packit Service eebd6f
  const localData = require(`react-intl/locale-data/${lang}`); // eslint-disable-line import/no-dynamic-require
Packit Service eebd6f
  addLocaleData(localData);
Packit Service eebd6f
}
Packit Service eebd6f
// still need english
Packit Service eebd6f
addLocaleData(enLocaleData);
Packit Service eebd6f
Packit Service eebd6f
const routes = require("./routes.json");
Packit Service eebd6f
// Loaded with utils/routes-loader.js
Packit Service eebd6f
const container = document.getElementById("main");
Packit Service eebd6f
Packit Service eebd6f
const userLanguage = cockpit.language;
Packit Service eebd6f
Packit Service eebd6f
let messages;
Packit Service eebd6f
if (userLanguage in translations) {
Packit Service eebd6f
  messages = translations[userLanguage];
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
let localeLang = "en";
Packit Service eebd6f
if (userLanguage) {
Packit Service eebd6f
  localeLang = userLanguage.includes("_") ? userLanguage.replace("_", "-") : userLanguage;
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
function renderComponent(component) {
Packit Service eebd6f
  ReactDOM.render(
Packit Service eebd6f
    <Provider store={store}>
Packit Service eebd6f
      {messages !== undefined ? (
Packit Service eebd6f
        <IntlProvider locale={localeLang} messages={messages}>
Packit Service eebd6f
          {component}
Packit Service eebd6f
        </IntlProvider>
Packit Service eebd6f
      ) : (
Packit Service eebd6f
        <IntlProvider locale="en">{component}</IntlProvider>
Packit Service eebd6f
      )}
Packit Service eebd6f
    </Provider>,
Packit Service eebd6f
    container
Packit Service eebd6f
  );
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
// Find and render a web page matching the current URL path,
Packit Service eebd6f
// if such page is not found then render an error page (see routes.json, core/router.js)
Packit Service eebd6f
function render(location) {
Packit Service eebd6f
  router
Packit Service eebd6f
    .resolve(routes, location)
Packit Service eebd6f
    .then(renderComponent)
Packit Service eebd6f
    .catch((error) => router.resolve(routes, { ...location, error }).then(renderComponent));
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
// Handle client-side navigation by using HTML5 History API
Packit Service eebd6f
// For more information visit https://github.com/ReactJSTraining/history/tree/master/docs#readme
Packit Service eebd6f
history.listen(render);
Packit Service eebd6f
render(history.getCurrentLocation());
Packit Service eebd6f
Packit Service eebd6f
// Eliminates the 300ms delay between a physical tap
Packit Service eebd6f
// and the firing of a click event on mobile browsers
Packit Service eebd6f
// https://github.com/ftlabs/fastclick
Packit Service eebd6f
FastClick.attach(document.body);