UNPKG

hpg-r3f-model-scene

Version:

Pretty Footer react component used in ant.design

83 lines 3.25 kB
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import _objectDestructuringEmpty from "@babel/runtime/helpers/esm/objectDestructuringEmpty"; import _extends from "@babel/runtime/helpers/esm/extends"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import React, { useState } from 'react'; import { Environment as EnvironmentImpl, useTexture } from '@react-three/drei'; import { Color } from 'three'; import { setBackgroundActions } from '../utils/setMaterial'; import { useEventBus } from '../common/events'; import { MaterialFunc } from '../utils/enums'; import { useThree } from '@react-three/fiber'; var Env = function Env(_ref) { var map = _ref.map; var _useThree = useThree(), scene = _useThree.scene; scene.background = useTexture(map); return null; }; export default function Environment(_ref2) { var props = _extends({}, (_objectDestructuringEmpty(_ref2), _ref2)); var _useState = useState(props.color), _useState2 = _slicedToArray(_useState, 2), color = _useState2[0], setColor = _useState2[1]; if (!color) { return null; } var _useEventBus = useEventBus; setBackgroundActions.forEach(function (d) { _useEventBus(d, /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) { var prefix, dd, d1; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (d === MaterialFunc.SET_BACKGROUND) { prefix = false; if (params.indexOf('#') > -1) { prefix = true; dd = new Color(params.toString()).toArray(); d1 = [~~(dd[0] * 255), ~~(dd[1] * 255), ~~(dd[2] * 255)]; setColor(d1); } if (!prefix) { setColor(params); } } case 1: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref3.apply(this, arguments); }; }()); }); if (color instanceof Array) { return /*#__PURE__*/React.createElement("color", { // eslint-disable-next-line react/no-unknown-property attach: "background", // eslint-disable-next-line react/no-unknown-property args: [new Color("rgb(".concat(color[0], ",").concat(color[1], ",").concat(color[2], ")"))] }); } var fileExtension = color.substring(color.lastIndexOf('.') + 1).toLocaleLowerCase(); if (fileExtension === 'hdr') { // eslint-disable-next-line react/jsx-props-no-spreading return /*#__PURE__*/React.createElement(EnvironmentImpl, _objectSpread({ files: color }, props)); } if (fileExtension === 'jpg' || fileExtension === 'png') { // const map = getTexture({ url: color }) || undefined; return /*#__PURE__*/React.createElement(Env, { map: color }); } return /*#__PURE__*/React.createElement(React.Fragment, null); }