nx-react-native-cli 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  ## 📦 Introduction
7
7
 
8
- A comprehensive React Native mobile application starter kit built with Nx workspace. This package provides a carefully curated set of tools and libraries to streamline your mobile app development process with React Native 0.79.2 and the New Architecture.
8
+ A comprehensive React Native mobile application starter kit built with Nx workspace. This package provides a carefully curated set of tools and libraries to streamline your mobile app development process with React Native 0.83.0 and the New Architecture.
9
9
 
10
10
  <h2 id="🛠-usage">🛠 Usage</h2>
11
11
  <p>Generate a new Nx workspace with the React Native preset:</p>
@@ -59,13 +59,13 @@ To get started with development, follow these simple commands:
59
59
 
60
60
  ```bash
61
61
  # Start the Metro bundler
62
- npm run serve:mobile
62
+ yarn serve:mobile
63
63
 
64
64
  # Build and run on Android
65
- npm run android
65
+ yarn android
66
66
 
67
67
  # Open the iOS project in Xcode for building and running
68
- npm run xcode
68
+ yarn xcode
69
69
  ```
70
70
 
71
71
  These commands will help you:
package/lib/index.cjs CHANGED
@@ -61,7 +61,7 @@ ${m.description}`:"";return`${[a,v,b].filter(Boolean).join(" ")}
61
61
  ${g}${I}${E}${M2.default.cursorHide}`});var D1=j(require("node:readline"),1),q=j(s1(),1),dl=j(x1(),1),h1=j(Ua(),1),p1=j(mt(),1),d1={set:(e,r="",t)=>{let n=e;r.split(".").forEach((i,u,o)=>{i==="__proto__"||i==="constructor"||(u===o.length-1?n[i]=t:i in n||(n[i]={}),n=n[i])})},get:(e,r="",t)=>{let n=u=>String.prototype.split.call(r,u).filter(Boolean).reduce((o,a)=>o!=null?o[a]:o,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?t:i}};function fl(e,r,t){if(r in e){let n=e[r];if(typeof n=="function")return(0,q.from)((0,dl.default)(n)(t).then(i=>Object.assign(e,{[r]:i})))}return(0,q.of)(e)}var xl=class extends Error{isTtyError=!0};function pS(e={}){e.skipTTYChecks=e.skipTTYChecks===void 0?!0:e.skipTTYChecks;let r=e.input||process.stdin;if(!e.skipTTYChecks&&!r.isTTY)throw new xl("Prompts can not be meaningfully rendered in non-TTY environments");let t=new h1.default;return t.pipe(e.output||process.stdout),{terminal:!0,...e,input:r,output:t}}function mS(e){return Object.values(e).every(r=>typeof r=="object"&&!Array.isArray(r)&&r!=null)}function vS(e){return e.prototype&&"run"in e.prototype&&typeof e.prototype.run=="function"}var xn=class{prompts;answers={};process=q.EMPTY;onClose;opt;rl;constructor(r,t){this.opt=t,this.prompts=r}run(r,t){this.answers=typeof t=="object"?{...t}:{};let n;Array.isArray(r)?n=(0,q.from)(r):(0,q.isObservable)(r)?n=r:mS(r)?n=(0,q.from)(Object.entries(r).map(([u,o])=>Object.assign({},o,{name:u}))):n=(0,q.from)([r]),this.process=n.pipe((0,q.concatMap)(u=>this.processQuestion(u)));let i=(0,q.lastValueFrom)(this.process.pipe((0,q.reduce)((u,o)=>(d1.set(u,o.name,o.answer),u),this.answers))).then(()=>this.onCompletion(),u=>this.onError(u));return Object.assign(i,{ui:this})}onCompletion(){return this.close(),this.answers}onError(r){return this.close(),Promise.reject(r)}processQuestion(r){return r={...r},(0,q.defer)(()=>(0,q.of)(r).pipe((0,q.concatMap)(this.setDefaultType),(0,q.concatMap)(this.filterIfRunnable),(0,q.concatMap)(n=>fl(n,"message",this.answers)),(0,q.concatMap)(n=>fl(n,"default",this.answers)),(0,q.concatMap)(n=>fl(n,"choices",this.answers)),(0,q.concatMap)(n=>("choices"in n&&(n.choices=n.choices.map(i=>typeof i=="string"?{name:i,value:i}:i)),(0,q.of)(n))),(0,q.concatMap)(n=>this.fetchAnswer(n))))}fetchAnswer(r){let t=this.prompts[r.type];if(t==null)throw new Error(`Prompt for type ${r.type} not found`);return vS(t)?(0,q.defer)(()=>{let n=D1.default.createInterface(pS(this.opt));n.resume();let i=()=>{n.removeListener("SIGINT",this.onForceClose),n.setPrompt(""),n.output.unmute(),n.output.write(p1.default.cursorShow),n.output.end(),n.close()};this.onClose=i,this.rl=n,process.on("exit",this.onForceClose),n.on("SIGINT",this.onForceClose);let u=new t(r,n,this.answers);return(0,q.from)(u.run().then(o=>(i(),this.onClose=void 0,this.rl=void 0,{name:r.name,answer:o})))}):(0,q.defer)(()=>(0,q.from)(t(r,this.opt).then(n=>({name:r.name,answer:n}))))}onForceClose=()=>{this.close(),process.kill(process.pid,"SIGINT"),console.log("")};close=()=>{process.removeListener("exit",this.onForceClose),typeof this.onClose=="function"&&this.onClose()};setDefaultType=r=>(this.prompts[r.type]||(r.type="input"),(0,q.defer)(()=>(0,q.of)(r)));filterIfRunnable=r=>{if(r.askAnswered!==!0&&d1.get(this.answers,r.name)!==void 0)return q.EMPTY;let{when:t}=r;return t===!1?q.EMPTY:typeof t!="function"?(0,q.of)(r):(0,q.defer)(()=>(0,q.from)((0,dl.default)(t)(this.answers).then(n=>{if(n)return r})).pipe((0,q.filter)(n=>n!=null)))}};var m1={input:Vs,select:$i,list:$i,number:Ws,confirm:$s,rawlist:Ys,expand:zs,checkbox:Xa,password:Js,editor:Us};function v1(e){function r(t,n){let i=new xn(r.prompts,e);try{return i.run(t,n)}catch(u){let o=Promise.reject(u);return Object.assign(o,{ui:i})}}return r.prompts={...m1},r.registerPrompt=function(t,n){return r.prompts[t]=n,this},r.restoreDefaultPrompts=function(){r.prompts={...m1}},r}var Dl=v1();function bS(e,r){Dl.registerPrompt(e,r)}function ES(){Dl.restoreDefaultPrompts()}var FS={prompt:Dl,ui:{Prompt:xn},createPromptModule:v1,registerPrompt:bS,restoreDefaultPrompts:ES,Separator:oe},hl=FS;var ei=j(require("node:process"),1);var bl=j(require("node:process"),1);var S1=j(require("node:process"),1),B1=j(_1(),1),q1=j(O1(),1),yS=(0,B1.default)(()=>{(0,q1.default)(()=>{S1.default.stderr.write("\x1B[?25h")},{alwaysLast:!0})}),j1=yS;var ua=!1,pn={};pn.show=(e=bl.default.stderr)=>{e.isTTY&&(ua=!1,e.write("\x1B[?25h"))};pn.hide=(e=bl.default.stderr)=>{e.isTTY&&(j1(),ua=!0,e.write("\x1B[?25l"))};pn.toggle=(e,r)=>{e!==void 0&&(ua=e),ua?pn.show(r):pn.hide(r)};var El=pn;var ri=j(hi(),1);var Ce=j(require("node:process"),1);function Fl(){return Ce.default.platform!=="win32"?Ce.default.env.TERM!=="linux":!!Ce.default.env.CI||!!Ce.default.env.WT_SESSION||!!Ce.default.env.TERMINUS_SUBLIME||Ce.default.env.ConEmuTask==="{cmd::Cmder}"||Ce.default.env.TERM_PROGRAM==="Terminus-Sublime"||Ce.default.env.TERM_PROGRAM==="vscode"||Ce.default.env.TERM==="xterm-256color"||Ce.default.env.TERM==="alacritty"||Ce.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var gS={info:z.blue("\u2139"),success:z.green("\u2714"),warning:z.yellow("\u26A0"),error:z.red("\u2716")},CS={info:z.blue("i"),success:z.green("\u221A"),warning:z.yellow("\u203C"),error:z.red("\xD7")},wS=Fl()?gS:CS,Xn=wS;function _l({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var AS=_l();function Zn(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(AS,"")}function P1(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function T1(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function M1(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9800&&e<=9811||e===9855||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function OS(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function k1(e,{ambiguousAsWide:r=!1}={}){return OS(e),T1(e)||M1(e)||r&&P1(e)?2:1}var L1=j(R1(),1),SS=new Intl.Segmenter,BS=/^\p{Default_Ignorable_Code_Point}$/u;function yl(e,r={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:t=!0,countAnsiEscapeCodes:n=!1}=r;if(n||(e=Zn(e)),e.length===0)return 0;let i=0,u={ambiguousAsWide:!t};for(let{segment:o}of SS.segment(e)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!BS.test(o)){if((0,L1.default)().test(o)){i+=2;continue}i+=k1(a,u)}}return i}function gl({stream:e=process.stdout}={}){return!!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var Pe=j(require("node:process"),1);function Cl(){return Pe.default.platform!=="win32"?Pe.default.env.TERM!=="linux":!!Pe.default.env.WT_SESSION||!!Pe.default.env.TERMINUS_SUBLIME||Pe.default.env.ConEmuTask==="{cmd::Cmder}"||Pe.default.env.TERM_PROGRAM==="Terminus-Sublime"||Pe.default.env.TERM_PROGRAM==="vscode"||Pe.default.env.TERM==="xterm-256color"||Pe.default.env.TERM==="alacritty"||Pe.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Te=j(require("node:process"),1),qS=3,wl=class{#i=0;start(){this.#i++,this.#i===1&&this.#t()}stop(){if(this.#i<=0)throw new Error("`stop` called more times than `start`");this.#i--,this.#i===0&&this.#e()}#t(){Te.default.platform==="win32"||!Te.default.stdin.isTTY||(Te.default.stdin.setRawMode(!0),Te.default.stdin.on("data",this.#u),Te.default.stdin.resume())}#e(){Te.default.stdin.isTTY&&(Te.default.stdin.off("data",this.#u),Te.default.stdin.pause(),Te.default.stdin.setRawMode(!1))}#u(r){r[0]===qS&&Te.default.emit("SIGINT")}},jS=new wl,Al=jS;var PS=j(hi(),1),Ol=class{#i=0;#t=!1;#e=0;#u=0;#r;#o;#n;#x;#d;#c;#l;#f;#h;#a;#s;color;constructor(r){typeof r=="string"&&(r={text:r}),this.#r={color:"cyan",stream:ei.default.stderr,discardStdin:!0,hideCursor:!0,...r},this.color=this.#r.color,this.spinner=this.#r.spinner,this.#d=this.#r.interval,this.#n=this.#r.stream,this.#c=typeof this.#r.isEnabled=="boolean"?this.#r.isEnabled:gl({stream:this.#n}),this.#l=typeof this.#r.isSilent=="boolean"?this.#r.isSilent:!1,this.text=this.#r.text,this.prefixText=this.#r.prefixText,this.suffixText=this.#r.suffixText,this.indent=this.#r.indent,ei.default.env.NODE_ENV==="test"&&(this._stream=this.#n,this._isEnabled=this.#c,Object.defineProperty(this,"_linesToClear",{get(){return this.#i},set(t){this.#i=t}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#u}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}))}get indent(){return this.#f}set indent(r=0){if(!(r>=0&&Number.isInteger(r)))throw new Error("The `indent` option must be an integer from 0 and up");this.#f=r,this.#D()}get interval(){return this.#d??this.#o.interval??100}get spinner(){return this.#o}set spinner(r){if(this.#u=0,this.#d=void 0,typeof r=="object"){if(r.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#o=r}else if(!Cl())this.#o=ri.default.line;else if(r===void 0)this.#o=ri.default.dots;else if(r!=="default"&&ri.default[r])this.#o=ri.default[r];else throw new Error(`There is no built-in spinner named '${r}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#h}set text(r=""){this.#h=r,this.#D()}get prefixText(){return this.#a}set prefixText(r=""){this.#a=r,this.#D()}get suffixText(){return this.#s}set suffixText(r=""){this.#s=r,this.#D()}get isSpinning(){return this.#x!==void 0}#p(r=this.#a,t=" "){return typeof r=="string"&&r!==""?r+t:typeof r=="function"?r()+t:""}#m(r=this.#s,t=" "){return typeof r=="string"&&r!==""?t+r:typeof r=="function"?t+r():""}#D(){let r=this.#n.columns??80,t=this.#p(this.#a,"-"),n=this.#m(this.#s,"-"),i=" ".repeat(this.#f)+t+"--"+this.#h+"--"+n;this.#e=0;for(let u of Zn(i).split(`
62
62
  `))this.#e+=Math.max(1,Math.ceil(yl(u,{countAnsiEscapeCodes:!0})/r))}get isEnabled(){return this.#c&&!this.#l}set isEnabled(r){if(typeof r!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#c=r}get isSilent(){return this.#l}set isSilent(r){if(typeof r!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#l=r}frame(){let{frames:r}=this.#o,t=r[this.#u];this.color&&(t=z[this.color](t)),this.#u=++this.#u%r.length;let n=typeof this.#a=="string"&&this.#a!==""?this.#a+" ":"",i=typeof this.text=="string"?" "+this.text:"",u=typeof this.#s=="string"&&this.#s!==""?" "+this.#s:"";return n+t+i+u}clear(){if(!this.#c||!this.#n.isTTY)return this;this.#n.cursorTo(0);for(let r=0;r<this.#i;r++)r>0&&this.#n.moveCursor(0,-1),this.#n.clearLine(1);return(this.#f||this.lastIndent!==this.#f)&&this.#n.cursorTo(this.#f),this.lastIndent=this.#f,this.#i=0,this}render(){return this.#l?this:(this.clear(),this.#n.write(this.frame()),this.#i=this.#e,this)}start(r){return r&&(this.text=r),this.#l?this:this.#c?this.isSpinning?this:(this.#r.hideCursor&&El.hide(this.#n),this.#r.discardStdin&&ei.default.stdin.isTTY&&(this.#t=!0,Al.start()),this.render(),this.#x=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#n.write(`- ${this.text}
63
63
  `),this)}stop(){return this.#c?(clearInterval(this.#x),this.#x=void 0,this.#u=0,this.clear(),this.#r.hideCursor&&El.show(this.#n),this.#r.discardStdin&&ei.default.stdin.isTTY&&this.#t&&(Al.stop(),this.#t=!1),this):this}succeed(r){return this.stopAndPersist({symbol:Xn.success,text:r})}fail(r){return this.stopAndPersist({symbol:Xn.error,text:r})}warn(r){return this.stopAndPersist({symbol:Xn.warning,text:r})}info(r){return this.stopAndPersist({symbol:Xn.info,text:r})}stopAndPersist(r={}){if(this.#l)return this;let t=r.prefixText??this.#a,n=this.#p(t," "),i=r.symbol??" ",u=r.text??this.text,o=typeof u=="string"?" "+u:"",a=r.suffixText??this.#s,s=this.#m(a," "),c=n+i+o+s+`
64
- `;return this.stop(),this.#n.write(c),this}};function tt(e){return new Ol(e)}var $1=require("child_process"),nt=j(require("fs"),1),oa=j(require("path"),1);var N1={dependencies:{"@gorhom/bottom-sheet":"5.2.8","@hookform/resolvers":"5.0.1","@react-native-community/datetimepicker":"8.6.0","@react-native-community/hooks":"100.1.0","@react-navigation/core":"7.4.0","@react-navigation/material-top-tabs":"7.2.13","@react-navigation/native-stack":"7.2.1","@react-navigation/native":"7.0.15","@react-navigation/stack":"7.1.2","@shopify/react-native-skia":"2.4.14","@tanstack/query-async-storage-persister":"5.67.3","@tanstack/query-core":"5.67.3","@tanstack/query-sync-storage-persister":"5.67.3","@tanstack/react-query-persist-client":"5.67.3","@tanstack/react-query":"5.67.3",axios:"1.13.2","babel-plugin-module-resolver":"5.0.2",dayjs:"1.11.19","jotai-optics":"0.4.0",jotai:"2.16.1","lodash-es":"4.17.22","react-hook-form":"7.56.4","react-native-dotenv":"3.4.11","react-native-gesture-handler":"2.29.1","react-native-get-random-values":"1.11.0","react-native-haptic-feedback":"2.3.3","react-native-keyboard-controller":"1.19.1","react-native-mmkv":"4.1.0","react-native-modal-datetime-picker":"18.0.0","react-native-modal":"14.0.0-rc.1","react-native-nitro-modules":"0.32.0","react-native-pager-view":"6.8.0","react-native-reanimated":"4.2.1","react-native-safe-area-context":"5.6.0","react-native-screens":"4.19.0","react-native-simple-toast":"3.3.2","react-native-turbo-image":"1.22.1","react-native-url-polyfill":"2.0.0","react-native-worklets":"0.7.1","react-native":"0.83.1",react:"19.2.0",tailwindcss:"3.4.16",twrnc:"4.16.0",uuid:"11.1.0","zod-validation-error":"3.4.0",zod:"3.24.2",zustand:"5.0.5"}};var U1={devDependencies:{"@babel/core":"7.25.2","@babel/eslint-parser":"7.23.10","@babel/preset-env":"7.25.3","@babel/preset-react":"7.27.1","@babel/runtime":"7.25.0","@react-native-community/cli-platform-android":"20.0.0","@react-native-community/cli-platform-ios":"20.0.0","@react-native-community/cli":"20.0.0","@react-native/babel-preset":"0.83.1","@react-native/eslint-config":"0.83.1","@react-native/metro-config":"0.83.1","@react-native/typescript-config":"0.83.1","@swc-node/register":"~1.8.0","@tanstack/eslint-plugin-query":"5.91.2","@testing-library/jest-native":"5.4.3","@testing-library/react-native":"12.5.1","@types/jest":"29.5.13","@types/jwt-encode":"1.0.3","@types/lodash-es":"4.17.12","@types/react-native-vector-icons":"6.4.18","@types/react-test-renderer":"19.1.0","@types/react":"19.2.0","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.21.0","babel-jest":"29.6.3","babel-plugin-module-resolver":"5.0.2","eslint-config-airbnb-typescript":"^17.1.0","eslint-config-prettier":"10.1.8","eslint-import-resolver-typescript":"^3.8.5","eslint-plugin-ft-flow":"2.0.3","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"27.9.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-perf":"^3.3.3","eslint-plugin-react":"^7.32.2","eslint-plugin-sonarjs":"0.25.1","eslint-plugin-sort-destructure-keys":"^2.0.0","eslint-plugin-sort-keys-fix":"^1.1.2","eslint-plugin-tailwindcss":"^3.18.0","eslint-plugin-testing-library":"6.2.2",eslint:"8.57.0",husky:"9.1.7","jest-environment-jsdom":"30.1.2",jest:"29.6.3","prettier-plugin-tailwindcss":"^0.6.11",prettier:"3.3.2","react-native-dotenv":"3.4.11","react-native-svg-transformer":"1.3.0","react-native-svg":"15.15.1","react-test-renderer":"19.2.0",typescript:"5.8.3"}};function V1(){return __dirname}var it=(e,r)=>{(0,$1.execSync)(`cd ${e} && ${r}`,{stdio:"inherit"})},Me=(e,r)=>{let t=oa.default.join(V1(),`../templates/${r}`);nt.default.copyFile(t,e,n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},aa=(e,r)=>{let t=oa.default.join(V1(),`../templates/${r}`);nt.default.cpSync(t,e,{recursive:!0},n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},W1=e=>{nt.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing directory: ${r.message}`);return}})},Sl=e=>{nt.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing file: ${r.message}`);return}})},H1=e=>{let r={doctor:"npx nx react-native doctor",android:"cd apps/mobile && npm run run-android","android:connect":"cd apps/mobile && npm run android:connect","check-env:mobile":"./check-env.sh apps/mobile/.env apps/mobile/.env.template",ios:"cd apps/mobile && npm run run-ios",clean:"./clean-generated-outputs.sh","create-env":"printenv > ","lint:all":"npx nx run-many -t lint -p mobile --parallel=1 --skip-nx-cache","lint:mobile":"npx nx run mobile:lint --skip-nx-cache","mobile-android":"cd apps/mobile && npm run run-android","mobile-ios":"cd apps/mobile && npm run run-ios",prepare:"husky install","serve:mobile":"cd apps/mobile && npm start","serve:all":"npx nx run-many -t serve -p mobile --parallel=1 --skip-nx-cache",xcode:"cd apps/mobile && npm run xcode","touch-xcode":"cd apps/mobile && npm run touch-xcode","setup-fastlane":"cd apps/mobile && npm run setup-fastlane","deploy-android:dev":"cd apps/mobile && npm run deploy-android:dev","deploy-ios:dev":"cd apps/mobile && npm run deploy-ios:dev","ios-certificates":"cd apps/mobile && npm run ios-certificates","pod-install":"cd apps/mobile && npm run pod-install","react-native-asset":"cd apps/mobile && npx react-native-asset"},t=oa.default.join(e,"package.json"),n=JSON.parse(nt.default.readFileSync(t,"utf8"));n.dependencies={...n.dependencies,...N1.dependencies},n.devDependencies={...n.devDependencies,...U1.devDependencies},n.scripts={...n.scripts,...r},nt.default.writeFileSync(t,JSON.stringify(n,null,2))};var kS="2.3.0",A={title:z.bold.cyan,subtitle:z.cyan,success:z.bold.green,info:z.bold.blue,warning:z.hex("#FFA500").bold,error:z.bold.red,highlight:z.bold.magenta,command:z.yellow.italic,path:z.green.underline,step:e=>z.bgCyan.black(` STEP ${e} `),emoji:{rocket:"\u{1F680}",check:"\u2705",warning:"\u26A0\uFE0F",star:"\u2B50",sparkles:"\u2728",tools:"\u{1F6E0}\uFE0F",mobile:"\u{1F4F1}",folder:"\u{1F4C1}",code:"\u{1F4BB}"}},IS=()=>{console.log(`
64
+ `;return this.stop(),this.#n.write(c),this}};function tt(e){return new Ol(e)}var $1=require("child_process"),nt=j(require("fs"),1),oa=j(require("path"),1);var N1={dependencies:{"@gorhom/bottom-sheet":"5.2.8","@hookform/resolvers":"5.0.1","@react-native-community/datetimepicker":"8.6.0","@react-native-community/hooks":"100.1.0","@react-navigation/core":"7.4.0","@react-navigation/material-top-tabs":"7.2.13","@react-navigation/native-stack":"7.2.1","@react-navigation/native":"7.0.15","@react-navigation/stack":"7.1.2","@shopify/react-native-skia":"2.4.14","@tanstack/query-async-storage-persister":"5.67.3","@tanstack/query-core":"5.67.3","@tanstack/query-sync-storage-persister":"5.67.3","@tanstack/react-query-persist-client":"5.67.3","@tanstack/react-query":"5.67.3",axios:"1.13.2","babel-plugin-module-resolver":"5.0.2",dayjs:"1.11.19","jotai-optics":"0.4.0",jotai:"2.16.1","lodash-es":"4.17.22","react-hook-form":"7.56.4","react-native-dotenv":"3.4.11","react-native-gesture-handler":"2.29.1","react-native-get-random-values":"1.11.0","react-native-haptic-feedback":"2.3.3","react-native-keyboard-controller":"1.19.1","react-native-mmkv":"4.1.0","react-native-modal-datetime-picker":"18.0.0","react-native-modal":"14.0.0-rc.1","react-native-nitro-modules":"0.32.0","react-native-pager-view":"6.8.0","react-native-reanimated":"4.2.1","react-native-safe-area-context":"5.6.0","react-native-screens":"4.19.0","react-native-simple-toast":"3.3.2","react-native-turbo-image":"1.22.1","react-native-url-polyfill":"2.0.0","react-native-worklets":"0.7.1","react-native":"0.83.1",react:"19.2.0",tailwindcss:"3.4.16",twrnc:"4.16.0",uuid:"11.1.0","zod-validation-error":"3.4.0",zod:"3.24.2",zustand:"5.0.5"}};var U1={devDependencies:{"@babel/core":"7.25.2","@babel/eslint-parser":"7.23.10","@babel/preset-env":"7.25.3","@babel/preset-react":"7.27.1","@babel/runtime":"7.25.0","@react-native-community/cli-platform-android":"20.0.0","@react-native-community/cli-platform-ios":"20.0.0","@react-native-community/cli":"20.0.0","@react-native/babel-preset":"0.83.1","@react-native/eslint-config":"0.83.1","@react-native/metro-config":"0.83.1","@react-native/typescript-config":"0.83.1","@swc-node/register":"~1.8.0","@tanstack/eslint-plugin-query":"5.91.2","@testing-library/jest-native":"5.4.3","@testing-library/react-native":"12.5.1","@types/jest":"29.5.13","@types/jwt-encode":"1.0.3","@types/lodash-es":"4.17.12","@types/react-native-vector-icons":"6.4.18","@types/react-test-renderer":"19.1.0","@types/react":"19.2.0","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.21.0","babel-jest":"29.6.3","babel-plugin-module-resolver":"5.0.2","eslint-config-airbnb-typescript":"^17.1.0","eslint-config-prettier":"10.1.8","eslint-import-resolver-typescript":"^3.8.5","eslint-plugin-ft-flow":"2.0.3","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"27.9.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-perf":"^3.3.3","eslint-plugin-react":"^7.32.2","eslint-plugin-sonarjs":"0.25.1","eslint-plugin-sort-destructure-keys":"^2.0.0","eslint-plugin-sort-keys-fix":"^1.1.2","eslint-plugin-tailwindcss":"^3.18.0","eslint-plugin-testing-library":"6.2.2",eslint:"8.57.0",husky:"9.1.7","jest-environment-jsdom":"30.1.2",jest:"29.6.3","prettier-plugin-tailwindcss":"^0.6.11",prettier:"3.3.2","react-native-dotenv":"3.4.11","react-native-svg-transformer":"1.3.0","react-native-svg":"15.15.1","react-test-renderer":"19.2.0",typescript:"5.8.3"}};function V1(){return __dirname}var it=(e,r)=>{(0,$1.execSync)(`cd ${e} && ${r}`,{stdio:"inherit"})},Me=(e,r)=>{let t=oa.default.join(V1(),`../templates/${r}`);nt.default.copyFile(t,e,n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},aa=(e,r)=>{let t=oa.default.join(V1(),`../templates/${r}`);nt.default.cpSync(t,e,{recursive:!0},n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},W1=e=>{nt.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing directory: ${r.message}`);return}})},Sl=e=>{nt.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing file: ${r.message}`);return}})},H1=e=>{let r={doctor:"npx nx react-native doctor",android:"cd apps/mobile && npm run run-android","android:connect":"cd apps/mobile && npm run android:connect","check-env:mobile":"./check-env.sh apps/mobile/.env apps/mobile/.env.template",ios:"cd apps/mobile && npm run run-ios",clean:"./clean-generated-outputs.sh","create-env":"printenv > ","lint:all":"npx nx run-many -t lint -p mobile --parallel=1 --skip-nx-cache","lint:mobile":"npx nx run mobile:lint --skip-nx-cache","mobile-android":"cd apps/mobile && npm run run-android","mobile-ios":"cd apps/mobile && npm run run-ios",prepare:"husky install","serve:mobile":"cd apps/mobile && npm start","serve:all":"npx nx run-many -t serve -p mobile --parallel=1 --skip-nx-cache",xcode:"cd apps/mobile && npm run xcode","touch-xcode":"cd apps/mobile && npm run touch-xcode","setup-fastlane":"cd apps/mobile && npm run setup-fastlane","deploy-android:dev":"cd apps/mobile && npm run deploy-android:dev","deploy-ios:dev":"cd apps/mobile && npm run deploy-ios:dev","ios-certificates":"cd apps/mobile && npm run ios-certificates","pod-install":"cd apps/mobile && npm run pod-install","react-native-asset":"cd apps/mobile && npx react-native-asset"},t=oa.default.join(e,"package.json"),n=JSON.parse(nt.default.readFileSync(t,"utf8"));n.dependencies={...n.dependencies,...N1.dependencies},n.devDependencies={...n.devDependencies,...U1.devDependencies},n.scripts={...n.scripts,...r},nt.default.writeFileSync(t,JSON.stringify(n,null,2))};var kS="2.3.1",A={title:z.bold.cyan,subtitle:z.cyan,success:z.bold.green,info:z.bold.blue,warning:z.hex("#FFA500").bold,error:z.bold.red,highlight:z.bold.magenta,command:z.yellow.italic,path:z.green.underline,step:e=>z.bgCyan.black(` STEP ${e} `),emoji:{rocket:"\u{1F680}",check:"\u2705",warning:"\u26A0\uFE0F",star:"\u2B50",sparkles:"\u2728",tools:"\u{1F6E0}\uFE0F",mobile:"\u{1F4F1}",folder:"\u{1F4C1}",code:"\u{1F4BB}"}},IS=()=>{console.log(`
65
65
  `),console.log(A.title("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557")),console.log(A.title("\u2551 \u2551")),console.log(A.title("\u2551 ")+A.highlight("NX REACT NATIVE CLI")+A.title(" \u2551")),console.log(A.title("\u2551 ")+A.subtitle("A powerful starter for React Native with NX")+A.title(" \u2551")),console.log(A.title("\u2551 \u2551")),console.log(A.title("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D")),console.log(`
66
66
  `)};ai.name("React Native Starter with NX").description("A starter script to create a new React Native project with NX").version(kS);ai.command("create [workspace_name] [bundle_id]").description("create nx workspace with react-native").option("--fresh","Create a fresh project without copying template files").action(async(e,r,t)=>{IS(),e||(e=(await hl.prompt([{type:"input",name:"workspace_name",message:A.info("Enter the workspace name:")}])).workspace_name),r||(r=(await hl.prompt([{type:"input",name:"bundle_id",message:A.info("Enter the bundle ID: ex. org.reactjsnative.example")}])).bundle_id);let n=t.fresh||!1,i=process.cwd(),u=`${i}/${e}`,o=`${u}/apps/mobile`;console.log(`
67
67
  ${A.step(1)} ${A.emoji.folder} ${A.success(`Creating Nx workspace in ${A.path(`./${e}`)}`)}`);let a=tt({text:"Setting up Nx workspace...",color:"cyan"}).start();(0,G1.execSync)(`cd ${i} && npx create-nx-workspace@19.7.0 --preset apps --workspaceType integrated --name ${e} --package-manager=yarn --nxCloud skip`,{stdio:"inherit"}),a.succeed(A.success("Nx workspace created successfully")),console.log(`
@@ -69,7 +69,7 @@ ${A.step(2)} ${A.emoji.mobile} ${A.success("Adding React Native to your workspac
69
69
  ${A.step(3)} ${A.emoji.tools} ${A.success("Setting up project configuration")}`);let c=tt({text:"Configuring project files...",color:"cyan"}).start();aa(`${u}/.vscode`,".vscode"),aa(`${u}/.husky`,".husky"),Me(`${u}/.prettierrc`,".prettierrc"),Me(`${u}/.prettierignore`,".prettierignore"),Me(`${u}/.eslintrc.json`,".eslintrc.json"),Me(`${u}/.eslintrc.json`,".eslintrc.json"),Me(`${u}/.gitignore`,".ignorefile"),Me(`${u}/.ruby-version`,".ruby-version"),Me(`${u}/.nvmrc`,".nvmrc"),Me(`${u}/check-env.sh`,"check-env.sh"),Me(`${u}/clean-generated-outputs.sh`,"clean-generated-outputs.sh"),n||(W1(`${u}/apps/mobile/src`),Sl(`${u}/apps/mobile/.vite.config.ts`),Sl(`${u}/apps/mobile/.babelrc.js`),aa(`${u}/apps`,"apps")),Me(`${u}/apps/mobile/.gitignore`,".ignorefile"),it(u,`keytool -genkey -keystore ${u}/apps/mobile/android/app/dev.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias dev -dname "cn=Unknown, ou=Unknown, o=Unknown, c=Unknown" -storepass development -keypass development`,{stdio:"inherit"}),c.succeed(A.success("Project configuration completed"));let x=tt({text:"Linking assets...",color:"cyan"}).start();it(o,"npx react-native-asset",{stdio:"inherit"}),x.succeed(A.success("Assets linked successfully")),console.log(`
70
70
  ${A.step(4)} ${A.emoji.code} ${A.success("Finalizing setup")}`);let d=tt({text:"Renaming app...",color:"cyan"}).start();it(o,`npx nx-react-native-rename@latest "${e}" -b "${r}" --skipGitStatusCheck --exclude "package.json"`,{stdio:"inherit"}),d.succeed(A.success("Mobile package.json updated successfully")),console.log(`
71
71
  `),console.log(A.title("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557")),console.log(A.title("\u2551 ")+A.emoji.rocket+" "+A.success("PROJECT CREATED SUCCESSFULLY")+A.title(" \u2551")),console.log(A.title("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D")),console.log(`
72
- `),console.log(A.subtitle("\u{1F4CB} NEXT STEPS:")),console.log(`${A.emoji.star} ${A.info("Start your project:")} ${A.command("npm run serve:mobile")}`),console.log(`
72
+ `),console.log(A.subtitle("\u{1F4CB} NEXT STEPS:")),console.log(`${A.emoji.star} ${A.info("Start your project:")} ${A.command("yarn serve:mobile")}`),console.log(`
73
73
  `),console.log(A.highlight(`${A.emoji.sparkles} Happy coding! ${A.emoji.sparkles}`)),console.log(`
74
74
  `)});ai.parse(process.argv);
75
75
  /*! Bundled license information:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx-react-native-cli",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "description": "A react native starter (with NX) cli script",
5
5
  "type": "module",
6
6
  "files": [
@@ -2,9 +2,9 @@ import React from 'react';
2
2
  import { InputAccessoryView, Keyboard, View } from 'react-native';
3
3
 
4
4
  import { Button } from '@/components/atoms/Button';
5
+ import { KeyboardHideIcon } from '@/icons';
5
6
  import { tw } from '@/tailwind';
6
7
  import { DefaultComponentProps } from '@/types/component.type';
7
- import { KeyboardHideIcon } from '@/icons';
8
8
 
9
9
  type Props = DefaultComponentProps & {
10
10
  nativeID: string;
@@ -16,7 +16,7 @@ export function KeyboardAccessory(props: Props) {
16
16
  return (
17
17
  <InputAccessoryView nativeID={nativeID}>
18
18
  <View style={tw`flex-row items-center justify-end bg-[#313132] px-2`}>
19
- <Button onPress={() => Keyboard.dismiss()} buttonStyle={tw`my-2 rounded-lg bg-[#717172]`}>
19
+ <Button buttonStyle={tw`my-2 rounded-lg bg-[#717172]`} onPress={() => Keyboard.dismiss()}>
20
20
  <KeyboardHideIcon style={tw`text-white`} />
21
21
  </Button>
22
22
  </View>
@@ -11,6 +11,8 @@ import {
11
11
  View,
12
12
  } from 'react-native';
13
13
 
14
+ import { DefaultNameInputProps } from './constants';
15
+
14
16
  import { CrossIcon } from '@/icons';
15
17
  import {
16
18
  colors,
@@ -21,7 +23,6 @@ import {
21
23
  tw,
22
24
  } from '@/tailwind';
23
25
  import { DefaultComponentProps } from '@/types/component.type';
24
- import { DefaultNameInputProps } from './constants';
25
26
 
26
27
  export type BottomSheetTextInputProps = DefaultComponentProps &
27
28
  RNTextInputProps & {
@@ -35,16 +36,16 @@ export function BottomSheetTextInput(props: BottomSheetTextInputProps) {
35
36
  const {
36
37
  isDisabled = false,
37
38
  multiline = false,
39
+ onBlur,
38
40
  onChangeText,
41
+ onClearButtonPress,
42
+ onFocus,
39
43
  placeholder,
44
+ showClearButton = true,
40
45
  style,
41
46
  textInputRef,
42
47
  textStyle,
43
48
  value,
44
- showClearButton = true,
45
- onClearButtonPress,
46
- onFocus,
47
- onBlur,
48
49
  ...extraProps
49
50
  } = props;
50
51
  const [isClearButtonVisible, setIsClearButtonVisible] = useState<boolean>(false);
@@ -102,16 +103,16 @@ export function BottomSheetTextInput(props: BottomSheetTextInputProps) {
102
103
  selectionColor={colors.primary}
103
104
  style={[defaultInputTextStyle, textStyle]}
104
105
  value={value}
105
- onBlur={handleOnBlur}
106
+ onBlur={(e) => handleOnBlur(e as NativeSyntheticEvent<TextInputFocusEventData>)}
106
107
  onChangeText={handleOnChangeText}
107
- onFocus={handleOnFocus}
108
+ onFocus={(e) => handleOnFocus(e as NativeSyntheticEvent<TextInputFocusEventData>)}
108
109
  {...extraProps}
109
110
  />
110
111
  {isClearButtonVisible && (
111
112
  <Pressable
112
113
  hitSlop={30}
113
- testID="clear-button"
114
114
  style={tw`items-center justify-center`}
115
+ testID="clear-button"
115
116
  onPress={handleOnClearPress}
116
117
  >
117
118
  <CrossIcon />
@@ -4,49 +4,49 @@ export const TEXT_INPUT_MIN_HEIGHT = 56;
4
4
  export const TEXT_INPUT_LINE_HEIGHT = 21;
5
5
 
6
6
  export const DefaultPhonePadInputProps: TextInputProps = {
7
- keyboardAppearance: 'dark',
8
7
  autoCapitalize: 'none',
9
8
  autoCorrect: true,
9
+ keyboardAppearance: 'dark',
10
10
  keyboardType: 'phone-pad',
11
11
  numberOfLines: 1,
12
12
  };
13
13
 
14
14
  export const DefaultNumberPadInputProps: TextInputProps = {
15
- keyboardAppearance: 'dark',
16
15
  autoCapitalize: 'none',
17
16
  autoCorrect: true,
17
+ keyboardAppearance: 'dark',
18
18
  keyboardType: 'number-pad',
19
19
  numberOfLines: 1,
20
20
  };
21
21
 
22
22
  export const DefaultNumericInputProps: TextInputProps = {
23
- keyboardAppearance: 'dark',
24
23
  autoCapitalize: 'none',
25
24
  autoCorrect: true,
25
+ keyboardAppearance: 'dark',
26
26
  keyboardType: 'numeric',
27
27
  numberOfLines: 1,
28
28
  };
29
29
 
30
30
  export const DefaultNameInputProps: TextInputProps = {
31
- keyboardAppearance: 'dark',
32
31
  autoCapitalize: 'words',
33
32
  autoCorrect: true,
33
+ keyboardAppearance: 'dark',
34
34
  keyboardType: 'default',
35
35
  numberOfLines: 1,
36
36
  };
37
37
 
38
38
  export const DefaultEmailInputProps: TextInputProps = {
39
- keyboardAppearance: 'dark',
40
39
  autoCapitalize: 'none',
41
40
  autoCorrect: true,
41
+ keyboardAppearance: 'dark',
42
42
  keyboardType: 'email-address',
43
43
  numberOfLines: 1,
44
44
  };
45
45
 
46
46
  export const DefaultTextAreaInputProps: TextInputProps = {
47
- keyboardAppearance: 'dark',
48
47
  autoCapitalize: 'sentences',
49
48
  autoCorrect: true,
49
+ keyboardAppearance: 'dark',
50
50
  keyboardType: 'default',
51
51
  numberOfLines: 3,
52
52
  };
@@ -1,4 +1,3 @@
1
- import { DefaultComponentProps } from '@/types/component.type';
2
1
  import { useEffect, useState } from 'react';
3
2
  import {
4
3
  TextInput as RNTextInput,
@@ -6,10 +5,13 @@ import {
6
5
  StyleProp,
7
6
  TextStyle,
8
7
  } from 'react-native';
8
+
9
9
  import { DefaultTextAreaInputProps, TEXT_INPUT_MIN_HEIGHT } from './constants';
10
10
  import { TextInput } from './text-input.component';
11
11
  import { getTextInputHeightAdjustment } from './util';
12
12
 
13
+ import { DefaultComponentProps } from '@/types/component.type';
14
+
13
15
  export type TextInputAreaProps = DefaultComponentProps &
14
16
  RNTextInputProps & {
15
17
  textInputRef?: React.RefObject<RNTextInput>;
@@ -50,6 +52,7 @@ export function TextInputArea(props: TextInputAreaProps) {
50
52
  {...DefaultTextAreaInputProps}
51
53
  multiline
52
54
  numberOfLines={numberOfLines}
55
+ showClearButton={false}
53
56
  textStyle={[
54
57
  textStyle,
55
58
  {
@@ -59,7 +62,6 @@ export function TextInputArea(props: TextInputAreaProps) {
59
62
  },
60
63
  ]}
61
64
  value={value}
62
- showClearButton={false}
63
65
  onChangeText={handleOnChangeText}
64
66
  {...extraProps}
65
67
  />
@@ -10,6 +10,7 @@ import {
10
10
 
11
11
  import { DefaultNameInputProps } from './constants';
12
12
 
13
+ import { CrossIcon } from '@/icons';
13
14
  import {
14
15
  colors,
15
16
  defaultInputContainerStyle,
@@ -19,7 +20,6 @@ import {
19
20
  tw,
20
21
  } from '@/tailwind';
21
22
  import { DefaultComponentProps } from '@/types/component.type';
22
- import { CrossIcon } from '@/icons';
23
23
 
24
24
  export type TextInputProps = DefaultComponentProps &
25
25
  RNTextInputProps & {