decentraland-ui
Version:
Decentraland's UI components and styles
463 lines (462 loc) • 34.2 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WithLockedRadius = exports.WithLockedBeta = exports.WithLockedAlpha = exports.WithoutPanning = exports.WithoutFadeEffect = exports.CustomPeerUrl = exports.DifferentProjections = exports.CameraFromTheTop = exports.CameraFromTheFront = exports.WithOffset = exports.EmoteThumbnailPicker = exports.PreviewFromAFile = exports.EmoteEvents = exports.WithSound = exports.WithEmoteControls = exports.WithZoomControls = exports.WithTranslationControls = exports.TakeScreenshotAndMetrics = exports.WithCustomBackgroundColor = exports.WithoutBackgroundOrTransparentBackground = exports.WithoutAutoRotation = exports.FromBase64 = exports.FromUrl = exports.WithHotReload = exports.UseAsHero = exports.UsingOnErrorCallback = exports.UsingOnLoadCallback = exports.UsingStaticCamera = exports.UsingAWearablePreviewProfileEmote = exports.UsingAProfileEmote = exports.UsingAProfile = exports.UsingCustomShape = exports.UsingCustomHair = exports.UsingCustomSkin = exports.PreviewATextureWearable = exports.PreviewATokenFromMumbai = exports.PreviewAToken = exports.PreviewAnItem = void 0;
var React = __importStar(require("react"));
var preview_1 = require("@dcl/schemas/dist/dapps/preview");
var item_1 = require("@dcl/schemas/dist/platform/item");
var schemas_1 = require("@dcl/schemas");
var Button_1 = require("../Button/Button");
var Navbar_1 = require("../Navbar/Navbar");
var Tabs_1 = require("../Tabs/Tabs");
var Page_1 = require("../Page/Page");
var Hero_1 = require("../Hero/Hero");
var Container_1 = require("../Container/Container");
var Header_1 = require("../Header/Header");
var Footer_1 = require("../Footer/Footer");
var Row_1 = require("../Row/Row");
var Radio_1 = require("../Radio/Radio");
var Center_1 = require("../Center/Center");
var SliderField_1 = require("../SliderField/SliderField");
var WearablePreview_1 = require("./WearablePreview");
var EmoteControls_1 = require("./EmoteControls");
var ZoomControls_1 = require("./ZoomControls");
var TranslationControls_1 = require("./TranslationControls");
require("./WearablePreview.stories.css");
var getRandomHex = function () {
return '#' + Math.random().toString(16).slice(2, 8);
};
var getRandomProfile = function () {
return 'default' + ((Math.random() * 50) | 0);
};
var RandomConfigProvider = function (props) {
var _a = React.useState(getRandomHex()), hair = _a[0], setHair = _a[1];
var _b = React.useState(getRandomHex()), skin = _b[0], setSkin = _b[1];
var _c = React.useState(getRandomProfile()), profile = _c[0], setProfile = _c[1];
React.useEffect(function () {
setInterval(function () {
setHair(getRandomHex());
setSkin(getRandomHex());
setProfile(getRandomProfile());
}, 5000);
}, []);
return props.children(hair, skin, profile);
};
function toWearableWithBlobs(file) {
return {
id: 'some-id',
name: '',
description: '',
image: '',
thumbnail: '',
i18n: [],
data: {
category: schemas_1.WearableCategory.HAT,
hides: [],
replaces: [],
tags: [],
representations: [
{
bodyShapes: [item_1.BodyShape.MALE, item_1.BodyShape.FEMALE],
mainFile: 'model.glb',
contents: [
{
key: 'model.glb',
blob: file
}
],
overrideHides: [],
overrideReplaces: []
}
]
}
};
}
function toEmoteWithBlobs(file) {
return {
id: 'some-id',
name: '',
description: '',
image: '',
thumbnail: '',
i18n: [],
emoteDataADR74: {
category: item_1.EmoteCategory.DANCE,
tags: [],
representations: [
{
bodyShapes: [item_1.BodyShape.MALE, item_1.BodyShape.FEMALE],
mainFile: 'model.glb',
contents: [
{
key: 'model.glb',
blob: file
}
]
}
],
loop: false
}
};
}
exports.default = {
title: 'WearablePreview',
component: WearablePreview_1.WearablePreview,
parameters: {
layout: 'fullscreen'
}
};
var PreviewAnItem = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xee8ae4c668edd43b34b98934d6d2ff82e41e6488", itemId: "5" }))); };
exports.PreviewAnItem = PreviewAnItem;
exports.PreviewAnItem.storyName = 'Preview an item';
var PreviewAToken = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xee8ae4c668edd43b34b98934d6d2ff82e41e6488", tokenId: "1" }))); };
exports.PreviewAToken = PreviewAToken;
exports.PreviewAToken.storyName = 'Preview a token';
var PreviewATokenFromMumbai = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xf88951ddd9ff334ae98901e26042edbb8f6d52e5", tokenId: "1", dev: true }))); };
exports.PreviewATokenFromMumbai = PreviewATokenFromMumbai;
exports.PreviewATokenFromMumbai.storyName = 'Preview a token from mumbai';
var PreviewATextureWearable = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xfeb52cbf71b9adac957c6f948a6cf9980ac8c907", tokenId: "3073" }))); };
exports.PreviewATextureWearable = PreviewATextureWearable;
exports.PreviewATextureWearable.storyName = 'Preview a texture wearable';
var UsingCustomSkin = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0x994684b980d6faff06ff36b13c243c31d1b3aa0e", itemId: "0", skin: "ff0000" }))); };
exports.UsingCustomSkin = UsingCustomSkin;
exports.UsingCustomSkin.storyName = 'Using custom skin';
var UsingCustomHair = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xe3d2c4ec777fb88dd219905cd896f79a592adf30", itemId: "0", hair: "00ff00" }))); };
exports.UsingCustomHair = UsingCustomHair;
exports.UsingCustomHair.storyName = 'Using custom hair';
var UsingCustomShape = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xe3d2c4ec777fb88dd219905cd896f79a592adf30", itemId: "0", hair: "00ff00", bodyShape: item_1.BodyShape.FEMALE }))); };
exports.UsingCustomShape = UsingCustomShape;
exports.UsingCustomShape.storyName = 'Using custom shape';
var UsingAProfile = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6" }))); };
exports.UsingAProfile = UsingAProfile;
exports.UsingAProfile.storyName = 'Using a profile';
var UsingAProfileEmote = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", emote: preview_1.PreviewEmote.FASHION }))); };
exports.UsingAProfileEmote = UsingAProfileEmote;
exports.UsingAProfileEmote.storyName = 'Using a profile + emote';
var UsingAWearablePreviewProfileEmote = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0x186c788f9c172934b790b868faf3b78b84e34e89", itemId: "0", profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", emote: preview_1.PreviewEmote.FASHION }))); };
exports.UsingAWearablePreviewProfileEmote = UsingAWearablePreviewProfileEmote;
exports.UsingAWearablePreviewProfileEmote.storyName =
'Using a wearable + profile + emote';
var UsingStaticCamera = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", camera: preview_1.PreviewCamera.STATIC }))); };
exports.UsingStaticCamera = UsingStaticCamera;
exports.UsingStaticCamera.storyName = 'Using static camera';
var UsingOnLoadCallback = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xee8ae4c668edd43b34b98934d6d2ff82e41e6488", itemId: "5", onLoad: function () { return console.log('loaded!'); } }))); };
exports.UsingOnLoadCallback = UsingOnLoadCallback;
exports.UsingOnLoadCallback.storyName = 'Using onLoad callback';
var UsingOnErrorCallback = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "invalidAddress", itemId: "invalidItem", onError: function (error) { return console.error(error.message); } }))); };
exports.UsingOnErrorCallback = UsingOnErrorCallback;
exports.UsingOnErrorCallback.storyName = 'Using onError callback';
var UseAsHero = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(Navbar_1.Navbar, { activePage: "marketplace" }),
React.createElement(Tabs_1.Tabs, { isFullscreen: true },
React.createElement(Tabs_1.Tabs.Tab, { active: true }, "Atlas"),
React.createElement(Tabs_1.Tabs.Tab, null, "Market"),
React.createElement(Tabs_1.Tabs.Tab, null, "My Assets")),
React.createElement(Page_1.Page, { isFullscreen: true },
React.createElement(Hero_1.Hero, { height: 420 },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xee8ae4c668edd43b34b98934d6d2ff82e41e6488", itemId: "5" })),
React.createElement(Container_1.Container, null,
React.createElement(Header_1.Header, null, "Hello Wolrd"),
React.createElement("p", null, "This page has a hero"))),
React.createElement(Footer_1.Footer, null))); };
exports.UseAsHero = UseAsHero;
exports.UseAsHero.storyName = 'Use as hero';
var WithHotReload = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(RandomConfigProvider, null, function (hair, skin, profile) { return (React.createElement(WearablePreview_1.WearablePreview, { profile: profile, hair: hair, skin: skin, onLoad: function () { return console.log('loaded!'); } })); }))); };
exports.WithHotReload = WithHotReload;
exports.WithHotReload.storyName = 'With hot reload';
var FromUrl = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { urls: [
'https://gist.githubusercontent.com/cazala/7e66253d2b86f018ee599cf9da007b81/raw/dfb411a0cff38d1b128efe4f7eca80fa2e04e84d/wearable.json'
] }))); };
exports.FromUrl = FromUrl;
exports.FromUrl.storyName = 'From URL';
var FromBase64 = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { base64s: [
'eyJpZCI6InVybjpkZWNlbnRyYWxhbmQ6bWF0aWM6Y29sbGVjdGlvbnMtdjI6MHhlNzkzODAxODI5ZTBlMGY5YWE1YmFmOTg3NzMyMDA1OWQ5ZjRhNjU0OjAiLCJuYW1lIjoiV2Fja3kgQWxpZW4gQnVja2V0IEhhdCIsImRlc2NyaXB0aW9uIjoiU2xpbXkgSGFpciBpcyBhIGZpeGVkIGNvbG91ci4uLiIsImNvbGxlY3Rpb25BZGRyZXNzIjoiMHhlNzkzODAxODI5ZTBlMGY5YWE1YmFmOTg3NzMyMDA1OWQ5ZjRhNjU0IiwicmFyaXR5IjoibGVnZW5kYXJ5IiwiaTE4biI6W3siY29kZSI6ImVuIiwidGV4dCI6IldhY2t5IEFsaWVuIEJ1Y2tldCBIYXQifV0sImRhdGEiOnsicmVwbGFjZXMiOltdLCJoaWRlcyI6WyJoYWlyIl0sInRhZ3MiOlsid2Fja3lhbGllbiIsIndhY2t5IiwiYWxpZW4iLCJidWNrZXRoYXQiLCJzbGltZSIsIjE2MjAiLCJqdWRhc2p1ZGFzIl0sImNhdGVnb3J5IjoiaGF0IiwicmVwcmVzZW50YXRpb25zIjpbeyJib2R5U2hhcGVzIjpbInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpCYXNlTWFsZSJdLCJtYWluRmlsZSI6Im1hbGUvZnJvZ2dseU1BTEVfYmFzZS5nbGIiLCJjb250ZW50cyI6W3sia2V5IjoibWFsZS9mcm9nZ2x5TUFMRV9iYXNlLmdsYiIsInVybCI6Imh0dHBzOi8vcGVlci1lYzEuZGVjZW50cmFsYW5kLm9yZy9jb250ZW50L2NvbnRlbnRzL1FtZUNxNzV2TE1EdGtYeWFXWTNKejc3RmdEQ2paaTNGSFQxWjVKbTR6VG9HcG0ifV0sIm92ZXJyaWRlSGlkZXMiOlsiaGFpciJdLCJvdmVycmlkZVJlcGxhY2VzIjpbXX0seyJib2R5U2hhcGVzIjpbInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpCYXNlRmVtYWxlIl0sIm1haW5GaWxlIjoiZmVtYWxlL2Zyb2dnbHlGRU1BTEVfYmFzZS5nbGIiLCJjb250ZW50cyI6W3sia2V5IjoiZmVtYWxlL2Zyb2dnbHlGRU1BTEVfYmFzZS5nbGIiLCJ1cmwiOiJodHRwczovL3BlZXItZWMxLmRlY2VudHJhbGFuZC5vcmcvY29udGVudC9jb250ZW50cy9RbVFGa0xHczUzMnhjZUZjb0NKYm5xWXExVlBzOGRleDVLMXdrWm8yQXhqajdZIn1dLCJvdmVycmlkZUhpZGVzIjpbImhhaXIiXSwib3ZlcnJpZGVSZXBsYWNlcyI6W119XX0sImltYWdlIjoiaHR0cHM6Ly9wZWVyLWVjMS5kZWNlbnRyYWxhbmQub3JnL2NvbnRlbnQvY29udGVudHMvUW1XUEczY0phVmMxaEVCa0tpZ2E2NWtVeGIzZ2g0cFp6RDN3Y0pWb1laR0VwQiIsInRodW1ibmFpbCI6Imh0dHBzOi8vcGVlci1lYzEuZGVjZW50cmFsYW5kLm9yZy9jb250ZW50L2NvbnRlbnRzL1FtWUY3OXZZNkNFamVyUlFEOU1Hd01WWTV0NWJlWjY5UjlEMmQ5U0tKRFNQNzUiLCJtZXRyaWNzIjp7InRyaWFuZ2xlcyI6MTQ4NywibWF0ZXJpYWxzIjoyLCJ0ZXh0dXJlcyI6MiwibWVzaGVzIjoyLCJib2RpZXMiOjIsImVudGl0aWVzIjoxfX0='
] }))); };
exports.FromBase64 = FromBase64;
exports.FromBase64.storyName = 'From base64';
var WithoutAutoRotation = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "default", disableAutoRotate: true }))); };
exports.WithoutAutoRotation = WithoutAutoRotation;
exports.WithoutAutoRotation.storyName = 'Without auto Rotation';
var WithoutBackgroundOrTransparentBackground = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "default", disableBackground: true }))); };
exports.WithoutBackgroundOrTransparentBackground = WithoutBackgroundOrTransparentBackground;
exports.WithoutBackgroundOrTransparentBackground.storyName =
'Without background or transparent background';
var WithCustomBackgroundColor = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "default", background: "ff0000" }))); };
exports.WithCustomBackgroundColor = WithCustomBackgroundColor;
exports.WithCustomBackgroundColor.storyName = 'With custom background color';
var TakeScreenshotAndMetrics = function () {
var _a = React.useState(''), screenshot = _a[0], setScreenshot = _a[1];
var _b = React.useState(null), metrics = _b[0], setMetrics = _b[1];
var ref = React.useRef(null);
var onLoad = React.useCallback(function () {
var _a;
ref.current = (_a = ref.current) !== null && _a !== void 0 ? _a : WearablePreview_1.WearablePreview.createController('some-id');
}, []);
return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { id: "some-id", contractAddress: "0x186c788f9c172934b790b868faf3b78b84e34e89", itemId: "0", disableAutoRotate: true, disableBackground: true, onLoad: onLoad }),
React.createElement(Row_1.Row, { className: "controls" },
React.createElement(Button_1.Button, { primary: true, onClick: function () {
return ref.current.scene.getScreenshot(1024, 1024).then(setScreenshot);
} }, "Screenshot"),
screenshot && React.createElement("img", { src: screenshot }),
React.createElement(Button_1.Button, { primary: true, onClick: function () { return ref.current.scene.getMetrics().then(setMetrics); } }, "Metrics"),
metrics && React.createElement("p", null, JSON.stringify(metrics)))));
};
exports.TakeScreenshotAndMetrics = TakeScreenshotAndMetrics;
exports.TakeScreenshotAndMetrics.storyName = 'Take screenshot and metrics';
var WithTranslationControls = function () {
var _a = React.useState(TranslationControls_1.VerticalPosition.LEFT), verticalPosition = _a[0], setVerticalPosition = _a[1];
var togglePosition = verticalPosition === TranslationControls_1.VerticalPosition.LEFT
? TranslationControls_1.VerticalPosition.RIGHT
: TranslationControls_1.VerticalPosition.LEFT;
return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { id: "some-id", profile: "default", emote: preview_1.PreviewEmote.DANCE, disableBackground: true, disableAutoRotate: true, disableFace: true, disableDefaultWearables: true, skin: "000000" }),
React.createElement(TranslationControls_1.TranslationControls, { vertical: true, verticalPosition: verticalPosition, wearablePreviewId: "some-id" }),
React.createElement(Row_1.Row, { className: "controls" },
React.createElement(Radio_1.Radio, { toggle: true, checked: verticalPosition === TranslationControls_1.VerticalPosition.LEFT, label: "".concat(verticalPosition, " side"), onClick: function () { return setVerticalPosition(togglePosition); }, style: { textTransform: 'capitalize' } }))));
};
exports.WithTranslationControls = WithTranslationControls;
exports.WithTranslationControls.storyName = 'With translation controls';
var WithZoomControls = function () {
return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { id: "some-id", profile: "default", emote: preview_1.PreviewEmote.DANCE, disableBackground: true, disableAutoRotate: true, disableFace: true, disableDefaultWearables: true, skin: "000000", zoom: 100, wheelZoom: 2 }),
React.createElement(ZoomControls_1.ZoomControls, { wearablePreviewId: "some-id" })));
};
exports.WithZoomControls = WithZoomControls;
exports.WithZoomControls.storyName = 'With zoom controls';
var WithEmoteControls = function () {
return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { id: "some-id", profile: "default", emote: preview_1.PreviewEmote.DANCE, disableBackground: true, disableAutoRotate: true, disableFace: true, disableDefaultWearables: true, skin: "000000" }),
React.createElement(EmoteControls_1.EmoteControls, { wearablePreviewId: "some-id" })));
};
exports.WithEmoteControls = WithEmoteControls;
exports.WithEmoteControls.storyName = 'With emote controls';
var WithSound = function () {
return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { id: "some-id", profile: "default", contractAddress: "0x8d8a55def3df0f3979819e52d67047e77c12aaaa", itemId: "0", dev: true, disableBackground: true, disableAutoRotate: true, disableFace: true, disableDefaultWearables: true, skin: "000000" }),
React.createElement(EmoteControls_1.EmoteControls, { wearablePreviewId: "some-id" })));
};
exports.WithSound = WithSound;
exports.WithSound.storyName = 'With sound';
var EmoteEvents = function () {
var _a = React.useState('0'), goTo = _a[0], setGoTo = _a[1];
var _b = React.useState(''), screenshot = _b[0], setScreenshot = _b[1];
var _c = React.useState(''), length = _c[0], setLength = _c[1];
var ref = React.useRef(null);
var onLoad = React.useCallback(function () {
var _a;
ref.current = (_a = ref.current) !== null && _a !== void 0 ? _a : WearablePreview_1.WearablePreview.createController('some-id');
}, []);
return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { id: "some-id", profile: "default", emote: preview_1.PreviewEmote.DANCE, disableBackground: true, disableAutoRotate: true, disableFace: true, disableDefaultWearables: true, skin: "000000", onLoad: onLoad }),
React.createElement(Row_1.Row, { className: "controls" },
React.createElement(Button_1.Button, { primary: true, onClick: function () { return ref.current.emote.play(); } }, "Play"),
React.createElement(Button_1.Button, { primary: true, onClick: function () { return ref.current.emote.pause(); } }, "Pause"),
React.createElement(Button_1.Button, { primary: true, onClick: function () { return ref.current.emote.stop(); } }, "Stop"),
React.createElement("input", { className: "seconds", type: "number", value: goTo, onChange: function (e) { return setGoTo(e.target.value); } }),
React.createElement(Button_1.Button, { primary: true, className: "goto", onClick: function () {
var parsed = parseFloat(goTo);
if (!isNaN(parsed)) {
ref.current.emote.goTo(parsed);
}
} }, "Go To"),
React.createElement(Button_1.Button, { primary: true, onClick: function () {
return ref.current.scene.getScreenshot(1024, 1024).then(setScreenshot);
} }, "Screenshot"),
React.createElement(Button_1.Button, { primary: true, onClick: function () {
return ref.current.emote
.getLength()
.then(function (value) { return setLength(value.toFixed(2)); });
} }, "Get Length"),
screenshot && React.createElement("img", { src: screenshot }),
!!length && React.createElement("p", null,
"Length: ",
length,
" seconds"))));
};
exports.EmoteEvents = EmoteEvents;
exports.EmoteEvents.storyName = 'Emote events';
var PreviewFromAFile = function () {
var inputRef = React.useRef();
var _a = React.useState(null), file = _a[0], setFile = _a[1];
return (React.createElement("div", { className: "WearablePreview-story-container" }, file ? (React.createElement(WearablePreview_1.WearablePreview, { blob: toWearableWithBlobs(file) })) : (React.createElement(Center_1.Center, null,
React.createElement("input", { type: "file", ref: inputRef, onChange: function () { return setFile(inputRef.current.files[0]); } })))));
};
exports.PreviewFromAFile = PreviewFromAFile;
exports.PreviewFromAFile.storyName = 'Preview from a file';
var EmoteThumbnailPicker = function () {
var inputRef = React.useRef();
var _a = React.useState(null), file = _a[0], setFile = _a[1];
var _b = React.useState(''), screenshot = _b[0], setScreenshot = _b[1];
var _c = React.useState(0), length = _c[0], setLength = _c[1];
var ref = React.useRef(null);
var onLoad = React.useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
var _a;
var _b;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
ref.current =
(_b = ref.current) !== null && _b !== void 0 ? _b : WearablePreview_1.WearablePreview.createController('thumbnail-picker');
_a = setLength;
return [4 /*yield*/, ref.current.emote.getLength()];
case 1:
_a.apply(void 0, [_c.sent()]);
return [2 /*return*/];
}
});
}); }, []);
return (React.createElement("div", { className: "WearablePreview-story-container" }, file ? (React.createElement(React.Fragment, null,
React.createElement(WearablePreview_1.WearablePreview, { id: "thumbnail-picker", blob: file ? toEmoteWithBlobs(file) : undefined, profile: "default", disableBackground: true, disableAutoRotate: true, disableFace: true, disableDefaultWearables: true, skin: "000000", wheelZoom: 2, onLoad: onLoad, disableDefaultEmotes: true }),
React.createElement(Row_1.Row, { className: "controls" },
React.createElement(Button_1.Button, { primary: true, onClick: function () {
return ref.current.scene
.getScreenshot(1024, 1024)
.then(setScreenshot);
} }, "Screenshot"),
screenshot && React.createElement("img", { src: screenshot }),
length > 0 && (React.createElement("span", { className: "slider" },
React.createElement(SliderField_1.SliderField, { header: "", min: 0, max: length * 100, onChange: function (_, value) { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, ref.current.emote.pause()];
case 1:
_a.sent();
return [4 /*yield*/, ref.current.emote.goTo(value / 100)];
case 2:
_a.sent();
return [2 /*return*/];
}
});
}); } })))),
React.createElement(EmoteControls_1.EmoteControls, { wearablePreviewId: "thumbnail-picker" }))) : (React.createElement(Center_1.Center, null,
React.createElement("input", { type: "file", ref: inputRef, onChange: function () { return setFile(inputRef.current.files[0]); } })))));
};
exports.EmoteThumbnailPicker = EmoteThumbnailPicker;
exports.EmoteThumbnailPicker.storyName = 'Emote thumbnail picker';
var WithOffset = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "default", offsetY: 0.5, offsetX: 0.5 }))); };
exports.WithOffset = WithOffset;
exports.WithOffset.storyName = 'With offset';
var CameraFromTheFront = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0x9449bc0ef0108d2af6f1031aa5a51a3a830d59c2", itemId: "0", cameraX: 0, cameraY: 0, cameraZ: 3, disableAutoRotate: true }))); };
exports.CameraFromTheFront = CameraFromTheFront;
exports.CameraFromTheFront.storyName = 'Camera from the front';
var CameraFromTheTop = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xf3eb38b1649bdccc8761f3a0526b3173597a0363", itemId: "2", cameraX: 0, cameraY: 2, cameraZ: 0, disableAutoRotate: true }))); };
exports.CameraFromTheTop = CameraFromTheTop;
exports.CameraFromTheTop.storyName = 'Camera from the top';
var DifferentProjections = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement("div", { style: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
height: '100%'
} },
React.createElement("div", { style: { width: 512, height: 512, display: 'inline-block' } },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xf3eb38b1649bdccc8761f3a0526b3173597a0363", itemId: "2", projection: preview_1.PreviewProjection.ORTHOGRAPHIC, disableAutoRotate: true })),
React.createElement("div", { style: { width: 512, height: 512, display: 'inline-block' } },
React.createElement(WearablePreview_1.WearablePreview, { contractAddress: "0xf3eb38b1649bdccc8761f3a0526b3173597a0363", itemId: "2", projection: preview_1.PreviewProjection.PERSPECTIVE, disableAutoRotate: true }))))); };
exports.DifferentProjections = DifferentProjections;
exports.DifferentProjections.storyName = 'Different projections';
var CustomPeerUrl = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "default", peerUrl: "https://peer.decentraland.zone" }))); };
exports.CustomPeerUrl = CustomPeerUrl;
exports.CustomPeerUrl.storyName = 'Custom peer url';
var WithoutFadeEffect = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", disableFadeEffect: true }))); };
exports.WithoutFadeEffect = WithoutFadeEffect;
exports.WithoutFadeEffect.storyName = 'Without fade effect';
var WithoutPanning = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", panning: false }))); };
exports.WithoutPanning = WithoutPanning;
exports.WithoutPanning.storyName = 'Without panning';
var WithLockedAlpha = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", lockAlpha: true }))); };
exports.WithLockedAlpha = WithLockedAlpha;
exports.WithLockedAlpha.storyName = 'With locked alpha';
var WithLockedBeta = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", lockBeta: true }))); };
exports.WithLockedBeta = WithLockedBeta;
exports.WithLockedBeta.storyName = 'With locked beta';
var WithLockedRadius = function () { return (React.createElement("div", { className: "WearablePreview-story-container" },
React.createElement(WearablePreview_1.WearablePreview, { profile: "0xc85a0a34d5f9f2239ab0622a41a2c2560ff119c6", lockRadius: true }))); };
exports.WithLockedRadius = WithLockedRadius;
exports.WithLockedRadius.storyName = 'With locked radius';