
We also fully set up i18n and put it on util as well as making it available on windows.i18n for Backbone views.
83 lines
2.0 KiB
TypeScript
83 lines
2.0 KiB
TypeScript
import qs from 'qs';
|
|
import moment from 'moment';
|
|
|
|
// Helper components used in the styleguide, exposed at 'util' in the global scope via the
|
|
// context option in react-styleguidist.
|
|
|
|
export { MessageParents } from './MessageParents';
|
|
export { BackboneWrapper } from './BackboneWrapper';
|
|
|
|
// Here we can make things inside Webpack available to Backbone views like preload.js.
|
|
|
|
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
|
|
import { Message } from '../conversation/Message';
|
|
import { Reply } from '../conversation/Reply';
|
|
|
|
|
|
// TypeScript wants two things when you import:
|
|
// 1) a normal typescript file
|
|
// 2) a javascript file with type definiitions
|
|
// Anything else will raise an error, that it can't find the module. And so, we ignore...
|
|
|
|
// @ts-ignore
|
|
import gif from '../../../fixtures/giphy-GVNvOUpeYmI7e.gif';
|
|
// @ts-ignore
|
|
import mp3 from '../../../fixtures/incompetech-com-Agnus-Dei-X.mp3';
|
|
// @ts-ignore
|
|
import txt from '../../../fixtures/lorem-ipsum.txt';
|
|
// @ts-ignore
|
|
import mp4 from '../../../fixtures/pixabay-Soap-Bubble-7141.mp4';
|
|
|
|
export {
|
|
mp3,
|
|
gif,
|
|
mp4,
|
|
txt,
|
|
};
|
|
|
|
|
|
// Required, or TypeScript complains about adding keys to window
|
|
const parent = window as any;
|
|
|
|
const query = window.location.search.replace(/^\?/, '');
|
|
const urlOptions = qs.parse(query);
|
|
const theme = urlOptions.theme || 'android';
|
|
const locale = urlOptions.locale || 'en';
|
|
|
|
// @ts-ignore
|
|
import localeMessages from '../../../_locales/en/messages.json';
|
|
|
|
// @ts-ignore
|
|
import { setup } from '../../i18n';
|
|
|
|
const i18n = setup(locale, localeMessages);
|
|
|
|
export {
|
|
theme,
|
|
locale,
|
|
i18n,
|
|
};
|
|
|
|
|
|
parent.i18n = i18n;
|
|
parent.moment = moment;
|
|
|
|
parent.moment.updateLocale(locale, {
|
|
relativeTime: {
|
|
h: parent.i18n('timestamp_h'),
|
|
m: parent.i18n('timestamp_m'),
|
|
s: parent.i18n('timestamp_s'),
|
|
},
|
|
});
|
|
parent.moment.locale(locale);
|
|
|
|
parent.React = React;
|
|
parent.ReactDOM = ReactDOM;
|
|
|
|
const SignalReact = parent.Signal.React = parent.Signal.React || {};
|
|
|
|
SignalReact.Message = Message;
|
|
SignalReact.Reply = Reply;
|