29de50c12a
Co-authored-by: scott@signal.org Co-authored-by: ken@signal.org
144 lines
4.3 KiB
TypeScript
144 lines
4.3 KiB
TypeScript
import QueryString from 'qs';
|
||
import classNames from 'classnames';
|
||
|
||
// This file provides helpers for the Style Guide, exposed at 'util' in the global scope
|
||
// via the 'context' option in react-styleguidist.
|
||
|
||
import { default as _ } from 'lodash';
|
||
export { ConversationContext } from './ConversationContext';
|
||
export { LeftPaneContext } from './LeftPaneContext';
|
||
|
||
export { _, classNames };
|
||
|
||
// TypeScript wants two things when you import:
|
||
// 1) a normal typescript file
|
||
// 2) a javascript file with type definitions
|
||
// 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';
|
||
// 320x240
|
||
const gifObjectUrl = makeObjectUrl(gif, 'image/gif');
|
||
// @ts-ignore
|
||
import mp3 from '../../fixtures/incompetech-com-Agnus-Dei-X.mp3';
|
||
const mp3ObjectUrl = makeObjectUrl(mp3, 'audio/mp3');
|
||
// @ts-ignore
|
||
import txt from '../../fixtures/lorem-ipsum.txt';
|
||
const txtObjectUrl = makeObjectUrl(txt, 'text/plain');
|
||
// @ts-ignore
|
||
import mp4 from '../../fixtures/pixabay-Soap-Bubble-7141.mp4';
|
||
const mp4ObjectUrl = makeObjectUrl(mp4, 'video/mp4');
|
||
// @ts-ignore
|
||
import mp4v2 from '../../fixtures/ghost-kitty.mp4';
|
||
const mp4ObjectUrlV2 = makeObjectUrl(mp4v2, 'video/mp4');
|
||
// @ts-ignore
|
||
import png from '../../fixtures/freepngs-2cd43b_bed7d1327e88454487397574d87b64dc_mv2.png';
|
||
// 800×1200
|
||
const pngObjectUrl = makeObjectUrl(png, 'image/png');
|
||
|
||
// @ts-ignore
|
||
import landscape from '../../fixtures/koushik-chowdavarapu-105425-unsplash.jpg';
|
||
// 800×1200
|
||
const landscapeObjectUrl = makeObjectUrl(landscape, 'image/png');
|
||
|
||
// @ts-ignore
|
||
import squareSticker from '../../fixtures/512x515-thumbs-up-lincoln.webp';
|
||
const squareStickerObjectUrl = makeObjectUrl(squareSticker, 'image/webp');
|
||
|
||
// @ts-ignore
|
||
import landscapeGreen from '../../fixtures/1000x50-green.jpeg';
|
||
const landscapeGreenObjectUrl = makeObjectUrl(landscapeGreen, 'image/jpeg');
|
||
// @ts-ignore
|
||
import landscapePurple from '../../fixtures/200x50-purple.png';
|
||
const landscapePurpleObjectUrl = makeObjectUrl(landscapePurple, 'image/png');
|
||
// @ts-ignore
|
||
import portraitYellow from '../../fixtures/20x200-yellow.png';
|
||
const portraitYellowObjectUrl = makeObjectUrl(portraitYellow, 'image/png');
|
||
// @ts-ignore
|
||
import landscapeRed from '../../fixtures/300x1-red.jpeg';
|
||
const landscapeRedObjectUrl = makeObjectUrl(landscapeRed, 'image/png');
|
||
// @ts-ignore
|
||
import portraitTeal from '../../fixtures/50x1000-teal.jpeg';
|
||
const portraitTealObjectUrl = makeObjectUrl(portraitTeal, 'image/png');
|
||
|
||
// @ts-ignore
|
||
import kitten164 from '../../fixtures/kitten-1-64-64.jpg';
|
||
const kitten164ObjectUrl = makeObjectUrl(kitten164, 'image/jpeg');
|
||
// @ts-ignore
|
||
import kitten264 from '../../fixtures/kitten-2-64-64.jpg';
|
||
const kitten264ObjectUrl = makeObjectUrl(kitten264, 'image/jpeg');
|
||
// @ts-ignore
|
||
import kitten364 from '../../fixtures/kitten-3-64-64.jpg';
|
||
const kitten364ObjectUrl = makeObjectUrl(kitten364, 'image/jpeg');
|
||
|
||
function makeObjectUrl(data: ArrayBuffer, contentType: string): string {
|
||
const blob = new Blob([data], {
|
||
type: contentType,
|
||
});
|
||
|
||
return URL.createObjectURL(blob);
|
||
}
|
||
|
||
export {
|
||
kitten164,
|
||
kitten164ObjectUrl,
|
||
kitten264,
|
||
kitten264ObjectUrl,
|
||
kitten364,
|
||
kitten364ObjectUrl,
|
||
mp3,
|
||
mp3ObjectUrl,
|
||
gif,
|
||
gifObjectUrl,
|
||
mp4,
|
||
mp4ObjectUrl,
|
||
mp4v2,
|
||
mp4ObjectUrlV2,
|
||
png,
|
||
pngObjectUrl,
|
||
squareSticker,
|
||
squareStickerObjectUrl,
|
||
txt,
|
||
txtObjectUrl,
|
||
landscape,
|
||
landscapeObjectUrl,
|
||
landscapeGreen,
|
||
landscapeGreenObjectUrl,
|
||
landscapePurple,
|
||
landscapePurpleObjectUrl,
|
||
portraitYellow,
|
||
portraitYellowObjectUrl,
|
||
landscapeRed,
|
||
landscapeRedObjectUrl,
|
||
portraitTeal,
|
||
portraitTealObjectUrl,
|
||
};
|
||
|
||
const query = window.location.search.replace(/^\?/, '');
|
||
const urlOptions = QueryString.parse(query);
|
||
const theme = urlOptions.theme || 'light-theme';
|
||
const ios = urlOptions.ios || false;
|
||
const locale = urlOptions.locale || 'en';
|
||
|
||
// @ts-ignore
|
||
import localeMessages from '../../_locales/en/messages.json';
|
||
|
||
// @ts-ignore
|
||
import { setup } from '../../js/modules/i18n';
|
||
const i18n = setup(locale, localeMessages);
|
||
|
||
export { theme, ios, locale, i18n };
|
||
|
||
// Telling Lodash to relinquish _ for use by underscore
|
||
// @ts-ignore
|
||
_.noConflict();
|
||
|
||
// @ts-ignore
|
||
window.log = {
|
||
// tslint:disable-next-line no-console
|
||
info: console.log,
|
||
// tslint:disable-next-line no-console
|
||
error: console.error,
|
||
// tslint:disable-next-line no-console
|
||
warn: console.warn,
|
||
};
|