mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-21 01:41:31 +00:00
Added support for self serve telemetry + Localization fixes (#580)
* initial telemetry commit * Added localization changes * moved telemetrymessage types to selfservetypes * fixed compile errors * fixed failing test * changed translation file format * Addressed PR comments * modified test
This commit is contained in:
committed by
GitHub
parent
63e13cdabe
commit
6cdac3c53b
@@ -2,10 +2,12 @@ import { Spinner, SpinnerSize } from "office-ui-fabric-react";
|
||||
import { initializeIcons } from "office-ui-fabric-react/lib/Icons";
|
||||
import * as React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { normalizeArmEndpoint } from "../Common/EnvironmentUtility";
|
||||
import { sendReadyMessage } from "../Common/MessageHandler";
|
||||
import { configContext, updateConfigContext } from "../ConfigContext";
|
||||
import { SelfServeFrameInputs } from "../Contracts/ViewModels";
|
||||
import i18n from "../i18n";
|
||||
import { updateUserContext } from "../UserContext";
|
||||
import { isInvalidParentFrameOrigin } from "../Utils/MessageValidation";
|
||||
import "./SelfServe.less";
|
||||
@@ -14,14 +16,35 @@ import { SelfServeDescriptor } from "./SelfServeTypes";
|
||||
import { SelfServeType } from "./SelfServeUtils";
|
||||
initializeIcons();
|
||||
|
||||
const loadTranslationFile = async (className: string): Promise<void> => {
|
||||
const language = i18n.languages[0];
|
||||
const fileName = `${className}.json`;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let translations: any;
|
||||
try {
|
||||
translations = await import(`../Localization/${language}/${fileName}`);
|
||||
} catch (e) {
|
||||
translations = await import(`../Localization/en/${fileName}`);
|
||||
}
|
||||
i18n.addResourceBundle(language, className, translations.default, true);
|
||||
};
|
||||
|
||||
const loadTranslations = async (className: string): Promise<void> => {
|
||||
await loadTranslationFile("Common");
|
||||
await loadTranslationFile(className);
|
||||
};
|
||||
|
||||
const getDescriptor = async (selfServeType: SelfServeType): Promise<SelfServeDescriptor> => {
|
||||
switch (selfServeType) {
|
||||
case SelfServeType.example: {
|
||||
const SelfServeExample = await import(/* webpackChunkName: "SelfServeExample" */ "./Example/SelfServeExample");
|
||||
await loadTranslations(SelfServeExample.default.name);
|
||||
return new SelfServeExample.default().toSelfServeDescriptor();
|
||||
}
|
||||
case SelfServeType.sqlx: {
|
||||
const SqlX = await import(/* webpackChunkName: "SqlX" */ "./SqlX/SqlX");
|
||||
await loadTranslations(SqlX.default.name);
|
||||
return new SqlX.default().toSelfServeDescriptor();
|
||||
}
|
||||
default:
|
||||
@@ -33,7 +56,8 @@ const renderComponent = (selfServeDescriptor: SelfServeDescriptor): JSX.Element
|
||||
if (!selfServeDescriptor) {
|
||||
return <h1>Invalid self serve type!</h1>;
|
||||
}
|
||||
return <SelfServeComponent descriptor={selfServeDescriptor} />;
|
||||
const SelfServeComponentTranslated = withTranslation()(SelfServeComponent);
|
||||
return <SelfServeComponentTranslated descriptor={selfServeDescriptor} />;
|
||||
};
|
||||
|
||||
const renderSpinner = (): JSX.Element => {
|
||||
|
||||
Reference in New Issue
Block a user