UNPKG

ink-task-list

Version:
2 lines (1 loc) 2.38 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var o=require("react"),r=require("ink"),x=require("process");function m(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var t=m(o),l=m(x);const T=({children:e})=>t.default.createElement(r.Box,{flexDirection:"column"},e);function v(){return l.default.platform!=="win32"?l.default.env.TERM!=="linux":Boolean(l.default.env.CI)||Boolean(l.default.env.WT_SESSION)||l.default.env.ConEmuTask==="{cmd::Cmder}"||l.default.env.TERM_PROGRAM==="vscode"||l.default.env.TERM==="xterm-256color"||l.default.env.TERM==="alacritty"||l.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const y={arrowRight:"\u2192",tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2716",squareSmallFilled:"\u25FC",pointer:"\u276F"},R={arrowRight:"\u2192",tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmallFilled:"\u25A0",pointer:">"};var n=v()?y:R;const k=({spinner:e})=>{const[a,u]=o.useState(0);return o.useEffect(()=>{const c=setInterval(()=>{u(i=>i===e.frames.length-1?0:i+1)},e.interval);return()=>{clearInterval(c)}},[e]),t.default.createElement(r.Text,null,e.frames[a])},w=e=>e==="warning"?t.default.createElement(r.Text,{color:"yellow"},n.warning):e==="error"?t.default.createElement(r.Text,{color:"red"},n.cross):e==="success"?t.default.createElement(r.Text,{color:"green"},n.tick):e==="pending"?t.default.createElement(r.Text,{color:"gray"},n.squareSmallFilled):" ",S=e=>t.default.createElement(r.Text,{color:e==="error"?"red":"yellow"},n.pointer),h=({label:e,state:a="pending",status:u,output:c,spinner:i,isExpanded:f,children:E})=>{const d=o.Children.toArray(E).filter(g=>o.isValidElement(g));let s=a==="loading"?t.default.createElement(r.Text,{color:"yellow"},t.default.createElement(k,{spinner:i})):w(a);return f&&(s=S(a)),t.default.createElement(r.Box,{flexDirection:"column"},t.default.createElement(r.Box,null,t.default.createElement(r.Box,{marginRight:1},t.default.createElement(r.Text,null,s)),t.default.createElement(r.Text,null,e),u?t.default.createElement(r.Box,{marginLeft:1},t.default.createElement(r.Text,{dimColor:!0},"[",u,"]")):void 0),c?t.default.createElement(r.Box,{marginLeft:2},t.default.createElement(r.Text,{color:"gray"},`${n.arrowRight} ${c}`)):void 0,f&&d.length>0&&t.default.createElement(r.Box,{flexDirection:"column",marginLeft:2},d))};exports.Task=h,exports.TaskList=T;