signal-desktop/ts/styleguide/StyleGuideUtil.ts
Ken Powers 29de50c12a Stickers
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-16 16:10:37 -07:00

144 lines
4.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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,
};