UNPKG

type-writer-words

Version:
1 lines 5.16 kB
{"version":3,"file":"index.mjs","sources":["../src/cursors.ts","../src/TypeWriter.tsx","../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["export const cursors: Record<string, string> = {\r\n default: \"_\",\r\n line: \"|\",\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nimport { cursors } from \"./cursors\";\r\nimport { TypeWriterProps } from \"./types\";\r\nimport \"./TypeWriter.css\";\r\n\r\nexport default function TypeWriter({\r\n words = [],\r\n cursor = \"default\",\r\n typingSpeed = 100,\r\n deletingSpeed = 100,\r\n wordPause = 2000, \r\n deletePause = 2000, \r\n color = \"#000\"\r\n}: TypeWriterProps) {\r\n\r\n const [displayedText, setDisplayedText] = useState(\"\");\r\n const [wordIndex, setWordIndex] = useState(0);\r\n const [isDeleting, setIsDeleting] = useState(false);\r\n\r\n useEffect(() => {\r\n const currentWord = words[wordIndex];\r\n let timeout: any;\r\n\r\n const updateText = () => {\r\n const updatedText = isDeleting\r\n ? currentWord.substring(0, displayedText.length - 1)\r\n : currentWord.substring(0, displayedText.length + 1);\r\n\r\n setDisplayedText(updatedText);\r\n\r\n if (!isDeleting && updatedText === currentWord) {\r\n timeout = setTimeout(() => setIsDeleting(true), wordPause);\r\n } else if (isDeleting && updatedText === \"\") {\r\n setIsDeleting(false);\r\n setWordIndex((prevIndex) => (prevIndex + 1) % words.length);\r\n timeout = setTimeout(updateText, deletePause);\r\n } else {\r\n timeout = setTimeout(\r\n updateText,\r\n isDeleting ? deletingSpeed : typingSpeed\r\n );\r\n }\r\n };\r\n\r\n timeout = setTimeout(updateText, isDeleting ? deletingSpeed : typingSpeed);\r\n\r\n return () => clearTimeout(timeout);\r\n }, [\r\n displayedText,\r\n isDeleting,\r\n wordIndex,\r\n words,\r\n typingSpeed,\r\n deletingSpeed,\r\n wordPause,\r\n ]);\r\n\r\n return (\r\n <div className=\"efects_titles\">\r\n <p id=\"text\" style={{color: color}}>{displayedText}</p>\r\n <span id=\"cursor\" className=\"cursor\" style={{color: color}}>\r\n {cursors[cursor]}\r\n </span>\r\n </div>\r\n );\r\n}\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["cursors","default","line","TypeWriter","_a","_b","words","_c","cursor","_d","typingSpeed","_e","deletingSpeed","_f","wordPause","_g","deletePause","_h","color","_j","useState","displayedText","setDisplayedText","_k","wordIndex","setWordIndex","_l","isDeleting","setIsDeleting","useEffect","timeout","currentWord","updateText","updatedText","substring","length","prevIndex","setTimeout","clearTimeout","_jsxs","className","children","_jsx","id","style","css","ref","insertAt","document","head","getElementsByTagName","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode"],"mappings":"kGAAO,IAAMA,EAAkC,CAC3CC,QAAS,IACTC,KAAM,KCGc,SAAAC,EAAWC,OACjCC,EAAUD,EAAAE,MAAVA,OAAQ,IAAAD,EAAA,KACRE,EAAAH,EAAAI,OAAAA,OAAM,IAAAD,EAAG,UAASA,EAClBE,gBAAAC,aAAc,IAAGD,EACjBE,EAAAP,EAAAQ,cAAAA,aAAgB,IAAGD,EACnBE,EAAgBT,EAAAU,UAAhBA,OAAY,IAAAD,EAAA,MACZE,EAAAX,EAAAY,YAAAA,OAAW,IAAAD,EAAG,IAAIA,EAClBE,UAAAC,OAAQ,IAAAD,EAAA,OAAMA,EAGRE,EAAoCC,EAAS,IAA5CC,EAAaF,EAAA,GAAEG,EAAgBH,EAAA,GAChCI,EAA4BH,EAAS,GAApCI,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACxBG,EAA8BN,GAAS,GAAtCO,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAwChC,OAtCAG,GAAU,WACR,IACIC,EADEC,EAAczB,EAAMkB,GAGpBQ,EAAa,WACjB,IAAMC,EAAcN,EAChBI,EAAYG,UAAU,EAAGb,EAAcc,OAAS,GAChDJ,EAAYG,UAAU,EAAGb,EAAcc,OAAS,GAEpDb,EAAiBW,GAEZN,GAAcM,IAAgBF,EAExBJ,GAA8B,KAAhBM,GACvBL,GAAc,GACdH,GAAa,SAACW,GAAc,OAACA,EAAY,GAAK9B,EAAM6B,UACpDL,EAAUO,WAAWL,EAAYhB,IAEjCc,EAAUO,WACRL,EACAL,EAAaf,EAAgBF,GAR/BoB,EAAUO,YAAW,WAAM,OAAAT,GAAc,EAAK,GAAEd,EAWnD,EAID,OAFAgB,EAAUO,WAAWL,EAAYL,EAAaf,EAAgBF,GAEvD,WAAM,OAAA4B,aAAaR,EAAQ,CACpC,GAAG,CACDT,EACAM,EACAH,EACAlB,EACAI,EACAE,EACAE,IAIAyB,SAAKC,UAAU,gBACbC,SAAA,CAAAC,EAAA,IAAA,CAAGC,GAAG,OAAOC,MAAO,CAAC1B,MAAOA,GAAMuB,SAAGpB,IACrCqB,EAAA,OAAA,CAAMC,GAAG,SAASH,UAAU,SAASI,MAAO,CAAC1B,MAAOA,YACjDlB,EAAQQ,OAIjB,ECjEA,SAAqBqC,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAE,GAC9B,IAAIC,EAAWD,EAAIC,SAEnB,GAAgC,oBAAbC,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DN,EAAQI,SAASG,cAAc,SACnCP,EAAMQ,KAAO,WAEI,QAAbL,GACEE,EAAKI,WACPJ,EAAKK,aAAaV,EAAOK,EAAKI,YAKhCJ,EAAKM,YAAYX,GAGfA,EAAMY,WACRZ,EAAMY,WAAWC,QAAUZ,EAE3BD,EAAMW,YAAYP,SAASU,eAAeb,GAnBU,CAqBxD","x_google_ignoreList":[2]}