2018-04-05 15:31:43 +00:00
|
|
|
import moment from 'moment';
|
2018-04-05 15:37:04 +00:00
|
|
|
import qs from 'qs';
|
|
|
|
|
|
|
|
import React from 'react';
|
|
|
|
import ReactDOM from 'react-dom';
|
|
|
|
|
2018-04-05 15:31:43 +00:00
|
|
|
|
2018-04-05 22:30:40 +00:00
|
|
|
// Helper components used in the Style Guide, exposed at 'util' in the global scope via
|
|
|
|
// the 'context' option in react-styleguidist.
|
2018-04-03 22:56:12 +00:00
|
|
|
|
2018-04-05 19:41:48 +00:00
|
|
|
export { ConversationContext } from './ConversationContext';
|
2018-04-05 22:30:40 +00:00
|
|
|
export { BackboneWrapper } from '../components/utility/BackboneWrapper';
|
2018-04-03 22:56:12 +00:00
|
|
|
|
|
|
|
// Here we can make things inside Webpack available to Backbone views like preload.js.
|
|
|
|
|
2018-04-05 22:30:40 +00:00
|
|
|
import { Message } from '../components/conversation/Message';
|
|
|
|
import { Reply } from '../components/conversation/Reply';
|
2018-04-03 22:56:12 +00:00
|
|
|
|
2018-04-05 15:30:30 +00:00
|
|
|
|
|
|
|
// TypeScript wants two things when you import:
|
|
|
|
// 1) a normal typescript file
|
2018-04-05 19:39:34 +00:00
|
|
|
// 2) a javascript file with type definitions
|
2018-04-05 15:30:30 +00:00
|
|
|
// Anything else will raise an error, that it can't find the module. And so, we ignore...
|
|
|
|
|
|
|
|
// @ts-ignore
|
2018-04-05 22:30:40 +00:00
|
|
|
import gif from '../../fixtures/giphy-GVNvOUpeYmI7e.gif';
|
2018-04-05 15:30:30 +00:00
|
|
|
// @ts-ignore
|
2018-04-05 22:30:40 +00:00
|
|
|
import mp3 from '../../fixtures/incompetech-com-Agnus-Dei-X.mp3';
|
2018-04-05 15:30:30 +00:00
|
|
|
// @ts-ignore
|
2018-04-05 22:30:40 +00:00
|
|
|
import txt from '../../fixtures/lorem-ipsum.txt';
|
2018-04-05 15:30:30 +00:00
|
|
|
// @ts-ignore
|
2018-04-05 22:30:40 +00:00
|
|
|
import mp4 from '../../fixtures/pixabay-Soap-Bubble-7141.mp4';
|
2018-04-05 15:30:30 +00:00
|
|
|
|
|
|
|
export {
|
|
|
|
mp3,
|
|
|
|
gif,
|
|
|
|
mp4,
|
|
|
|
txt,
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2018-04-03 22:56:12 +00:00
|
|
|
// Required, or TypeScript complains about adding keys to window
|
|
|
|
const parent = window as any;
|
|
|
|
|
2018-04-05 15:31:43 +00:00
|
|
|
const query = window.location.search.replace(/^\?/, '');
|
|
|
|
const urlOptions = qs.parse(query);
|
|
|
|
const theme = urlOptions.theme || 'android';
|
|
|
|
const locale = urlOptions.locale || 'en';
|
|
|
|
|
|
|
|
// @ts-ignore
|
2018-04-05 22:30:40 +00:00
|
|
|
import localeMessages from '../../_locales/en/messages.json';
|
2018-04-05 15:31:43 +00:00
|
|
|
|
|
|
|
// @ts-ignore
|
2018-04-05 22:30:40 +00:00
|
|
|
import { setup } from '../../js/modules/i18n';
|
2018-04-05 15:31:43 +00:00
|
|
|
|
|
|
|
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);
|
|
|
|
|
2018-04-03 22:56:12 +00:00
|
|
|
parent.React = React;
|
|
|
|
parent.ReactDOM = ReactDOM;
|
|
|
|
|
2018-04-05 23:10:59 +00:00
|
|
|
const SignalComponents: any = parent.Signal.Components = {};
|
2018-04-03 22:56:12 +00:00
|
|
|
|
2018-04-05 23:10:59 +00:00
|
|
|
SignalComponents.Message = Message;
|
|
|
|
SignalComponents.Reply = Reply;
|