react-decode-animation
Version:
Decode effect typing animation for React
53 lines • 2.38 kB
JavaScript
;
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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DecodeAnimationCharacter = void 0;
const react_1 = __importStar(require("react"));
const CharacterList_1 = require("../CharacterList");
function DecodeAnimationCharacter({ isPlaying, loopString, options = { intervalDeviation: 10, interval: 100 }, }) {
const code = CharacterList_1.CharacterList.generateCode(loopString);
const minInterval = options.interval - (options.intervalDeviation || 50);
const maxInterval = options.interval + (options.intervalDeviation || 50);
const interval = Math.random() * (maxInterval - minInterval) + minInterval;
let intervalId;
const [character, setCharacter] = (0, react_1.useState)(`${code.next().value}`);
const clear = () => {
clearInterval(intervalId);
};
(0, react_1.useEffect)(() => {
if (isPlaying) {
intervalId = setInterval(() => {
setCharacter(`${code.next().value}`);
}, interval);
}
else {
clear();
}
return clear;
}, [isPlaying]);
return react_1.default.createElement(react_1.default.Fragment, null, character);
}
exports.DecodeAnimationCharacter = DecodeAnimationCharacter;
//# sourceMappingURL=DecodeAnimationCharacter.js.map