diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..dfa7252 --- /dev/null +++ b/404.html @@ -0,0 +1,21 @@ + + + + + +Page Not Found | react-native-help-create + + + + + + + + + +
+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + + + \ No newline at end of file diff --git a/assets/css/styles.d8f863b7.css b/assets/css/styles.d8f863b7.css new file mode 100644 index 0000000..51e7709 --- /dev/null +++ b/assets/css/styles.d8f863b7.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#1e49a7;--ifm-color-primary-dark:#070abb;--ifm-color-primary-darker:#0300b6;--ifm-color-primary-darkest:#000983;--ifm-color-primary-light:#1912d7;--ifm-color-primary-lighter:#2006e4;--ifm-color-primary-lightest:#0400ff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12);--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area.breadcrumbs__link[href]:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-timing-function:ease-in-out;top:0;left:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);position:fixed;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#1659ea;--ifm-color-primary-dark:#0436da;--ifm-color-primary-darker:#053edb;--ifm-color-primary-darkest:#002dd0;--ifm-color-primary-light:#0062ff;--ifm-color-primary-lighter:#0057ed;--ifm-color-primary-lightest:#0064fa;--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.3)}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 rgba(0,0,0,.15);transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 rgba(0,0,0,.2)}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.features_t9lD{align-items:center;display:flex;padding:2rem 0;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.featureSvg_GfXr{height:200px;width:200px}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a,.sidebarItemLink_mo7H:hover{text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_knG7 a{text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:0 0;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards a;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:focus,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:0 0}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.docsWrapper_BCFX{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}#docusaurus-base-url-issue-banner-container,.collapseSidebarButton_PEFL,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.tocCollapsibleContent_vkbj a{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite b;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes b{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:rgba(255,215,142,.25);color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:hsla(0,0%,100%,.05);--docusaurus-collapse-button-bg-hover:hsla(0,0%,100%,.1)}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.logo_Ukns{display:block;margin:1rem auto}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:.15s;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.breadcrumbHomeIcon_OVgt{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg);position:sticky}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;top:0;transition:background-color var(--ifm-transition-fast) ease}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/docusaurus-plushie-banner-a60f7593abca1e3eef26a9afa244e4fb.jpeg b/assets/images/docusaurus-plushie-banner-a60f7593abca1e3eef26a9afa244e4fb.jpeg new file mode 100644 index 0000000..11bda09 Binary files /dev/null and b/assets/images/docusaurus-plushie-banner-a60f7593abca1e3eef26a9afa244e4fb.jpeg differ diff --git a/assets/js/0093adb5.58359041.js b/assets/js/0093adb5.58359041.js new file mode 100644 index 0000000..1da5483 --- /dev/null +++ b/assets/js/0093adb5.58359041.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2443],{9365:(e,n,a)=>{a.d(n,{A:()=>l});var t=a(6540),r=a(53);const o="tabItem_Ymn6";function l(e){let{children:n,hidden:a,className:l}=e;return t.createElement("div",{role:"tabpanel",className:(0,r.A)(o,l),hidden:a},n)}},4865:(e,n,a)=>{a.d(n,{A:()=>d});var t=a(9668),r=a(6540),o=a(53),l=a(2303),i=a(1682),s=a(6976),c=a(3104);const p="tabList__CuJ",u="tabItem_LNqP";function m(e){const{lazy:n,block:a,defaultValue:l,values:m,groupId:d,className:g}=e,y=r.Children.map(e.children,(e=>{if((0,r.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})),h=m??y.map((e=>{let{props:{value:n,label:a,attributes:t}}=e;return{value:n,label:a,attributes:t}})),N=(0,i.X)(h,((e,n)=>e.value===n.value));if(N.length>0)throw new Error(`Docusaurus error: Duplicate values "${N.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`);const f=null===l?l:l??y.find((e=>e.props.default))?.props.value??y[0].props.value;if(null!==f&&!h.some((e=>e.value===f)))throw new Error(`Docusaurus error: The has a defaultValue "${f}" but none of its children has the corresponding value. Available values are: ${h.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:b,setTabGroupChoices:v}=(0,s.x)(),[w,C]=(0,r.useState)(f),x=[],{blockElementScrollPositionUntilNextRender:T}=(0,c.a_)();if(null!=d){const e=b[d];null!=e&&e!==w&&h.some((n=>n.value===e))&&C(e)}const k=e=>{const n=e.currentTarget,a=x.indexOf(n),t=h[a].value;t!==w&&(T(n),C(t),null!=d&&v(d,String(t)))},_=e=>{let n=null;switch(e.key){case"Enter":k(e);break;case"ArrowRight":{const a=x.indexOf(e.currentTarget)+1;n=x[a]??x[0];break}case"ArrowLeft":{const a=x.indexOf(e.currentTarget)-1;n=x[a]??x[x.length-1];break}}n?.focus()};return r.createElement("div",{className:(0,o.A)("tabs-container",p)},r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":a},g)},h.map((e=>{let{value:n,label:a,attributes:l}=e;return r.createElement("li",(0,t.A)({role:"tab",tabIndex:w===n?0:-1,"aria-selected":w===n,key:n,ref:e=>x.push(e),onKeyDown:_,onClick:k},l,{className:(0,o.A)("tabs__item",u,l?.className,{"tabs__item--active":w===n})}),a??n)}))),n?(0,r.cloneElement)(y.filter((e=>e.props.value===w))[0],{className:"margin-top--md"}):r.createElement("div",{className:"margin-top--md"},y.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==w})))))}function d(e){const n=(0,l.A)();return r.createElement(m,(0,t.A)({key:String(n)},e))}},1133:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>u,contentTitle:()=>c,default:()=>g,frontMatter:()=>s,metadata:()=>p,toc:()=>m});var t=a(9668),r=(a(6540),a(5680)),o=a(4865),l=a(9365),i=a(7964);const s={sidebar_position:6},c="Notes",p={unversionedId:"notes",id:"notes",title:"Notes",description:"- To see the available commands for rnhc you can run:",source:"@site/docs/notes.mdx",sourceDirName:".",slug:"/notes",permalink:"/react-native-help-create/docs/notes",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Combine Screens",permalink:"/react-native-help-create/docs/combine/combine-screens"}},u={},m=[],d={toc:m};function g(e){let{components:n,...a}=e;return(0,r.yg)("wrapper",(0,t.A)({},d,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"notes"},"Notes"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To see the available commands for ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc")," you can run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc --help\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To see the available positionals and options for a specific command like ",(0,r.yg)("inlineCode",{parentName:"li"},"create")," you can run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --help\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In order to ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc")," to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"You don't seem to be at the root of a react native project\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"In ",(0,r.yg)("inlineCode",{parentName:"p"},"create")," command, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If you are in a JavaScript project and somehow you want to create your component or screen in TypeScript, you can use the ",(0,r.yg)("inlineCode",{parentName:"p"},"--typescript")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"--ts")," option:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s test-screen --ts\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"It doesn't matter what case you name your component or screen, ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc")," will always create a component or screen with the same name, but with the first letter in uppercase, and the folder will be in kebab case. So if you name your component with ",(0,r.yg)("inlineCode",{parentName:"li"},"test-comp"),", it will create a component or screen with the name ",(0,r.yg)("inlineCode",{parentName:"li"},"TestComp")," in the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.jsx")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"./src/components/test-comp/")," folder. Check the example below:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-comp\n")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c testComp\n")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestComp\n")),(0,r.yg)("p",null,"The above commands produce the same outcome:"),(0,r.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(i.A,{language:"jsx",mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-comp\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,r.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(i.A,{language:"tsx",mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-comp\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"You can always overwrite your implementation using the ",(0,r.yg)("inlineCode",{parentName:"li"},"--overwrite")," or ",(0,r.yg)("inlineCode",{parentName:"li"},"-o")," option, for example:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-component -o\n")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s TestScreen -o\n")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r -o\n")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer testReducer -o\n")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action testReducer test-action -o\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This is helpful when you want to update your navigation files, for example you already have a navigation file in ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder and you want to update it with the new screens you created:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack --overwrite\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"When creating reducers you should have already a redux implmentation created with ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," so it can work.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"When creating actions, you should have already a redux implementation created with ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," as well as an existed reducer with ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc create --reducer ")," so it can create actions for that specific reducer.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/")," folder (Or your specified path for the root of redux folder in ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc.config.json"),").")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"You can use the ",(0,r.yg)("inlineCode",{parentName:"p"},"--silent")," option to avoid the prompts for all commands:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c foo --silent\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"rnhc")," will recommend you similar commands if you type a command that doesn't exist. For example, if you type ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc crete -c"),", it will prompt you with the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc [option]\n\nCommands:\n rnhc create [name] Create components, screens, navigations and redux\n implementation\n rnhc delete [name] Delete components, screens, navigations and redux\n implementation\n rnhc combine [name] Combine components or screens in a folder\n\nOptions:\n --version Show version number [boolean]\n --silent Do not show log messages [boolean]\n --help Show help [boolean]\n\nDid you mean create?\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"When creating, deleting or combining components in atom design pattern, if you provide more than one type (e.g ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc create -c test --atom --molecule"),"), ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt you to choose one of them.")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/010256eb.1c30f971.js b/assets/js/010256eb.1c30f971.js new file mode 100644 index 0000000..cb313d6 --- /dev/null +++ b/assets/js/010256eb.1c30f971.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7084],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,d=u["".concat(p,".").concat(y)]||u[y]||m[y]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"create/intro",id:"version-2.5.1/create/intro",title:"Intro",description:"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.",source:"@site/versioned_docs/version-2.5.1/create/intro.md",sourceDirName:"create",slug:"/create/intro",permalink:"/react-native-help-create/docs/2.5.1/create/intro",draft:!1,tags:[],version:"2.5.1",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Create",permalink:"/react-native-help-create/docs/2.5.1/category/create"},next:{title:"Create Components",permalink:"/react-native-help-create/docs/2.5.1/create/create-components"}},p={},l=[],s={toc:l};function u(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"By default ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to force the use of a specific language you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--js")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"--ts")," options at the end of your ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will not overwrite the existed implementation for all of the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to overwrite the existed implementation for a specific ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--overwrite")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"-o")," option at the end of the command."))),(0,o.yg)("p",null,"The following points shows how to use the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0110d8c5.65212875.js b/assets/js/0110d8c5.65212875.js new file mode 100644 index 0000000..95a0828 --- /dev/null +++ b/assets/js/0110d8c5.65212875.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8385],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"delete/intro",id:"version-2.3.4/delete/intro",title:"Intro",description:"With rnhc you can delete what you already created with create commands.",source:"@site/versioned_docs/version-2.3.4/delete/intro.md",sourceDirName:"delete",slug:"/delete/intro",permalink:"/react-native-help-create/docs/2.3.4/delete/intro",draft:!1,tags:[],version:"2.3.4",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Delete",permalink:"/react-native-help-create/docs/2.3.4/category/delete"},next:{title:"Delete Components",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-components"}},l={},p=[],s={toc:p};function d(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can delete what you already created with ",(0,o.yg)("a",{parentName:"p",href:"/docs/category/create"},(0,o.yg)("inlineCode",{parentName:"a"},"create")," commands"),"."),(0,o.yg)("p",null,"The following points shows how to deal with deleting your files with the ",(0,o.yg)("inlineCode",{parentName:"p"},"delete")," command."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.6ab3993b.js b/assets/js/01a85c17.6ab3993b.js new file mode 100644 index 0000000..0fca00a --- /dev/null +++ b/assets/js/01a85c17.6ab3993b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8209],{6669:(e,t,a)=>{a.d(t,{A:()=>v});var l=a(6540),n=a(53),r=a(5933),s=a(4581),c=a(5489),i=a(1312);const m="sidebar_re4s",o="sidebarItemTitle_pO2u",u="sidebarItemList_Yudw",g="sidebarItem__DBe",b="sidebarItemLink_mo7H",d="sidebarItemLinkActive_I1ZP";function E(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.A)(m,"thin-scrollbar"),"aria-label":(0,i.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.A)(o,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.A)(u,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:g},l.createElement(c.A,{isNavLink:!0,to:e.permalink,className:b,activeClassName:d},e.title)))))))}var p=a(5600);function h(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(c.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function N(e){return l.createElement(p.GX,{component:h,props:e})}function _(e){let{sidebar:t}=e;const a=(0,s.l)();return t?.items.length?"mobile"===a?l.createElement(N,{sidebar:t}):l.createElement(E,{sidebar:t}):null}function v(e){const{sidebar:t,toc:a,children:s,...c}=e,i=t&&t.items.length>0;return l.createElement(r.A,c,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(_,{sidebar:t}),l.createElement("main",{className:(0,n.A)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},9158:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d});var l=a(6540),n=a(53),r=a(1312);var s=a(9024),c=a(7559),i=a(6669),m=a(6133);const o="tag_Nnez";function u(e){let{letterEntry:t}=e;return l.createElement("article",null,l.createElement("h2",null,t.letter),l.createElement("ul",{className:"padding--none"},t.tags.map((e=>l.createElement("li",{key:e.permalink,className:o},l.createElement(m.A,e))))),l.createElement("hr",null))}function g(e){let{tags:t}=e;const a=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[l]=t;return a.localeCompare(l)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return l.createElement("section",{className:"margin-vert--lg"},a.map((e=>l.createElement(u,{key:e.letter,letterEntry:e}))))}var b=a(1463);function d(e){let{tags:t,sidebar:a}=e;const m=(0,r.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});return l.createElement(s.e3,{className:(0,n.A)(c.G.wrapper.blogPages,c.G.page.blogTagsListPage)},l.createElement(s.be,{title:m}),l.createElement(b.A,{tag:"blog_tags_list"}),l.createElement(i.A,{sidebar:a},l.createElement("h1",null,m),l.createElement(g,{tags:t})))}},6133:(e,t,a)=>{a.d(t,{A:()=>m});var l=a(6540),n=a(53),r=a(5489);const s="tag_zVej",c="tagRegular_sFm0",i="tagWithCount_h2kH";function m(e){let{permalink:t,label:a,count:m}=e;return l.createElement(r.A,{href:t,className:(0,n.A)(s,m?i:c)},a,m&&l.createElement("span",null,m))}}}]); \ No newline at end of file diff --git a/assets/js/03d65c99.83fbdab9.js b/assets/js/03d65c99.83fbdab9.js new file mode 100644 index 0000000..a83c60e --- /dev/null +++ b/assets/js/03d65c99.83fbdab9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8120],{5680:(e,n,t)=>{t.d(n,{xA:()=>i,yg:()=>d});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},i=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),m=s(t),y=a,d=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return t?r.createElement(d,l(l({ref:n},i),{},{components:t})):r.createElement(d,l({ref:n},i))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[m]="string"==typeof e?e:a,l[1]=c;for(var s=2;s{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:2},l="Create Components",c={unversionedId:"create/create-components",id:"version-2.6.0/create/create-components",title:"Create Components",description:"Create a Component",source:"@site/versioned_docs/version-2.6.0/create/create-components.md",sourceDirName:"create",slug:"/create/create-components",permalink:"/react-native-help-create/docs/2.6.0/create/create-components",draft:!1,tags:[],version:"2.6.0",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.6.0/create/intro"},next:{title:"Create Screens",permalink:"/react-native-help-create/docs/2.6.0/create/create-screens"}},p={},s=[{value:"Create a Component",id:"create-a-component",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Components",id:"create-multiple-components",level:2},{value:"Exmaple",id:"exmaple",level:3},{value:"Create a Components in a Specific Folder",id:"create-a-components-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3}],i={toc:s};function m(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},i,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-components"},"Create Components"),(0,a.yg)("h2",{id:"create-a-component"},"Create a Component"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your components simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c \n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a component named after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components//")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestComponent\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/test-component/"),":")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-component\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," represents the React FC component that contains the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import { Text, View } from "react-native";\nimport { TestComponentStyles } from "./styles";\n\nconst TestComponent = () => {\n return (\n \n TestComponent component created!\n \n );\n};\nexport default TestComponent;\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And for the ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.js")," you will see:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},'import { StyleSheet } from "react-native";\n\nexport const TestComponentStyles = StyleSheet.create({});\n')),(0,a.yg)("h2",{id:"create-multiple-components"},"Create multiple Components"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple components simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple components for the given names under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,a.yg)("h3",{id:"exmaple"},"Exmaple"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u2502 \u251c\u2500\u2500 index.jsx\n \u2502 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("h2",{id:"create-a-components-in-a-specific-folder"},"Create a Components in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or mutliple components in a specified path that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c ... -f \n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your components under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components//")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u2502 \u251c\u2500\u2500 index.jsx\n \u2502 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0471b42f.4019c7dc.js b/assets/js/0471b42f.4019c7dc.js new file mode 100644 index 0000000..d17b799 --- /dev/null +++ b/assets/js/0471b42f.4019c7dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5593],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),p=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=p(e.components);return r.createElement(c.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(t),y=a,g=u["".concat(c,".").concat(y)]||u[y]||m[y]||o;return t?r.createElement(g,l(l({ref:n},s),{},{components:t})):r.createElement(g,l({ref:n},s))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:6},l="Notes",i={unversionedId:"notes",id:"version-2.5.1/notes",title:"Notes",description:"- To see the available commands for rnhc you can run:",source:"@site/versioned_docs/version-2.5.1/notes.md",sourceDirName:".",slug:"/notes",permalink:"/react-native-help-create/docs/2.5.1/notes",draft:!1,tags:[],version:"2.5.1",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Combine Screens",permalink:"/react-native-help-create/docs/2.5.1/combine/combine-screens"}},c={},p=[],s={toc:p};function u(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"notes"},"Notes"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To see the available commands for ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc --help\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To see the available positionals and options for a specific command like ",(0,a.yg)("inlineCode",{parentName:"li"},"create")," you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --help\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"In order to ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"You don't seem to be at the root of a react native project\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In ",(0,a.yg)("inlineCode",{parentName:"p"},"create")," command, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If you are in a JavaScript project and somehow you want to create your component or screen in TypeScript, you can use the ",(0,a.yg)("inlineCode",{parentName:"p"},"--typescript")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"--ts")," option:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s test-screen --ts\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"It doesn't matter what case you name your component or screen, ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will always create a component or screen with the same name, but with the first letter in uppercase, and the folder will be in kebab case. So if you name your component with ",(0,a.yg)("inlineCode",{parentName:"li"},"test-comp"),", it will create a component or screen with the name ",(0,a.yg)("inlineCode",{parentName:"li"},"TestComp")," in the ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," file under the ",(0,a.yg)("inlineCode",{parentName:"li"},"./src/components/test-comp/")," folder. Check the example below:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-comp\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c testComp\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestComp\n")),(0,a.yg)("p",null,"The above commands produce the same outcome:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-comp\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"You can always overwrite your implementation using the ",(0,a.yg)("inlineCode",{parentName:"li"},"--overwrite")," or ",(0,a.yg)("inlineCode",{parentName:"li"},"-o")," option, for example:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-component -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s TestScreen -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer testReducer -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action testReducer test-action -o\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This is helpful when you want to update your navigation files, for example you already have a navigation file in ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder and you want to update it with the new screens you created:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack --overwrite\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"When creating reducers you should have already a redux implmentation created with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," so it can work.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"When creating actions, you should have already a redux implementation created with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," as well as an existed reducer with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create --reducer ")," so it can create actions for that specific reducer.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/redux/")," folder (Or your specified path for the root of redux folder in ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc.config.json"),")."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/05f2ec11.5fa71364.js b/assets/js/05f2ec11.5fa71364.js new file mode 100644 index 0000000..e99faf5 --- /dev/null +++ b/assets/js/05f2ec11.5fa71364.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7748],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),d=o,y=p["".concat(s,".").concat(d)]||p[d]||f[d]||i;return t?r.createElement(y,a(a({ref:n},u),{},{components:t})):r.createElement(y,a({ref:n},u))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:7},a="Using Configuration",l={unversionedId:"create/using-configuration",id:"version-2.5.1/create/using-configuration",title:"Using Configuration",description:"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.",source:"@site/versioned_docs/version-2.5.1/create/using-configuration.md",sourceDirName:"create",slug:"/create/using-configuration",permalink:"/react-native-help-create/docs/2.5.1/create/using-configuration",draft:!1,tags:[],version:"2.5.1",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Create Redux",permalink:"/react-native-help-create/docs/2.5.1/create/create-redux"},next:{title:"Delete",permalink:"/react-native-help-create/docs/2.5.1/category/delete"}},s={},c=[],u={toc:c};function p(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"using-configuration"},"Using Configuration"),(0,o.yg)("p",null,"With the above steps, you can now create a configuration file which will be used by ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," to create your files with your custom config."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To create a default configuration file run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will create a ",(0,o.yg)("inlineCode",{parentName:"li"},"rnhc.config.json")," file at the root of your project. The file will contain the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n "withStyles": true,\n "withFunctions": true,\n "withProps": true,\n "withTests": true,\n "defaultExports": true,\n "componentsRoot": "./src/components",\n "screensRoot": "./src/screens",\n "reduxRoot": "./src/redux",\n "applyReduxThunk": true\n}\n')),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withStyles"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file for components and screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withFunctions"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder for screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withProps"),": if true, create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface")," for components and screens (in TS only), if false, don't create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface"),", default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withTests"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"__tests__")," folder for components and screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"__tests__")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"defaultExports"),": if true, create default export for components and pages, if false, create named export for components and pages, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"componentsRoot"),": the root folder for components, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/components"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"screensRoot"),": the root folder for screens, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/screens"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"reduxRoot"),": the root folder for redux, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/redux"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"applyReduxThunk"),": if true, apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware to the store, if false, don't apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware, default is true.")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/080cd42f.e2605e79.js b/assets/js/080cd42f.e2605e79.js new file mode 100644 index 0000000..36a09ca --- /dev/null +++ b/assets/js/080cd42f.e2605e79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1548],{915:e=>{e.exports=JSON.parse('[{"label":"facebook","permalink":"/react-native-help-create/blog/tags/facebook","count":1},{"label":"hello","permalink":"/react-native-help-create/blog/tags/hello","count":2},{"label":"docusaurus","permalink":"/react-native-help-create/blog/tags/docusaurus","count":4},{"label":"hola","permalink":"/react-native-help-create/blog/tags/hola","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/09bedf3b.e54e68d6.js b/assets/js/09bedf3b.e54e68d6.js new file mode 100644 index 0000000..9933b68 --- /dev/null +++ b/assets/js/09bedf3b.e54e68d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1312],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),y=a,d=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return n?r.createElement(d,i(i({ref:t},s),{},{components:n})):r.createElement(d,i({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(9668),a=(n(6540),n(5680));const o={sidebar_position:5},i="Using Templates",l={unversionedId:"create/using-templates",id:"version-2.5.1/create/using-templates",title:"Using Templates",description:"You can create your screens and components with your defined templates by following these steps:",source:"@site/versioned_docs/version-2.5.1/create/using-templates.md",sourceDirName:"create",slug:"/create/using-templates",permalink:"/react-native-help-create/docs/2.5.1/create/using-templates",draft:!1,tags:[],version:"2.5.1",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Create Navigations",permalink:"/react-native-help-create/docs/2.5.1/create/create-navigations"},next:{title:"Create Redux",permalink:"/react-native-help-create/docs/2.5.1/create/create-redux"}},p={},c=[{value:"Example",id:"example",level:3}],s={toc:c};function m(e){let{components:t,...n}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"using-templates"},"Using Templates"),(0,a.yg)("p",null,"You can create your screens and components with your defined templates by following these steps:"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"First thing to do is to create a ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder at the root of your react project.")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"Inside the ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder you can add your template, for example ",(0,a.yg)("inlineCode",{parentName:"p"},"componentWithUseEffect.tsx")," (the file extension doesn't matter so it could be ",(0,a.yg)("inlineCode",{parentName:"p"},"*.jsx"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"*.js")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"*.tsx"),"):"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import React, { useEffect } from "react";\nimport { View, Text } from "react-native";\n\nexport default function __COMPONENT__() {\n useEffect(() => {}, []);\n\n return (\n \n Hello, World!\n \n );\n}\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"There is a restriction in naming these templates which is you should not put dots (",(0,a.yg)("inlineCode",{parentName:"p"},"."),") between the name, like this (",(0,a.yg)("inlineCode",{parentName:"p"},"component.WithUseEffect.jsx"),"). It should only contain one dot that makes the extension file like we're doing above.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You should type ",(0,a.yg)("inlineCode",{parentName:"p"},"__COMPONENT__")," in the template file and it will be replaced with the component name you want to create."))),(0,a.yg)("ol",{start:3},(0,a.yg)("li",{parentName:"ol"},"After creating your template you can use them to create components or screens as the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c -t \n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s -t \n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And of course, you can create multiple components or screens with the same template.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("p",null,"As for our example it can be used like this for the above template:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp -t componentWithUseEffect\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will create ",(0,a.yg)("inlineCode",{parentName:"p"},"comp")," component under ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder and the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for this component will contain the same code written in the template.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the screen case, the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for that screen will contain the code written in the template."))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0acbe1f8.ed55ec0f.js b/assets/js/0acbe1f8.ed55ec0f.js new file mode 100644 index 0000000..04a508f --- /dev/null +++ b/assets/js/0acbe1f8.ed55ec0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6869],{8469:e=>{e.exports=JSON.parse('{"label":"hola","permalink":"/react-native-help-create/blog/tags/hola","allTagsPath":"/react-native-help-create/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/0d2b0ba6.bfee4520.js b/assets/js/0d2b0ba6.bfee4520.js new file mode 100644 index 0000000..962f743 --- /dev/null +++ b/assets/js/0d2b0ba6.bfee4520.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7776],{5680:(e,n,t)=>{t.d(n,{xA:()=>m,yg:()=>f});var o=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=o.createContext({}),l=function(e){var n=o.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},m=function(e){var n=l(e.components);return o.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},d=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=r,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||a;return t?o.createElement(f,c(c({ref:n},m),{},{components:t})):o.createElement(f,c({ref:n},m))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,c=new Array(a);c[0]=d;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[s]="string"==typeof e?e:r,c[1]=i;for(var l=2;l{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=t(9668),r=(t(6540),t(5680));const a={sidebar_position:2},c="Combine Components",i={unversionedId:"combine/combine-components",id:"version-2.3.4/combine/combine-components",title:"Combine Components",description:"- To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:",source:"@site/versioned_docs/version-2.3.4/combine/combine-components.md",sourceDirName:"combine",slug:"/combine/combine-components",permalink:"/react-native-help-create/docs/2.3.4/combine/combine-components",draft:!1,tags:[],version:"2.3.4",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.3.4/combine/intro"},next:{title:"Combine Screens",permalink:"/react-native-help-create/docs/2.3.4/combine/combine-screens"}},p={},l=[{value:"Example",id:"example",level:2}],m={toc:l};function s(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,o.A)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"combine-components"},"Combine Components"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To combine components that resides in ",(0,r.yg)("inlineCode",{parentName:"li"},"src/components/")," folder to a specific path that resides under that same folder you can run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c ... -f \n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This will move the existed components for the given inputs to ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components//")," folder.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If somehome one of the given components does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,r.yg)("h2",{id:"example"},"Example"),(0,r.yg)("p",null,"In this example, we have ",(0,r.yg)("inlineCode",{parentName:"p"},"comp-1")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"comp-2")," that exists under ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, and we want to move them to ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/foo/bar/")," folder:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c comp-1 comp-2 -f foo/bar\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"comp-1 component moved to src/components/foo/bar/\ncomp-2 component moved to src/components/foo/bar/\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0eaa31cb.6b573720.js b/assets/js/0eaa31cb.6b573720.js new file mode 100644 index 0000000..b394744 --- /dev/null +++ b/assets/js/0eaa31cb.6b573720.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1447],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>f});var t=r(6540);function o(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function a(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function c(e){for(var n=1;n=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=t.createContext({}),l=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=l(e.components);return t.createElement(i.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=o,f=m["".concat(i,".").concat(d)]||m[d]||u[d]||a;return r?t.createElement(f,c(c({ref:n},p),{},{components:r})):t.createElement(f,c({ref:n},p))}));function f(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[m]="string"==typeof e?e:o,c[1]=s;for(var l=2;l{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var t=r(9668),o=(r(6540),r(5680));const a={sidebar_position:3},c="Combine Screens",s={unversionedId:"combine/combine-screens",id:"version-2.3.4/combine/combine-screens",title:"Combine Screens",description:"- To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:",source:"@site/versioned_docs/version-2.3.4/combine/combine-screens.md",sourceDirName:"combine",slug:"/combine/combine-screens",permalink:"/react-native-help-create/docs/2.3.4/combine/combine-screens",draft:!1,tags:[],version:"2.3.4",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Combine Components",permalink:"/react-native-help-create/docs/2.3.4/combine/combine-components"},next:{title:"Notes",permalink:"/react-native-help-create/docs/2.3.4/notes"}},i={},l=[{value:"Example",id:"example",level:2}],p={toc:l};function m(e){let{components:n,...r}=e;return(0,o.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"combine-screens"},"Combine Screens"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To combine screens that resides in ",(0,o.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder to a specific path that resides under that same folder you can run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s ... -f \n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will move the existed screens for the given inputs to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens//")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If somehome one of the given screens does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these screens exist\n")),(0,o.yg)("h2",{id:"example"},"Example"),(0,o.yg)("p",null,"In this example, we have ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-1")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-2")," that exists under ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, and we want to move them to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/foo/bar/")," folder:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s screen-1 screen-2 -f foo/bar\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"screen-1 screen moved to src/screens/foo/bar/\nscreen-2 screen moved to src/screens/foo/bar/\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/10504b84.ab891432.js b/assets/js/10504b84.ab891432.js new file mode 100644 index 0000000..6ecc455 --- /dev/null +++ b/assets/js/10504b84.ab891432.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2681],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,d=u["".concat(p,".").concat(y)]||u[y]||m[y]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"create/intro",id:"create/intro",title:"Intro",description:"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.",source:"@site/docs/create/intro.md",sourceDirName:"create",slug:"/create/intro",permalink:"/react-native-help-create/docs/create/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Create",permalink:"/react-native-help-create/docs/category/create"},next:{title:"Create Components",permalink:"/react-native-help-create/docs/create/create-components"}},p={},l=[],s={toc:l};function u(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"By default ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to force the use of a specific language you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--js")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"--ts")," options at the end of your ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will not overwrite the existed implementation for all of the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to overwrite the existed implementation for a specific ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--overwrite")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"-o")," option at the end of the command."))),(0,o.yg)("p",null,"The following points shows how to use the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1092b69f.321c8c0d.js b/assets/js/1092b69f.321c8c0d.js new file mode 100644 index 0000000..ab802e2 --- /dev/null +++ b/assets/js/1092b69f.321c8c0d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3912],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),u=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=u(e.components);return a.createElement(c.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},g=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(t),g=r,m=s["".concat(c,".").concat(g)]||s[g]||d[g]||i;return t?a.createElement(m,l(l({ref:n},p),{},{components:t})):a.createElement(m,l({ref:n},p))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=g;var o={};for(var c in n)hasOwnProperty.call(n,c)&&(o[c]=n[c]);o.originalType=e,o[s]="string"==typeof e?e:r,l[1]=o;for(var u=2;u{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var a=t(9668),r=(t(6540),t(5680));const i={sidebar_position:6},l="Create Redux",o={unversionedId:"create/create-redux",id:"version-2.6.0/create/create-redux",title:"Create Redux",description:"To create a redux implementation run:",source:"@site/versioned_docs/version-2.6.0/create/create-redux.md",sourceDirName:"create",slug:"/create/create-redux",permalink:"/react-native-help-create/docs/2.6.0/create/create-redux",draft:!1,tags:[],version:"2.6.0",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Using Templates",permalink:"/react-native-help-create/docs/2.6.0/create/using-templates"},next:{title:"Using Configuration",permalink:"/react-native-help-create/docs/2.6.0/create/using-configuration"}},c={},u=[{value:"Create a reducer",id:"create-a-reducer",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple reducers",id:"create-multiple-reducers",level:2},{value:"Create an action",id:"create-an-action",level:2},{value:"Example",id:"example-1",level:3},{value:"Create multiple actions",id:"create-multiple-actions",level:2}],p={toc:u};function s(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,a.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-redux"},"Create Redux"),(0,r.yg)("p",null,"To create a redux implementation run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/")," folder containing the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500redux\n \u2502 index.js\n \u2502\n \u251c\u2500\u2500\u2500actions\n \u2502 \u2514\u2500\u2500\u2500general\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500reducers\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500general\n index.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Where ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," under the ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder contains the redux store definition:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { applyMiddleware, compose, createStore } from "redux";\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"And ",(0,r.yg)("inlineCode",{parentName:"p"},"actions")," folder contains the action for each reducer, as for a example, at first ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will create a sample reducer and action which is called ",(0,r.yg)("inlineCode",{parentName:"p"},"general"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"general")," action's ",(0,r.yg)("inlineCode",{parentName:"p"},"index.js")," contains:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'// write your general actions here\n\n// this is an example for an action\nexport const init = () => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"general")," reducer's ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," contains:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'const initialState = { message: "" };\n\nexport const general = (state = initialState, action) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder contains the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In TypeScript, the files will be written as the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\nexport type StateInterface = ReturnType;\n\n/**\n * list of action types\n */\nexport type ActionType = "UPDATE_GENERAL";\n\nexport interface Action {\n type: ActionType;\n payload: Partial;\n}\n\nexport type ThunkResult<\n A = Record,\n E = Record\n> = ThunkAction>;\n\nexport type Dispatch = ThunkDispatch<\n StateInterface,\n Record,\n Action\n>;\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/actions/general/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { GeneralState } from "../../reducers/general";\nimport { ThunkResult } from "../..";\n\n// write your general actions here\n\n// this is an example for an action\nexport const init =\n (): ThunkResult => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n };\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/reducers/general/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { Action } from "../..";\n\nexport interface GeneralState {\n message: string;\n}\n\nexport const general = (\n state: GeneralState = {\n message: "",\n },\n action: Action\n) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/reducers/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)("h1",{id:"reducers"},"Reducers"),(0,r.yg)("h2",{id:"create-a-reducer"},"Create a reducer"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a reducer, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer \n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer auth\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/reducers/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," for this reducer will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/auth/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"const initialState = {};\n\nexport const auth = (state = initialState, action) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"It will also add the reducer to the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use it in the ",(0,r.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { combineReducers } from "redux";\nimport { auth } from "./auth";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n auth,\n general,\n});\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If you don't have a redux implementation create using ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc create -r"),", this command will prompt:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Redux implementation does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"You can also overwrite the reducer by running:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer -o\n")),(0,r.yg)("h2",{id:"create-multiple-reducers"},"Create multiple reducers"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple reducers, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will also update your ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use the reducers you created.")),(0,r.yg)("h1",{id:"actions"},"Actions"),(0,r.yg)("h2",{id:"create-an-action"},"Create an action"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action \n")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In this example we are going to create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, so we will run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action auth login\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"login")," action under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"login.js")," for this action will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/login.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'export const loginAction = () => async (dispatch, getState) => {\n dispatch({ type: "AUTH_LOGIN", payload: {} });\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will update the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," to export the action.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'export { loginAction } from "./login";\n')),(0,r.yg)("h2",{id:"create-multiple-actions"},"Create multiple actions"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple actions, you must have a redux implementation and existed reducer, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If the reducer doesn't exist, you will get an error like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/x does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ",(0,r.yg)("inlineCode",{parentName:"li"},"ActionType")," in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts")," file. For example if you create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, you will get the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";\n\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n\nexport type StateInterface = ReturnType;\n\n/**\n * list of action types\n */\nexport type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";\n\nexport interface Action {\n type: ActionType;\n payload: Partial;\n}\nexport type ThunkResult<\n A = Record,\n E = Record\n> = ThunkAction>;\n\nexport type Dispatch = ThunkDispatch<\n StateInterface,\n Record,\n Action\n>;\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"It will also update the necessary files that imports and exports modules in order to use the action in the reducer.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Also another note, if you prefer not using ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," you can set that in ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file, this will let you create your store and actions without applying the ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," middleware (For more details check ",(0,r.yg)("a",{parentName:"p",href:"./using-configuration"},"configuration section"),")."))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/11cb2c20.344cb2e8.js b/assets/js/11cb2c20.344cb2e8.js new file mode 100644 index 0000000..9ad0c44 --- /dev/null +++ b/assets/js/11cb2c20.344cb2e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2513],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),g=i,f=p["".concat(c,".").concat(g)]||p[g]||u[g]||a;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:i,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var r=n(9668),i=(n(6540),n(5680));const a={sidebar_position:4},l="Delete Navigations",o={unversionedId:"delete/delete-navigations",id:"version-2.5.1/delete/delete-navigations",title:"Delete Navigations",description:"Delete the root Navigation",source:"@site/versioned_docs/version-2.5.1/delete/delete-navigations.md",sourceDirName:"delete",slug:"/delete/delete-navigations",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-navigations",draft:!1,tags:[],version:"2.5.1",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Delete Screens",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-screens"},next:{title:"Delete Redux",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-redux"}},c={},s=[{value:"Delete the root Navigation",id:"delete-the-root-navigation",level:2},{value:"Delete a Navigation in a Specific Folder",id:"delete-a-navigation-in-a-specific-folder",level:2}],d={toc:s};function p(e){let{components:t,...n}=e;return(0,i.yg)("wrapper",(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"delete-navigations"},"Delete Navigations"),(0,i.yg)("h2",{id:"delete-the-root-navigation"},"Delete the root Navigation"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder simply run:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n\n")),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"This will delete the navigation file if it exists, if not ",(0,i.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"It seems there is no navigation file in src/screens/\n")),(0,i.yg)("h2",{id:"delete-a-navigation-in-a-specific-folder"},"Delete a Navigation in a Specific Folder"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in a specific path that resides under ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder you can run:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n -f \n")),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"This will delete the navigation file if it does exist under the ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens//")," folder.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.5dd71704.js b/assets/js/14eb3368.5dd71704.js new file mode 100644 index 0000000..a09c8f9 --- /dev/null +++ b/assets/js/14eb3368.5dd71704.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6969],{7211:(e,t,n)=>{n.d(t,{A:()=>p});var a=n(9668),r=n(6540),i=n(53),l=n(7559),s=n(4142),c=n(9169),o=n(5489),m=n(6025),d=n(1312);function u(e){return r.createElement("svg",(0,a.A)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function h(e){let{children:t,href:n,isLast:a}=e;const i="breadcrumbs__link";return a?r.createElement("span",{className:i,itemProp:"name"},t):n?r.createElement(o.A,{className:i,href:n,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function v(e){let{children:t,active:n,index:l,addMicrodata:s}=e;return r.createElement("li",(0,a.A)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.A)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function g(){const e=(0,m.A)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.A,{"aria-label":(0,d.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,i.A)("breadcrumbs__link",b.breadcrumbsItemLink),href:e},r.createElement(u,{className:b.breadcrumbHomeIcon})))}function p(){const e=(0,s.OF)(),t=(0,c.Dt)();return e?r.createElement("nav",{className:(0,i.A)(l.G.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,d.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(g,null),e.map(((t,n)=>{const a=n===e.length-1;return r.createElement(v,{key:n,active:a,index:n,addMicrodata:!!t.href},r.createElement(h,{href:t.href,isLast:a},t.label))})))):null}},4136:(e,t,n)=>{n.r(t),n.d(t,{default:()=>V});var a=n(6540),r=n(9024),i=n(4142),l=n(6025),s=n(53),c=n(5489),o=n(6654),m=n(1312);const d="cardContainer_fWXF",u="cardTitle_rnsV",b="cardDescription_PWke";function h(e){let{href:t,children:n}=e;return a.createElement(c.A,{href:t,className:(0,s.A)("card padding--lg",d)},n)}function v(e){let{href:t,icon:n,title:r,description:i}=e;return a.createElement(h,{href:t},a.createElement("h2",{className:(0,s.A)("text--truncate",u),title:r},n," ",r),i&&a.createElement("p",{className:(0,s.A)("text--truncate",b),title:i},i))}function g(e){let{item:t}=e;const n=(0,i._o)(t);return n?a.createElement(v,{href:n,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:(0,m.T)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function p(e){let{item:t}=e;const n=(0,o.A)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.cC)(t.docId??void 0);return a.createElement(v,{href:t.href,icon:n,title:t.label,description:r?.description})}function E(e){let{item:t}=e;switch(t.type){case"link":return a.createElement(p,{item:t});case"category":return a.createElement(g,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function f(e){let{className:t}=e;const n=(0,i.$S)();return a.createElement(A,{items:n.items,className:t})}function A(e){const{items:t,className:n}=e;if(!t)return a.createElement(f,e);const r=(0,i.d1)(t);return a.createElement("section",{className:(0,s.A)("row",n)},r.map(((e,t)=>a.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},a.createElement(E,{item:e})))))}var N=n(7719),_=n(1878),k=n(4267),L=n(7211),T=n(1107);const x="generatedIndexPage_vN6x",y="list_eTzJ",w="title_kItE";function I(e){let{categoryGeneratedIndex:t}=e;return a.createElement(r.be,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.A)(t.image)})}function C(e){let{categoryGeneratedIndex:t}=e;const n=(0,i.$S)();return a.createElement("div",{className:x},a.createElement(_.A,null),a.createElement(L.A,null),a.createElement(k.A,null),a.createElement("header",null,a.createElement(T.A,{as:"h1",className:w},t.title),t.description&&a.createElement("p",null,t.description)),a.createElement("article",{className:"margin-top--lg"},a.createElement(A,{items:n.items,className:y})),a.createElement("footer",{className:"margin-top--lg"},a.createElement(N.A,{previous:t.navigation.previous,next:t.navigation.next})))}function V(e){return a.createElement(a.Fragment,null,a.createElement(I,e),a.createElement(C,e))}},7719:(e,t,n)=>{n.d(t,{A:()=>s});var a=n(9668),r=n(6540),i=n(1312),l=n(9022);function s(e){const{previous:t,next:n}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&r.createElement(l.A,(0,a.A)({},t,{subLabel:r.createElement(i.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&r.createElement(l.A,(0,a.A)({},n,{subLabel:r.createElement(i.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4267:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(6540),r=n(53),i=n(1312),l=n(7559),s=n(2252);function c(e){let{className:t}=e;const n=(0,s.r)();return n.badge?a.createElement("span",{className:(0,r.A)(t,l.G.docs.docVersionBadge,"badge badge--secondary")},a.createElement(i.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},1878:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(6540),r=n(53),i=n(4586),l=n(5489),s=n(1312),c=n(4070),o=n(7559),m=n(5597),d=n(2252);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(s.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(s.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function b(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function h(e){let{versionLabel:t,to:n,onClick:r}=e;return a.createElement(s.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(l.A,{to:n,onClick:r},a.createElement(s.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,i.A)(),{pluginId:s}=(0,c.vT)({failfast:!0}),{savePreferredVersionName:d}=(0,m.g1)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.HW)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return a.createElement("div",{className:(0,r.A)(t,o.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(b,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(h,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const n=(0,d.r)();return n.banner?a.createElement(v,{className:t,versionMetadata:n}):null}},1107:(e,t,n)=>{n.d(t,{A:()=>m});var a=n(9668),r=n(6540),i=n(53),l=n(1312),s=n(6342);const c="anchorWithStickyNavbar_LWe7",o="anchorWithHideOnScrollNavbar_WYt5";function m(e){let{as:t,id:n,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.p)();return"h1"!==t&&n?r.createElement(t,(0,a.A)({},m,{className:(0,i.A)("anchor",d?o:c),id:n}),m.children,r.createElement("a",{className:"hash-link",href:`#${n}`,title:(0,l.T)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):r.createElement(t,(0,a.A)({},m,{id:void 0}))}},9022:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(6540),r=n(53),i=n(5489);function l(e){const{permalink:t,title:n,subLabel:l,isNext:s}=e;return a.createElement(i.A,{className:(0,r.A)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&a.createElement("div",{className:"pagination-nav__sublabel"},l),a.createElement("div",{className:"pagination-nav__label"},n))}}}]); \ No newline at end of file diff --git a/assets/js/1553.1dc2fbc2.js b/assets/js/1553.1dc2fbc2.js new file mode 100644 index 0000000..e784b4e --- /dev/null +++ b/assets/js/1553.1dc2fbc2.js @@ -0,0 +1 @@ +(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1553],{5680:(e,t,n)=>{"use strict";n.d(t,{xA:()=>u,yg:()=>f});var o=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),i=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=i(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,c=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=i(n),d=r,f=p["".concat(l,".").concat(d)]||p[d]||m[d]||c;return n?o.createElement(f,a(a({ref:t},u),{},{components:n})):o.createElement(f,a({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,a=new Array(c);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,a[1]=s;for(var i=2;i{"use strict";n.d(t,{A:()=>q});var o=n(9668),r=n(6540),c=n(2303),a=n(53),s=n(5293),l=n(6342);function i(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,s.G)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}var u=n(7559),p=n(8426),m=n.n(p);const d=/title=(?["'])(?.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,y={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function g(e,t){const n=e.map((e=>{const{start:n,end:o}=y[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${o})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function h(e,t){let n=e.replace(/\n$/,"");const{language:o,magicComments:r,metastring:c}=t;if(c&&f.test(c)){const e=c.match(f).groups.range;if(0===r.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=r[0].className,o=m()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(o),code:n}}if(void 0===o)return{lineClassNames:{},code:n};const a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return g(["js","jsBlock"],t);case"jsx":case"tsx":return g(["js","jsBlock","jsx"],t);case"html":return g(["js","jsBlock","html"],t);case"python":case"py":case"bash":return g(["bash"],t);case"markdown":case"md":return g(["html","jsx","bash"],t);default:return g(Object.keys(y),t)}}(o,r),s=n.split("\n"),l=Object.fromEntries(r.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(r.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),u=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),p=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let m=0;m<s.length;){const e=s[m].match(a);if(!e){m+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?l[i[t]].range+=`${m},`:u[t]?l[u[t]].start=m:p[t]&&(l[p[t]].range+=`${l[p[t]].start}-${m-1},`),s.splice(m,1)}n=s.join("\n");const d={};return Object.entries(l).forEach((e=>{let[t,{range:n}]=e;m()(n).forEach((e=>{d[e]??=[],d[e].push(t)}))})),{lineClassNames:d,code:n}}const b="codeBlockContainer_Ckt0";function v(e){let{as:t,...n}=e;const c=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[o,r]=e;const c=t[o];c&&"string"==typeof r&&(n[c]=r)})),n}(i());return r.createElement(t,(0,o.A)({},n,{style:c,className:(0,a.A)(n.className,b,u.G.common.codeBlock)}))}const k={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function E(e){let{children:t,className:n}=e;return r.createElement(v,{as:"pre",tabIndex:0,className:(0,a.A)(k.codeBlockStandalone,"thin-scrollbar",n)},r.createElement("code",{className:k.codeBlockLines},t))}var N=n(9532);const B={attributes:!0,characterData:!0,childList:!0,subtree:!0};function j(e,t){const[n,o]=(0,r.useState)(),c=(0,r.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,r.useEffect)((()=>{c()}),[c]),function(e,t,n){void 0===n&&(n=B);const o=(0,N._q)(t),c=(0,N.Be)(n);(0,r.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,c),()=>t.disconnect()}),[e,o,c])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),c())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const w={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var C={Prism:n(1258).A,theme:w};function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(){return T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},T.apply(this,arguments)}var L=/\r\n|\r|\n/,A=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},x=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},P=function(e,t){var n=e.plain,o=Object.create(null),r=e.styles.reduce((function(e,n){var o=n.languages,r=n.style;return o&&!o.includes(t)||n.types.forEach((function(t){var n=T({},e[t],r);e[t]=n})),e}),o);return r.root=n,r.plain=T({},n,{backgroundColor:null}),r};function S(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}const _=function(e){function t(){for(var t=this,n=[],o=arguments.length;o--;)n[o]=arguments[o];e.apply(this,n),O(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?P(e.theme,e.language):void 0;return t.themeDict=n})),O(this,"getLineProps",(function(e){var n=e.key,o=e.className,r=e.style,c=T({},S(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),a=t.getThemeDict(t.props);return void 0!==a&&(c.style=a.plain),void 0!==r&&(c.style=void 0!==c.style?T({},c.style,r):r),void 0!==n&&(c.key=n),o&&(c.className+=" "+o),c})),O(this,"getStyleForToken",(function(e){var n=e.types,o=e.empty,r=n.length,c=t.getThemeDict(t.props);if(void 0!==c){if(1===r&&"plain"===n[0])return o?{display:"inline-block"}:void 0;if(1===r&&!o)return c[n[0]];var a=o?{display:"inline-block"}:{},s=n.map((function(e){return c[e]}));return Object.assign.apply(Object,[a].concat(s))}})),O(this,"getTokenProps",(function(e){var n=e.key,o=e.className,r=e.style,c=e.token,a=T({},S(e,["key","className","style","token"]),{className:"token "+c.types.join(" "),children:c.content,style:t.getStyleForToken(c),key:void 0});return void 0!==r&&(a.style=void 0!==a.style?T({},a.style,r):r),void 0!==n&&(a.key=n),o&&(a.className+=" "+o),a})),O(this,"tokenize",(function(e,t,n,o){var r={code:t,grammar:n,language:o,tokens:[]};e.hooks.run("before-tokenize",r);var c=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),c}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,o=e.code,r=e.children,c=this.getThemeDict(this.props),a=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],o=[0],r=[e.length],c=0,a=0,s=[],l=[s];a>-1;){for(;(c=o[a]++)<r[a];){var i=void 0,u=t[a],p=n[a][c];if("string"==typeof p?(u=a>0?u:["plain"],i=p):(u=x(u,p.type),p.alias&&(u=x(u,p.alias)),i=p.content),"string"==typeof i){var m=i.split(L),d=m.length;s.push({types:u,content:m[0]});for(var f=1;f<d;f++)A(s),l.push(s=[]),s.push({types:u,content:m[f]})}else a++,t.push(u),n.push(i),o.push(0),r.push(i.length)}a--,t.pop(),n.pop(),o.pop(),r.pop()}return A(s),l}(void 0!==a?this.tokenize(t,o,a,n):[o]),className:"prism-code language-"+n,style:void 0!==c?c.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(r.Component),D="codeLine_lJS_",I="codeLineNumber_Tfdd",$="codeLineContent_feaV";function H(e){let{line:t,classNames:n,showLineNumbers:c,getLineProps:s,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const i=s({line:t,className:(0,a.A)(n,c&&D)}),u=t.map(((e,t)=>r.createElement("span",(0,o.A)({key:t},l({token:e,key:t})))));return r.createElement("span",i,c?r.createElement(r.Fragment,null,r.createElement("span",{className:I}),r.createElement("span",{className:$},u)):u,r.createElement("br",null))}var M=n(1312);const z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function V(e){let{code:t,className:n}=e;const[o,c]=(0,r.useState)(!1),s=(0,r.useRef)(void 0),l=(0,r.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;const o=document.createElement("textarea"),r=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";const c=document.getSelection();let a=!1;c.rangeCount>0&&(a=c.getRangeAt(0)),n.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;let s=!1;try{s=document.execCommand("copy")}catch{}o.remove(),a&&(c.removeAllRanges(),c.addRange(a)),r&&r.focus()}(t),c(!0),s.current=window.setTimeout((()=>{c(!1)}),1e3)}),[t]);return(0,r.useEffect)((()=>()=>window.clearTimeout(s.current)),[]),r.createElement("button",{type:"button","aria-label":o?(0,M.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,M.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,M.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.A)("clean-btn",n,z.copyButton,o&&z.copyButtonCopied),onClick:l},r.createElement("span",{className:z.copyButtonIcons,"aria-hidden":"true"},r.createElement("svg",{className:z.copyButtonIcon,viewBox:"0 0 24 24"},r.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})),r.createElement("svg",{className:z.copyButtonSuccessIcon,viewBox:"0 0 24 24"},r.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}const W="wordWrapButtonIcon_Bwma",R="wordWrapButtonEnabled_EoeP";function F(e){let{className:t,onClick:n,isEnabled:o}=e;const c=(0,M.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return r.createElement("button",{type:"button",onClick:n,className:(0,a.A)("clean-btn",t,o&&R),"aria-label":c,title:c},r.createElement("svg",{className:W,viewBox:"0 0 24 24","aria-hidden":"true"},r.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})))}function G(e){let{children:t,className:n="",metastring:c,title:s,showLineNumbers:u,language:p}=e;const{prism:{defaultLanguage:m,magicComments:f}}=(0,l.p)(),y=p??n.split(" ").find((e=>e.startsWith("language-")))?.replace(/language-/,"")??m;const g=i(),b=function(){const[e,t]=(0,r.useState)(!1),[n,o]=(0,r.useState)(!1),c=(0,r.useRef)(null),a=(0,r.useCallback)((()=>{const n=c.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[c,e]),s=(0,r.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=c.current,n=e>t||c.current.querySelector("code").hasAttribute("style");o(n)}),[c]);return j(c,s),(0,r.useEffect)((()=>{s()}),[e,s]),(0,r.useEffect)((()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)})),[s]),{codeBlockRef:c,isEnabled:e,isCodeScrollable:n,toggle:a}}(),E=function(e){return e?.match(d)?.groups.title??""}(c)||s,{lineClassNames:N,code:B}=h(t,{metastring:c,language:y,magicComments:f}),w=u??function(e){return Boolean(e?.includes("showLineNumbers"))}(c);return r.createElement(v,{as:"div",className:(0,a.A)(n,y&&!n.includes(`language-${y}`)&&`language-${y}`)},E&&r.createElement("div",{className:k.codeBlockTitle},E),r.createElement("div",{className:k.codeBlockContent},r.createElement(_,(0,o.A)({},C,{theme:g,code:B,language:y??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:c}=e;return r.createElement("pre",{tabIndex:0,ref:b.codeBlockRef,className:(0,a.A)(t,k.codeBlock,"thin-scrollbar")},r.createElement("code",{className:(0,a.A)(k.codeBlockLines,w&&k.codeBlockLinesWithNumbering)},n.map(((e,t)=>r.createElement(H,{key:t,line:e,getLineProps:o,getTokenProps:c,classNames:N[t],showLineNumbers:w})))))})),r.createElement("div",{className:k.buttonGroup},(b.isEnabled||b.isCodeScrollable)&&r.createElement(F,{className:k.codeButton,onClick:()=>b.toggle(),isEnabled:b.isEnabled}),r.createElement(V,{className:k.codeButton,code:B}))))}function q(e){let{children:t,...n}=e;const a=(0,c.A)(),s=function(e){return r.Children.toArray(e).some((e=>(0,r.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof s?G:E;return r.createElement(l,(0,o.A)({key:String(a)},n),s)}},8426:(e,t)=>{function n(e){let t,n=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,r,c]=t;if(o&&c){o=parseInt(o),c=parseInt(c);const e=o<c?1:-1;"-"!==r&&".."!==r&&"\u2025"!==r||(c+=e);for(let t=o;t!==c;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/1774.b5d76016.js b/assets/js/1774.b5d76016.js new file mode 100644 index 0000000..d940934 --- /dev/null +++ b/assets/js/1774.b5d76016.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1774],{1774:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(6540),l=n(1312),o=n(9024),r=n(5933);function c(){return a.createElement(a.Fragment,null,a.createElement(o.be,{title:(0,l.T)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.A,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.A,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/17896441.26d09fce.js b/assets/js/17896441.26d09fce.js new file mode 100644 index 0000000..f07dde4 --- /dev/null +++ b/assets/js/17896441.26d09fce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8401],{7211:(e,t,n)=>{n.d(t,{A:()=>f});var a=n(9668),l=n(6540),r=n(53),s=n(7559),o=n(4142),c=n(9169),i=n(5489),d=n(6025),m=n(1312);function u(e){return l.createElement("svg",(0,a.A)({viewBox:"0 0 24 24"},e),l.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function b(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?l.createElement("span",{className:r,itemProp:"name"},t):n?l.createElement(i.A,{className:r,href:n,itemProp:"item"},l.createElement("span",{itemProp:"name"},t)):l.createElement("span",{className:r},t)}function h(e){let{children:t,active:n,index:s,addMicrodata:o}=e;return l.createElement("li",(0,a.A)({},o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.A)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,l.createElement("meta",{itemProp:"position",content:String(s+1)}))}function p(){const e=(0,d.A)("/");return l.createElement("li",{className:"breadcrumbs__item"},l.createElement(i.A,{"aria-label":(0,m.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,r.A)("breadcrumbs__link",v.breadcrumbsItemLink),href:e},l.createElement(u,{className:v.breadcrumbHomeIcon})))}function f(){const e=(0,o.OF)(),t=(0,c.Dt)();return e?l.createElement("nav",{className:(0,r.A)(s.G.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},l.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&l.createElement(p,null),e.map(((t,n)=>{const a=n===e.length-1;return l.createElement(h,{key:n,active:a,index:n,addMicrodata:!!t.href},l.createElement(b,{href:t.href,isLast:a},t.label))})))):null}},4799:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Z});var a=n(6540),l=n(9024),r=n(9532);const s=a.createContext(null);function o(e){let{children:t,content:n}=e;const l=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(s.Provider,{value:l},t)}function c(){const e=(0,a.useContext)(s);if(null===e)throw new r.dV("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=c();return a.createElement(l.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(53),m=n(4581),u=n(7719);function v(){const{metadata:e}=c();return a.createElement(u.A,{previous:e.previous,next:e.next})}var b=n(1878),h=n(4267),p=n(7559),f=n(1312);function E(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(f.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function g(e){let{lastUpdatedBy:t}=e;return a.createElement(f.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function A(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:l}=e;return a.createElement("span",{className:p.G.common.lastUpdated},a.createElement(f.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(E,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:l?a.createElement(g,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var L=n(1943),N=n(2053);const _="lastUpdated_vwxv";function C(e){return a.createElement("div",{className:(0,d.A)(p.G.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(N.A,e)))}function T(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.A)(p.G.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(L.A,{editUrl:t})),a.createElement("div",{className:(0,d.A)("col",_)},(n||l)&&a.createElement(A,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function k(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:s}=e,o=s.length>0,i=!!(t||n||r);return o||i?a.createElement("footer",{className:(0,d.A)(p.G.docs.docFooter,"docusaurus-mt-lg")},o&&a.createElement(C,{tags:s}),i&&a.createElement(T,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var H=n(1422),x=n(5195),U=n(9668);const y="tocCollapsibleButton_TO0P",w="tocCollapsibleButtonExpanded_MG3E";function M(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,U.A)({type:"button"},n,{className:(0,d.A)("clean-btn",y,!t&&w,n.className)}),a.createElement(f.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const B="tocCollapsible_ETCw",I="tocCollapsibleContent_vkbj",O="tocCollapsibleExpanded_sAul";function V(e){let{toc:t,className:n,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:s,toggleCollapsed:o}=(0,H.u)({initialState:!0});return a.createElement("div",{className:(0,d.A)(B,!s&&O,n)},a.createElement(M,{collapsed:s,onClick:o}),a.createElement(H.N,{lazy:!0,className:I,collapsed:s},a.createElement(x.A,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const S="tocMobile_ITEo";function D(){const{toc:e,frontMatter:t}=c();return a.createElement(V,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.A)(p.G.docs.docTocMobile,S)})}var G=n(7763);function P(){const{toc:e,frontMatter:t}=c();return a.createElement(G.A,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:p.G.docs.docTocDesktop})}var R=n(1107),F=n(6886);function z(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.A)(p.G.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(R.A,{as:"h1"},n)),a.createElement(F.A,null,t))}var j=n(7211);const q="docItemContainer_Djhp",$="docItemCol_VOVn";function W(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.l)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(D,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(P,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.A)("col",!n.hidden&&$)},a.createElement(b.A,null),a.createElement("div",{className:q},a.createElement("article",null,a.createElement(j.A,null),a.createElement(h.A,null),n.mobile,a.createElement(z,null,t),a.createElement(k,null)),a.createElement(v,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function Z(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(o,{content:e.content},a.createElement(l.e3,{className:t},a.createElement(i,null),a.createElement(W,null,a.createElement(n,null))))}},7719:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(9668),l=n(6540),r=n(1312),s=n(9022);function o(e){const{previous:t,next:n}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&l.createElement(s.A,(0,a.A)({},t,{subLabel:l.createElement(r.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&l.createElement(s.A,(0,a.A)({},n,{subLabel:l.createElement(r.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4267:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(6540),l=n(53),r=n(1312),s=n(7559),o=n(2252);function c(e){let{className:t}=e;const n=(0,o.r)();return n.badge?a.createElement("span",{className:(0,l.A)(t,s.G.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},1878:(e,t,n)=>{n.d(t,{A:()=>p});var a=n(6540),l=n(53),r=n(4586),s=n(5489),o=n(1312),c=n(4070),i=n(7559),d=n(5597),m=n(2252);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(o.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(o.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function v(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function b(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(o.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(s.A,{to:n,onClick:l},a.createElement(o.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,r.A)(),{pluginId:o}=(0,c.vT)({failfast:!0}),{savePreferredVersionName:m}=(0,d.g1)(o),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,c.HW)(o),p=u??(f=h).docs.find((e=>e.id===f.mainDocId));var f;return a.createElement("div",{className:(0,l.A)(t,i.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(v,{siteTitle:s,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(b,{versionLabel:h.label,to:p.path,onClick:()=>m(h.name)})))}function p(e){let{className:t}=e;const n=(0,m.r)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},7763:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(9668),l=n(6540),r=n(53),s=n(5195);const o="tableOfContents_bqdL";function c(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.A)(o,"thin-scrollbar",t)},l.createElement(s.A,(0,a.A)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},5195:(e,t,n)=>{n.d(t,{A:()=>b});var a=n(9668),l=n(6540),r=n(6342);function s(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function o(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=o({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function c(e){const t=e.getBoundingClientRect();return t.top===t.bottom?c(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>c(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(c(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function d(){const e=(0,l.useRef)(0),{navbar:{hideOnScroll:t}}=(0,r.p)();return(0,l.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,l.useRef)(void 0),n=d();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:s}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),o=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:s}),c=i(o,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const v=l.memo(u);function b(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:i,minHeadingLevel:d,maxHeadingLevel:u,...b}=e;const h=(0,r.p)(),p=d??h.tableOfContents.minHeadingLevel,f=u??h.tableOfContents.maxHeadingLevel,E=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>o({toc:s(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:f});return m((0,l.useMemo)((()=>{if(c&&i)return{linkClassName:c,linkActiveClassName:i,minHeadingLevel:p,maxHeadingLevel:f}}),[c,i,p,f])),l.createElement(v,(0,a.A)({toc:E,className:n,linkClassName:c},b))}}}]); \ No newline at end of file diff --git a/assets/js/19152fe9.7b304325.js b/assets/js/19152fe9.7b304325.js new file mode 100644 index 0000000..2692d5d --- /dev/null +++ b/assets/js/19152fe9.7b304325.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4797],{5680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),u=s(t),f=o,y=u["".concat(p,".").concat(f)]||u[f]||m[f]||i;return t?r.createElement(y,c(c({ref:n},l),{},{components:t})):r.createElement(y,c({ref:n},l))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=f;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var s=2;s<i;s++)c[s]=t[s];return r.createElement.apply(null,c)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},6490:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>s});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:1},c="Intro",a={unversionedId:"combine/intro",id:"combine/intro",title:"Intro",description:"With rnhc you can combine your components or screens in a specific path.",source:"@site/docs/combine/intro.md",sourceDirName:"combine",slug:"/combine/intro",permalink:"/react-native-help-create/docs/combine/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Combine",permalink:"/react-native-help-create/docs/category/combine"},next:{title:"Combine Components",permalink:"/react-native-help-create/docs/combine/combine-components"}},p={},s=[],l={toc:s};function u(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can combine your components or screens in a specific path."),(0,o.yg)("p",null,"The following points shows how to user the ",(0,o.yg)("inlineCode",{parentName:"p"},"combine")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.b8777e2f.js b/assets/js/1a4e3797.b8777e2f.js new file mode 100644 index 0000000..fb2d196 --- /dev/null +++ b/assets/js/1a4e3797.b8777e2f.js @@ -0,0 +1,2 @@ +/*! For license information please see 1a4e3797.b8777e2f.js.LICENSE.txt */ +(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2138],{2733:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,a,s,c,u,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(a=this._events[e]))return!1;if(r(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),a.apply(this,c)}else if(n(a))for(c=Array.prototype.slice.call(arguments,1),s=(o=a.slice()).length,u=0;u<s;u++)o[u].apply(this,c);return!0},t.prototype.addListener=function(e,a){var s;if(!r(a))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(a.listener)?a.listener:a),this._events[e]?n(this._events[e])?this._events[e].push(a):this._events[e]=[this._events[e],a]:this._events[e]=a,n(this._events[e])&&!this._events[e].warned&&(s=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&s>0&&this._events[e].length>s&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,a,s,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(i=this._events[e]).length,a=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=s;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){a=c;break}if(a<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},4103:(e,t,r)=>{"use strict";var n=r(6571),i=r(3371),a=r(7691);function s(e,t,r){return new n(e,t,r)}s.version=r(6938),s.AlgoliaSearchHelper=n,s.SearchParameters=i,s.SearchResults=a,e.exports=s},6732:(e,t,r)=>{"use strict";var n=r(2733);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(3014)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},1673:(e,t,r)=>{"use strict";var n=r(9110),i=r(1383),a=r(317),s={addRefinement:function(e,t,r){if(s.isRefined(e,t,r))return e;var i=""+r,a=e[t]?e[t].concat(i):[i],c={};return c[t]=a,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return s.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return s.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return s.isRefined(e,t,r)?s.removeRefinement(e,t,r):s.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return a(e)?{}:e;if("string"==typeof t)return i(e,[t]);if("function"==typeof t){var n=!1,s=Object.keys(e).reduce((function(i,a){var s=e[a]||[],c=s.filter((function(e){return!t(e,a,r)}));return c.length!==s.length&&(n=!0),i[a]=c,i}),{});return n?s:e}},isRefined:function(e,t,r){var n=!!e[t]&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=s},3371:(e,t,r)=>{"use strict";var n=r(4728),i=r(9110),a=r(4843),s=r(849),c=r(7507),u=r(1383),o=r(317),h=r(2208),f=r(1673);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return n({},e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&o(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):o(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var i=c(r);if(this.isNumericRefined(e,t,i))return this;var a=n({},this.numericRefinements);return a[e]=n({},a[e]),a[e][t]?(a[e][t]=a[e][t].slice(),a[e][t].push(i)):a[e][t]=[i],this.setQueryParameters({numericRefinements:a})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){return void 0!==r?this.isNumericRefined(e,t,r)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(n,i){return i===e&&n.op===t&&l(n.val,c(r))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return o(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return u(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var a=r[i],s={};return a=a||{},Object.keys(a).forEach((function(r){var n=a[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),s[r]=c})),n[i]=s,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),n={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?n[e]=[]:n[e]=[t.slice(0,t.lastIndexOf(r))]:n[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},n,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:i({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return!!this.numericRefinements[e];var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var i,a,u=c(r),o=void 0!==(i=this.numericRefinements[e][t],a=u,s(i,(function(e){return l(e,a)})));return n&&o},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=a(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){var e=this;return a(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0})))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),a=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?u(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(a)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return s(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},6673:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var s=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[s.name]&&e.hierarchicalFacetsRefinements[s.name][0]||"",h=e._getHierarchicalFacetSeparator(s),f=e._getHierarchicalRootPath(s),l=e._getHierarchicalShowParentLevel(s),m=a(e._getHierarchicalFacetSortBy(s)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,a,s){return function(o,h,f){var l=o;if(f>0){var m=0;for(l=o;m<f;){var d=l&&Array.isArray(l.data)?l.data:[];l=i(d,(function(e){return e.isRefined})),m++}}if(l){var p=Object.keys(h.data).map((function(e){return[e,h.data[e]]})).filter((function(e){return function(e,t,r,n,i,a){if(i&&(0!==e.indexOf(i)||i===e))return!1;return!i&&-1===e.indexOf(n)||i&&e.split(n).length-i.split(n).length==1||-1===e.indexOf(n)&&-1===r.indexOf(n)||0===r.indexOf(e)||0===e.indexOf(t+n)&&(a||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,a)}));l.data=n(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var a=t.split(r);return{name:a[a.length-1].trim(),path:t,escapedValue:c(t),count:e,isRefined:n===t||0===n.indexOf(t+r),exhaustive:i,data:null}}(e[1],r,t,u(s),h.exhaustive)})),e[0],e[1])}return o}}(m,h,f,l,o),v=t;return f&&(v=t.slice(f.split(h).length)),v.reduce(p,{name:e.hierarchicalFacets[r].name,count:null,isRefined:!0,path:null,escapedValue:null,exhaustive:d,data:null})}};var n=r(8601),i=r(849),a=r(7577),s=r(2909),c=s.escapeFacetValue,u=s.unescapeFacetValue},7691:(e,t,r)=>{"use strict";var n=r(4728),i=r(9110),a=r(8601),s=r(8965),c=r(849),u=r(3917),o=r(7577),h=r(2909),f=h.escapeFacetValue,l=h.unescapeFacetValue,m=r(6673);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function v(e,t,r){var a=t[0];this._rawResults=t;var o=this;Object.keys(a).forEach((function(e){o[e]=a[e]})),Object.keys(r||{}).forEach((function(e){o[e]=r[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var h=e.getRefinedDisjunctiveFacets(),f=d(e.facets),v=d(e.disjunctiveFacets),g=1,y=a.facets||{};Object.keys(y).forEach((function(t){var r,n,i=y[t],s=(r=e.hierarchicalFacets,n=t,c(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(s){var h=s.attributes.indexOf(t),l=u(e.hierarchicalFacets,(function(e){return e.name===s.name}));o.hierarchicalFacets[l][h]={attribute:t,data:i,exhaustive:a.exhaustiveFacetsCount}}else{var m,d=-1!==e.disjunctiveFacets.indexOf(t),g=-1!==e.facets.indexOf(t);d&&(m=v[t],o.disjunctiveFacets[m]={name:t,data:i,exhaustive:a.exhaustiveFacetsCount},p(o.disjunctiveFacets[m],a.facets_stats,t)),g&&(m=f[t],o.facets[m]={name:t,data:i,exhaustive:a.exhaustiveFacetsCount},p(o.facets[m],a.facets_stats,t))}})),this.hierarchicalFacets=s(this.hierarchicalFacets),h.forEach((function(r){var s=t[g],c=s&&s.facets?s.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(c).forEach((function(t){var r,f=c[t];if(h){r=u(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=u(o.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;o.hierarchicalFacets[r][m].data=n({},o.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=a.facets&&a.facets[t]||{};o.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:s.exhaustiveFacetsCount},p(o.disjunctiveFacets[r],s.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!o.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(o.disjunctiveFacets[r].data[n]=0)}))}})),g++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),a=e._getHierarchicalFacetSeparator(n),s=e.getHierarchicalRefinement(r);0===s.length||s[0].split(a).length<2||t.slice(g).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var c=r[t],h=u(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=u(o.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(s.length>0){var m=s[0].split(a)[0];l[m]=o.hierarchicalFacets[h][f].data[m]}o.hierarchicalFacets[h][f].data=i(l,c,o.hierarchicalFacets[h][f].data)}})),g++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=f[t];o.facets[n]={name:t,data:a.facets[t],exhaustive:a.exhaustiveFacetsCount},r.forEach((function(e){o.facets[n]=o.facets[n]||{name:t},o.facets[n].data=o.facets[n].data||{},o.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=s(this.facets),this.disjunctiveFacets=s(this.disjunctiveFacets),this._state=e}function g(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var a=t.data.map((function(t){return g(e,t,r,n+1)})),s=e(a,r[n]);return i({data:s},t)}function y(e,t){var r=c(e,(function(e){return e.name===t}));return r&&r.stats}function R(e,t,r,n,i){var a=c(i,(function(e){return e.name===r})),s=a&&a.data&&a.data[n]?a.data[n]:0,u=a&&a.exhaustive||!1;return{type:t,attributeName:r,name:n,count:s,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return c(this.facets,t)||c(this.disjunctiveFacets,t)||c(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=function(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=c(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=c(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t))return c(e.hierarchicalFacets,r)}(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),u=this;if(Array.isArray(r))n=[e];else n=u._state.getHierarchicalFacetByName(r.name).attributes;return g((function(e,t){if(s.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(u,t);if(Boolean(r))return function(e,t){var r=[],n=[],i=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==i[t]?r[i[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var s,c=t.sortRemainingBy;return"hidden"===c?r:(s="alpha"===c?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(a(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=o(s.sortBy,v.DEFAULT_SORT);return a(e,n[0],n[1])}if("function"==typeof s.sortBy)return function(e,t){return t.sort(e)}(s.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},v.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?y(this.facets,e):this._state.isDisjunctiveFacet(e)?y(this.disjunctiveFacets,e):void 0},v.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(R(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(R(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(R(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),a=e._getHierarchicalFacetSeparator(i),s=r.split(a),u=c(n,(function(e){return e.name===t})),o=s.reduce((function(e,t){var r=e&&c(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),u),h=o&&o.count||0,f=o&&o.exhaustive||!1,l=o&&o.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=v},6571:(e,t,r)=>{"use strict";var n=r(3371),i=r(7691),a=r(6732),s=r(9228),c=r(2733),u=r(3014),o=r(317),h=r(1383),f=r(4728),l=r(6938),m=r(2909).escapeFacetValue;function d(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.setClient(e);var i=r||{};i.index=t,this.state=n.make(i),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0}function p(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function v(){return this.state.page}u(d,c),d.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},d.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},d.prototype.getQuery=function(){var e=this.state;return s._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=s._getQueries(r.index,r),a=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),{content:new i(r,e.results),state:r,_originalResponse:e}}),(function(e){throw a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),t(null,new i(r,e.results),r)})).catch((function(e){a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=f({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:h(s._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),a="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(a);var c=this.client.initIndex(n.index);if("function"!=typeof c.findAnswers)throw new Error(a);return c.findAnswers(n.query,e.queryLanguages,i)},d.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues,a="function"==typeof this.client.initIndex;if(!i&&!a&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),u=c.isDisjunctiveFacet(e),o=s.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var h,f=this;return i?h=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?h=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,h=this.client.search([{type:"facet",facet:e,indexName:c.index,params:o}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),h.then((function(t){return f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=m(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),e}))},d.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},d.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},d.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},d.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},d.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},d.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},d.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},d.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},d.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},d.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},d.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},d.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},d.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},d.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},d.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},d.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},d.prototype.setCurrentPage=p,d.prototype.setPage=p,d.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},d.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},d.prototype.setState=function(e){return this._change({state:n.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new n(e),this},d.prototype.hasRefinements=function(e){return!!o(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},d.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},d.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},d.prototype.hasTag=function(e){return this.state.isTagRefined(e)},d.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},d.prototype.getIndex=function(){return this.state.index},d.prototype.getCurrentPage=v,d.prototype.getPage=v,d.prototype.getTags=function(){return this.state.tagRefinements},d.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},d.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},d.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},d.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=s._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=s._getQueries(n.index,n);return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),a=Array.prototype.concat.apply(n,i),c=this._queryId++;this._currentNbQueries++;try{this.client.search(a).then(this._dispatchAlgoliaResponse.bind(this,r,c)).catch(this._dispatchAlgoliaError.bind(this,c))}catch(u){this.emit("error",{error:u})}},d.prototype._dispatchAlgoliaResponse=function(e,t,r){if(!(t<this._lastQueryIdReceived)){this._currentNbQueries-=t-this._lastQueryIdReceived,this._lastQueryIdReceived=t,0===this._currentNbQueries&&this.emit("searchQueueEmpty");var n=r.results.slice();e.forEach((function(e){var t=e.state,r=e.queriesCount,a=e.helper,s=n.splice(0,r),c=a.lastResults=new i(t,s);a.emit("result",{results:c,state:t})}))}},d.prototype._dispatchAlgoliaError=function(e,t){e<this._lastQueryIdReceived||(this._currentNbQueries-=e-this._lastQueryIdReceived,this._lastQueryIdReceived=e,this.emit("error",{error:t}),0===this._currentNbQueries&&this.emit("searchQueueEmpty"))},d.prototype.containsRefinement=function(e,t,r,n){return e||0!==t.length||0!==r.length||0!==n.length},d.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},d.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},d.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},d.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new a(this,e);return this.derivedHelpers.push(t),t},d.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},d.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=d},8965:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},9110:e=>{"use strict";e.exports=function(){var e=Array.prototype.slice.call(arguments);return e.reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},2909:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},849:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r<e.length;r++)if(t(e[r]))return e[r]}},3917:e=>{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r<e.length;r++)if(t(e[r]))return r;return-1}},7577:(e,t,r)=>{"use strict";var n=r(849);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),a=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!a?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(a[0]),e[1].push(a[1]),e)}),[[],[]])}},3014:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},4843:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},4728:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i){var a=n[i],s=e[i];void 0!==s&&void 0===a||(t(s)&&t(a)?e[i]=r(s,a):e[i]="object"==typeof(c=a)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n<i;n++){var a=arguments[n];t(a)&&r(e,a)}return e}},317:e=>{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},1383:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},8601:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,a=null===t;if(!a&&e>t||n&&i||!r)return 1;if(!n&&e<t||a&&r||!i)return-1}return 0}e.exports=function(e,r,n){if(!Array.isArray(e))return[];Array.isArray(n)||(n=[]);var i=e.map((function(e,t){return{criteria:r.map((function(t){return e[t]})),index:t,value:e}}));return i.sort((function(e,r){for(var i=-1;++i<e.criteria.length;){var a=t(e.criteria[i],r.criteria[i]);if(a)return i>=n.length?a:"desc"===n[i]?-a:a}return e.index-r.index})),i.map((function(e){return e.value}))}},7507:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},9228:(e,t,r)=>{"use strict";var n=r(4728);function i(e){return Object.keys(e).sort((function(e,t){return e.localeCompare(t)})).reduce((function(t,r){return t[r]=e[r],t}),{})}var a={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:a._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:a._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),s=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(s.length>0&&s[0].split(c).length>1){var u=s[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);u.forEach((function(n,s){var c=a._getDisjunctiveFacetSearchParams(t,n.attribute,0===s);function o(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!o(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||o(t)||e.push(t),e}),[]),f=u[s-1];c.facetFilters=s>0?h.concat(f.attribute+":"+f.value):h.length>0?h:void 0,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(a._getHitsHierarchicalFacetsAttributes(e)),r=a._getFacetFilters(e),s=a._getNumericFilters(e),c=a._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),s.length>0&&(u.numericFilters=s),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var s=a._getFacetFilters(e,t,r),c=a._getNumericFilters(e,t),u=a._getTagFilters(e),o={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};u.length>0&&(o.tagFilters=u);var h=e.getHierarchicalFacetByName(t);return o.facets=h?a._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),s.length>0&&(o.facetFilters=s),i(n({},e.getQueryParams(),o))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var a=i[e]||[];t!==n&&a.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).forEach((function(e){(i[e]||[]).forEach((function(t){n.push(e+":"+t)}))}));var a=e.facetsExcludes||{};Object.keys(a).forEach((function(e){(a[e]||[]).forEach((function(t){n.push(e+":-"+t)}))}));var s=e.disjunctiveFacetsRefinements||{};Object.keys(s).forEach((function(e){var r=s[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).forEach((function(i){var a=(c[i]||[])[0];if(void 0!==a){var s,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===a.indexOf(h)||!f&&!0===r||f&&f.split(h).length===a.split(h).length)return;f?(u=f.split(h).length-1,a=f):(u=a.split(h).length-2,a=a.slice(0,a.lastIndexOf(h))),s=o.attributes[u]}else u=a.split(h).length-1,s=o.attributes[u];s&&n.push([s+":"+a])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),a=n.split(i).length,s=r.attributes.slice(0,a+1);return t.concat(s)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),a=0;return i&&(a=i.split(n).length),[t.attributes[a]]}var s=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,s+1)},getSearchForFacetQuery:function(e,t,r,s){var c=s.isDisjunctiveFacet(e)?s.clearRefinements(e):s,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},a._getHitsSearchParams(c),u))}};e.exports=a},2208:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},6938:e=>{"use strict";e.exports="3.11.1"},3643:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,a=void 0;try{for(var s,c=e[Symbol.iterator]();!(n=(s=c.next()).done)&&(r.push(s.value),!t||r.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw a}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function s(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},a=function(){return JSON.parse(n().getItem(r)||"{}")};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r=JSON.stringify(e),n=a()[r];return Promise.all([n||t(),void 0!==n])})).then((function(e){var t=i(e,2),n=t[0],a=t[1];return Promise.all([n,a||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=a();return i[JSON.stringify(e)]=t,n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var s=n(),c=i&&i.miss||function(){return Promise.resolve()};return s.then((function(e){return c(e)})).then((function(){return s}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function o(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[i++])}))}var l={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function P(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function j(e,t,n,i){var s=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),u=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),o=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,a){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:w(s)};var m={data:c,headers:u,method:o,url:E(h,n.path,f),connectTimeout:a(l,e.timeouts.connect),responseTimeout:a(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return s.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",O(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,w(s))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return P(e.hostsCache,t).then((function(e){return m(a(e.statelessHosts).reverse(),e.getTimeout)}))}function _(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function E(e,t,r){var n=x(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function x(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function w(e){return e.map((function(e){return O(e)}))}function O(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var A=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,s=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:s,timeouts:c,userAgent:u,headers:e.headers,queryParameters:h,hosts:o.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(o([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},N=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},H=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},S=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:x(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},T=function(e){return function(t,i){return Promise.all(t.map((function(t){var a=t.params,s=a.facetName,c=a.facetQuery,u=n(a,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:k}}).searchForFacetValues(s,c,r(r({},i),u))})))}},Q=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},k=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,q=2,I=3;function V(e,t,n){var i,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=I,{debug:function(e,t){return D>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return q>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:u(),requestsCache:u({serializable:!1}),hostsCache:c({caches:[s({key:"".concat("4.13.1","-").concat(e)}),u()]}),userAgent:_("4.13.1").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return A(r(r(r({},a),n),{},{methods:{search:S,searchForFacetValues:T,multipleQueries:S,multipleSearchForFacetValues:T,customRequest:N,initIndex:function(e){return function(t){return H(e)(t,{methods:{search:C,searchForFacetValues:k,findAnswers:Q}})}}}}))}return V.version="4.13.1",V}()},5846:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6540),i=r(4586);const a=["zero","one","two","few","many","other"];function s(e){return a.filter((t=>e.includes(t)))}const c={locale:"en",pluralForms:s(["one","other"]),select:e=>1===e?"one":"other"};function u(){const{i18n:{currentLocale:e}}=(0,i.A)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:s(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),c}}),[e])}function o(){const e=u();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const i=r.select(t),a=r.pluralForms.indexOf(i);return n[Math.min(a,n.length-1)]}(r,t,e)}}},4604:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>q});var n=r(6540),i=r(53),a=r(3643),s=r.n(a),c=r(4103),u=r.n(c),o=r(5260),h=r(5489),f=r(8193),l=r(5846),m=r(1252),d=r(9532),p=r(9024),v=r(4255),g=r(481),y=r(4586),R=r(4070),F=r(1312),b=r(5933);const P="searchQueryInput_u2C7",j="searchVersionInput_m0Ui",_="searchResultsColumn_JPFH",E="algoliaLogo_rT1R",x="algoliaLogoPathFill_WdUC",w="searchResultItem_Tv2o",O="searchResultItemHeading_KbCB",A="searchResultItemPath_lhe1",N="searchResultItemSummary_AEaO",H="searchQueryColumn_RTkw",S="searchVersionColumn_ypXd",T="searchLogoColumn_rJIA",Q="loadingSpinner_XVxU",C="loader_vvXV";function k(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return n.createElement("div",{className:(0,i.A)("col","col--3","padding-left--none",S)},r.map((e=>{let[i,a]=e;const s=r.length>1?`${i}: `:"";return n.createElement("select",{key:i,onChange:e=>t.setSearchVersion(i,e.target.value),defaultValue:t.searchVersions[i],className:j},a.versions.map(((e,t)=>n.createElement("option",{key:t,label:`${s}${e.label}`,value:e.name}))))})))}function D(){const{siteConfig:{themeConfig:e},i18n:{currentLocale:t}}=(0,y.A)(),{algolia:{appId:r,apiKey:a,indexName:c,externalUrlRegex:p}}=e,j=function(){const{selectMessage:e}=(0,l.W)();return t=>e(t,(0,F.T)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),S=function(){const e=(0,R.Gy)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),{searchQuery:D,setSearchQuery:q}=(0,v.n)(),I={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[V,L]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return I;case"loading":return{...e,loading:!0};case"update":return D!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),I),B=s()(r,a),z=u()(B,c,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});z.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:a}}=e;if(""===t||!Array.isArray(r))return void L({type:"reset"});const s=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),c=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=new URL(t),a=Object.keys(r).map((e=>s(r[e].value)));return{title:a.pop(),url:(0,m.G)(p,i.href)?i.href:i.pathname+i.hash,summary:n.content?`${s(n.content.value)}...`:"",breadcrumbs:a}}));L({type:"update",value:{items:c,query:t,totalResults:i,totalPages:a,lastPage:n,hasMore:a>n+1,loading:!1}})}));const[M,J]=(0,n.useState)(null),W=(0,n.useRef)(0),U=(0,n.useRef)(f.A.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&W.current>r&&L({type:"advance"}),W.current=r}),{threshold:1})),$=()=>D?(0,F.T)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:D}):(0,F.T)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),K=(0,d._q)((function(e){void 0===e&&(e=0),z.addDisjunctiveFacetRefinement("docusaurus_tag","default"),z.addDisjunctiveFacetRefinement("language",t),Object.entries(S.searchVersions).forEach((e=>{let[t,r]=e;z.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),z.setQuery(D).setPage(e).search()}));return(0,n.useEffect)((()=>{if(!M)return;const e=U.current;return e?(e.observe(M),()=>e.unobserve(M)):()=>!0}),[M]),(0,n.useEffect)((()=>{L({type:"reset"}),D&&(L({type:"loading"}),setTimeout((()=>{K()}),300))}),[D,S.searchVersions,K]),(0,n.useEffect)((()=>{V.lastPage&&0!==V.lastPage&&K(V.lastPage)}),[K,V.lastPage]),n.createElement(b.A,null,n.createElement(o.A,null,n.createElement("title",null,(0,g.s)($())),n.createElement("meta",{property:"robots",content:"noindex, follow"})),n.createElement("div",{className:"container margin-vert--lg"},n.createElement("h1",null,$()),n.createElement("form",{className:"row",onSubmit:e=>e.preventDefault()},n.createElement("div",{className:(0,i.A)("col",H,{"col--9":S.versioningEnabled,"col--12":!S.versioningEnabled})},n.createElement("input",{type:"search",name:"q",className:P,placeholder:(0,F.T)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,F.T)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>q(e.target.value),value:D,autoComplete:"off",autoFocus:!0})),S.versioningEnabled&&n.createElement(k,{docsSearchVersionsHelpers:S})),n.createElement("div",{className:"row"},n.createElement("div",{className:(0,i.A)("col","col--8",_)},!!V.totalResults&&j(V.totalResults)),n.createElement("div",{className:(0,i.A)("col","col--4","text--right",T)},n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.algolia.com/","aria-label":(0,F.T)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"})},n.createElement("svg",{viewBox:"0 0 168 24",className:E},n.createElement("g",{fill:"none"},n.createElement("path",{className:x,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),n.createElement("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),n.createElement("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})))))),V.items.length>0?n.createElement("main",null,V.items.map(((e,t)=>{let{title:r,url:a,summary:s,breadcrumbs:c}=e;return n.createElement("article",{key:t,className:w},n.createElement("h2",{className:O},n.createElement(h.A,{to:a,dangerouslySetInnerHTML:{__html:r}})),c.length>0&&n.createElement("nav",{"aria-label":"breadcrumbs"},n.createElement("ul",{className:(0,i.A)("breadcrumbs",A)},c.map(((e,t)=>n.createElement("li",{key:t,className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}}))))),s&&n.createElement("p",{className:N,dangerouslySetInnerHTML:{__html:s}}))}))):[D&&!V.loading&&n.createElement("p",{key:"no-results"},n.createElement(F.A,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result"},"No results were found")),!!V.loading&&n.createElement("div",{key:"spinner",className:Q})],V.hasMore&&n.createElement("div",{className:C,ref:J},n.createElement(F.A,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results"},"Fetching new results..."))))}function q(){return n.createElement(p.e3,{className:"search-page-wrapper"},n.createElement(D,null))}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.b8777e2f.js.LICENSE.txt b/assets/js/1a4e3797.b8777e2f.js.LICENSE.txt new file mode 100644 index 0000000..3016b5c --- /dev/null +++ b/assets/js/1a4e3797.b8777e2f.js.LICENSE.txt @@ -0,0 +1 @@ +/*! algoliasearch-lite.umd.js | 4.13.1 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/assets/js/1be78505.d7cfe686.js b/assets/js/1be78505.d7cfe686.js new file mode 100644 index 0000000..81528fe --- /dev/null +++ b/assets/js/1be78505.d7cfe686.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1774,8714],{10:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ke});var a=n(6540),l=n(53),o=n(9024),r=n(7559),c=n(2967),i=n(4142),s=n(2252),d=n(6588),m=n(5933),u=n(1312),b=n(3104),p=n(5062);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.gk)();return(0,b.Mq)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.$)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.A)("clean-btn",r.G.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var g=n(2681),_=n(4581),v=n(6342),A=n(3465),C=n(9668);function k(e){return a.createElement("svg",(0,C.A)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function I(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.A)("button button--secondary button--outline",N),onClick:t},a.createElement(k,{className:S}))}var T=n(5041),y=n(9532);const x=Symbol("EmptyContext"),w=a.createContext(x);function M(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(w.Provider,{value:o},t)}var L=n(1422),B=n(9169),G=n(5489),F=n(2303);function P(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.T)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.p)(),f=function(e){const t=(0,F.A)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i._o)(e):void 0),[e,t])}(t),g=(0,i.w8)(t,o),_=(0,B.ys)(h,o),{collapsed:A,setCollapsed:k}=(0,L.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(w);if(e===x)throw new y.dV("DocSidebarItemsExpandedStateProvider");return e}(),I=function(e){void 0===e&&(e=!A),S(e?null:s),k(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,y.ZC)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:A,updateCollapsed:I}),(0,a.useEffect)((()=>{b&&null!=N&&N!==s&&E&&k(!0)}),[b,N,s,k,E]),a.createElement("li",{className:(0,l.A)(r.G.docs.docSidebarItemCategory,r.G.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":A},p)},a.createElement("div",{className:(0,l.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":_})},a.createElement(G.A,(0,C.A)({className:(0,l.A)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?I(!1):(e.preventDefault(),I())}:()=>{n?.(t)},"aria-current":_?"page":void 0,"aria-expanded":b?!A:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(P,{categoryLabel:u,onClick:e=>{e.preventDefault(),I()}})),a.createElement(L.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:A},a.createElement(V,{items:m,tabIndex:A?-1:0,onItemClick:n,activePath:o,level:c+1})))}var W=n(6654),D=n(3186);const z="menuExternalLink_NmtK";function U(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i.w8)(t,o),E=(0,W.A)(m);return a.createElement("li",{className:(0,l.A)(r.G.docs.docSidebarItemLink,r.G.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(G.A,(0,C.A)({className:(0,l.A)("menu__link",!E&&z,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(D.A,null)))}const R="menuHtmlItem_M9Kj";function j(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.A)(r.G.docs.docSidebarItemLink,r.G.docs.docSidebarItemLinkLevel(n),i&&[R,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function K(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.A)({item:t},n));case"html":return a.createElement(j,(0,C.A)({item:t},n));default:return a.createElement(U,(0,C.A)({item:t},n))}}function q(e){let{items:t,...n}=e;return a.createElement(M,null,t.map(((e,t)=>a.createElement(K,(0,C.A)({key:t,item:e,index:t},n)))))}const V=(0,a.memo)(q),Y="menu_SIkG",O="menuWithAnnouncementBar_GW3s";function X(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,T.Mj)(),[t,n]=(0,a.useState)(e);return(0,b.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.A)("menu thin-scrollbar",Y,c&&O,o)},a.createElement("ul",{className:(0,l.A)(r.G.docs.docSidebarMenu,"menu__list")},a.createElement(V,{items:n,activePath:t,level:1})))}const Z="sidebar_njMd",$="sidebarWithHideableNavbar_wUlq",J="sidebarHidden_VK0M",Q="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.p)();return a.createElement("div",{className:(0,l.A)(Z,c&&$,r&&J)},c&&a.createElement(A.A,{tabIndex:-1,className:Q}),a.createElement(X,{path:t,sidebar:n}),i&&a.createElement(I,{onClick:o}))}const te=a.memo(ee);var ne=n(5600),ae=n(9876);const le=e=>{let{sidebar:t,path:n}=e;const o=(0,ae.M)();return a.createElement("ul",{className:(0,l.A)(r.G.docs.docSidebarMenu,"menu__list")},a.createElement(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function oe(e){return a.createElement(ne.GX,{component:le,props:e})}const re=a.memo(oe);function ce(e){const t=(0,_.l)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(re,e))}const ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(k,{className:se}))}const me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){let{children:t}=e;const n=(0,d.t)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.zy)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.A)(r.G.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.t)();return a.createElement("main",{className:(0,l.A)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.A)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",ge="docsWrapper_BCFX";function _e(e){let{children:t}=e;const n=(0,d.t)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.A,{wrapperClassName:ge},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var ve=n(1774),Ae=n(1463);function Ce(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ae.A,{version:t.version,tag:(0,c.tU)(t.pluginId,t.version)}),a.createElement(o.be,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function ke(e){const{versionMetadata:t}=e,n=(0,i.mz)(e);if(!n)return a.createElement(ve.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(Ce,e),a.createElement(o.e3,{className:(0,l.A)(r.G.wrapper.docsPages,r.G.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.n,{version:t},a.createElement(d.V,{name:m,items:u},a.createElement(_e,null,c)))))}},1774:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(6540),l=n(1312),o=n(9024),r=n(5933);function c(){return a.createElement(a.Fragment,null,a.createElement(o.be,{title:(0,l.T)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.A,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.A,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1dc6b685.1bd2feeb.js b/assets/js/1dc6b685.1bd2feeb.js new file mode 100644 index 0000000..3af16e1 --- /dev/null +++ b/assets/js/1dc6b685.1bd2feeb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3414],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(t),y=a,m=d["".concat(c,".").concat(y)]||d[y]||u[y]||o;return t?r.createElement(m,i(i({ref:n},p),{},{components:t})):r.createElement(m,i({ref:n},p))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=t[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},9610:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:1},i="Summary",s={unversionedId:"intro",id:"version-2.5.1/intro",title:"Summary",description:"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.",source:"@site/versioned_docs/version-2.5.1/intro.md",sourceDirName:".",slug:"/intro",permalink:"/react-native-help-create/docs/2.5.1/intro",draft:!1,tags:[],version:"2.5.1",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Getting Started",permalink:"/react-native-help-create/docs/2.5.1/getting-started"}},c={},l=[],p={toc:l};function d(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"summary"},"Summary"),(0,a.yg)("p",null,"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code."),(0,a.yg)("p",null,"The following project structure is used by this command:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"src/\n\u251c\u2500\u2500 components\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-one\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-two\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 folder\n\u2502\xa0\xa0 \u2514\u2500\u2500 comp-three\n\u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u251c\u2500\u2500 redux\n\u2502\xa0\xa0 \u251c\u2500\u2500 actions\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 reducers\n\u2502\xa0\xa0 \u251c\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-three\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u251c\u2500\u2500 navigation.tsx\n \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-two\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"As you can see above, the ",(0,a.yg)("inlineCode",{parentName:"p"},"src")," folder is the folder that resides at the root of your React Native project and under this folder, you will find the ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," folder which contains all the shared components that are used through out the screen. The ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folder contains the app's screens that can uses some of the shared components above it.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In each component you will find ",(0,a.yg)("inlineCode",{parentName:"p"},"index.tsx")," that contains the components ",(0,a.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,a.yg)("inlineCode",{parentName:"p"},"styles.ts")," that contains the styles for that component.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In each screen you will find ",(0,a.yg)("inlineCode",{parentName:"p"},"index.tsx")," that contains the ",(0,a.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,a.yg)("inlineCode",{parentName:"p"},"styles.ts")," that contains the screen's styles and ",(0,a.yg)("inlineCode",{parentName:"p"},"functions")," folder which will contain the screen's specific functions.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Each screen can use one of the shared components that are defined in ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," folder, and you can pass the functions to those components hence there is not ",(0,a.yg)("inlineCode",{parentName:"p"},"functions")," folder under a component subfolder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," part you can find ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," files that shows the relation between the screens that resides in the same folder. For example, the ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folder represent a stack navigation between ",(0,a.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-two"),". As for the ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," file under the ",(0,a.yg)("inlineCode",{parentName:"p"},"folder")," folder is represent a drawer navigation between ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-four"),".")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In both the ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folders, you can find ",(0,a.yg)("inlineCode",{parentName:"p"},"__tests__")," folder that contains the tests for the component or screen.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"As for the ",(0,a.yg)("inlineCode",{parentName:"p"},"redux")," folder you can see there is ",(0,a.yg)("inlineCode",{parentName:"p"},"index.ts")," which contain the redux store, and ",(0,a.yg)("inlineCode",{parentName:"p"},"actions")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"reducers")," folders are next to it so you can find only things that are related to redux in one single place.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You can override the usage of the default behavior of this command line by modifying the ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file (more details can be found ",(0,a.yg)("a",{parentName:"p",href:"./create/using-configuration"},"here"),")."))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.f4070723.js b/assets/js/1df93b7f.f4070723.js new file mode 100644 index 0000000..acfefef --- /dev/null +++ b/assets/js/1df93b7f.f4070723.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4583],{5579:(e,t,n)=>{n.r(t),n.d(t,{default:()=>v});var a=n(5260),r=n(9668),c=n(6540),l=n(53);const o="features_t9lD",m=[{title:"Easy to Use",description:c.createElement(c.Fragment,null,c.createElement("code",null,"rnhc")," was designed to make your development process easier for your react native project.")},{title:"Focus on What Matters",description:c.createElement(c.Fragment,null,c.createElement("code",null,"rnhc")," lets you focus on your code more than on the project structure itself.")},{title:"Easy to Learn",description:c.createElement(c.Fragment,null,c.createElement("code",null,"rnhc")," is easy to learn and you can learn it in a few minutes.")}];function i(e){let{title:t,description:n}=e;return c.createElement("div",{className:(0,l.A)("col col--4")},c.createElement("div",{className:"text--center"}),c.createElement("div",{className:"text--center padding-horiz--md"},c.createElement("h3",null,t),c.createElement("p",null,n)))}function s(){return c.createElement("section",{className:o},c.createElement("div",{className:"container"},c.createElement("div",{className:"row"},m.map(((e,t)=>c.createElement(i,(0,r.A)({key:t},e)))))))}var u=n(5933),d=n(5489);const E="heroBanner_qdFl",h="buttons_AeoN",p="logo_Ukns";var g=n(4586);function f(){const{siteConfig:e}=(0,g.A)();return c.createElement("header",{className:(0,l.A)("hero hero--primary",E)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},e.title),c.createElement("p",{className:"hero__subtitle"},e.tagline),c.createElement("div",{className:h},c.createElement(d.A,{className:"button button--secondary button--lg",to:"/docs/intro"},"Go to rnhc tutorial \u2192"))))}function v(){const{siteConfig:e}=(0,g.A)();return c.createElement(u.A,{title:`${e.title} docs`,description:"Documentation for rnhc, a command line to help you create components, screens, navigations and even redux implementation for your react native project"},c.createElement(a.A,null,c.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),c.createElement("meta",{name:"og:site_name",content:e.title}),c.createElement("meta",{name:"og:title",content:e.title}),c.createElement("meta",{name:"description",content:"Documentation for rnhc, a command line to help you create components, screens, navigations and even redux implementation for your react native project"}),c.createElement("meta",{name:"og:image",content:`${e.baseUrl}img/rnhc-logo.png`}),c.createElement("link",{rel:"icon",href:`${e.baseUrl}img/favicon.ico`})),c.createElement(f,null),c.createElement("main",null,c.createElement("img",{className:p,src:`${e.baseUrl}img/rnhc-logo.png`,alt:"rnhc logo",width:"27%"}),c.createElement(s,null)))}}}]); \ No newline at end of file diff --git a/assets/js/1f05f735.c677a78f.js b/assets/js/1f05f735.c677a78f.js new file mode 100644 index 0000000..f19dd11 --- /dev/null +++ b/assets/js/1f05f735.c677a78f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6550],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),g=i,f=p["".concat(c,".").concat(g)]||p[g]||u[g]||a;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:i,l[1]=o;for(var s=2;s<a;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}g.displayName="MDXCreateElement"},5360:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var r=n(9668),i=(n(6540),n(5680));const a={sidebar_position:4},l="Delete Navigations",o={unversionedId:"delete/delete-navigations",id:"version-2.3.4/delete/delete-navigations",title:"Delete Navigations",description:"Delete the root Navigation",source:"@site/versioned_docs/version-2.3.4/delete/delete-navigations.md",sourceDirName:"delete",slug:"/delete/delete-navigations",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-navigations",draft:!1,tags:[],version:"2.3.4",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Delete Screens",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-screens"},next:{title:"Delete Redux",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-redux"}},c={},s=[{value:"Delete the root Navigation",id:"delete-the-root-navigation",level:2},{value:"Delete a Navigation in a Specific Folder",id:"delete-a-navigation-in-a-specific-folder",level:2}],d={toc:s};function p(e){let{components:t,...n}=e;return(0,i.yg)("wrapper",(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"delete-navigations"},"Delete Navigations"),(0,i.yg)("h2",{id:"delete-the-root-navigation"},"Delete the root Navigation"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder simply run:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n\n")),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"This will delete the navigation file if it exists, if not ",(0,i.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"It seems there is no navigation file in src/screens/\n")),(0,i.yg)("h2",{id:"delete-a-navigation-in-a-specific-folder"},"Delete a Navigation in a Specific Folder"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in a specific path that resides under ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder you can run:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n -f <folder-path>\n")),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"This will delete the navigation file if it does exist under the ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.caa9fae6.js b/assets/js/1f391b9e.caa9fae6.js new file mode 100644 index 0000000..efa9804 --- /dev/null +++ b/assets/js/1f391b9e.caa9fae6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6061],{1107:(e,n,t)=>{t.d(n,{A:()=>m});var a=t(9668),l=t(6540),i=t(53),r=t(1312),o=t(6342);const c="anchorWithStickyNavbar_LWe7",s="anchorWithHideOnScrollNavbar_WYt5";function m(e){let{as:n,id:t,...m}=e;const{navbar:{hideOnScroll:d}}=(0,o.p)();return"h1"!==n&&t?l.createElement(n,(0,a.A)({},m,{className:(0,i.A)("anchor",d?s:c),id:t}),m.children,l.createElement("a",{className:"hash-link",href:`#${t}`,title:(0,r.T)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):l.createElement(n,(0,a.A)({},m,{id:void 0}))}},6886:(e,n,t)=>{t.d(n,{A:()=>R});var a=t(6540),l=t(5680),i=t(9668),r=t(5260);var o=t(7964);var c=t(5489);var s=t(53),m=t(2303),d=t(1422);const u="details_lb9f",f="isBrowser_bmU9",h="collapsibleContent_i85q";function p(e){return!!e&&("SUMMARY"===e.tagName||p(e.parentElement))}function v(e,n){return!!e&&(e===n||v(e.parentElement,n))}function E(e){let{summary:n,children:t,...l}=e;const r=(0,m.A)(),o=(0,a.useRef)(null),{collapsed:c,setCollapsed:E}=(0,d.u)({initialState:!l.open}),[g,A]=(0,a.useState)(l.open);return a.createElement("details",(0,i.A)({},l,{ref:o,open:g,"data-collapsed":c,className:(0,s.A)(u,r&&f,l.className),onMouseDown:e=>{p(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;p(n)&&v(n,o.current)&&(e.preventDefault(),c?(E(!1),A(!0)):E(!0))}}),n??a.createElement("summary",null,"Details"),a.createElement(d.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{E(e),A(!e)}},a.createElement("div",{className:h},t)))}const g="details_b_Ee";function A(e){let{...n}=e;return a.createElement(E,(0,i.A)({},n,{className:(0,s.A)("alert alert--info",g,n.className)}))}var N=t(1107);function b(e){return a.createElement(N.A,e)}const C="containsTaskList_mC6p";const L="img_ev3q";var y=t(7559),x=t(1312);const H="admonition_LlT9",_="admonitionHeading_tbUL",k="admonitionIcon_kALy",T="admonitionContent_S0QG";const z={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(x.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(x.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(x.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(x.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(x.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},M={secondary:"note",important:"info",success:"tip",warning:"danger"};function w(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=a.Children.toArray(e),t=n.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),l=a.createElement(a.Fragment,null,n.filter((e=>e!==t)));return{mdxAdmonitionTitle:t,rest:l}}(e.children);return{...e,title:e.title??n,children:t}}const S={head:function(e){const n=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:n,originalType:t,...l}=e.props;return a.createElement(e.props.originalType,l)}return e}(e):e));return a.createElement(r.A,e,n)},code:function(e){const n=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&n.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(o.A,e)},a:function(e){return a.createElement(c.A,e)},pre:function(e){return a.createElement(o.A,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const n=a.Children.toArray(e.children),t=n.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),l=a.createElement(a.Fragment,null,n.filter((e=>e!==t)));return a.createElement(A,(0,i.A)({},e,{summary:t}),l)},ul:function(e){return a.createElement("ul",(0,i.A)({},e,{className:(n=e.className,(0,s.A)(n,n?.includes("contains-task-list")&&C))}));var n},img:function(e){return a.createElement("img",(0,i.A)({loading:"lazy"},e,{className:(n=e.className,(0,s.A)(n,L))}));var n},h1:e=>a.createElement(b,(0,i.A)({as:"h1"},e)),h2:e=>a.createElement(b,(0,i.A)({as:"h2"},e)),h3:e=>a.createElement(b,(0,i.A)({as:"h3"},e)),h4:e=>a.createElement(b,(0,i.A)({as:"h4"},e)),h5:e=>a.createElement(b,(0,i.A)({as:"h5"},e)),h6:e=>a.createElement(b,(0,i.A)({as:"h6"},e)),admonition:function(e){const{children:n,type:t,title:l,icon:i}=w(e),r=function(e){const n=M[e]??e,t=z[n];return t||(console.warn(`No admonition config found for admonition type "${n}". Using Info as fallback.`),z.info)}(t),o=l??r.label,{iconComponent:c}=r,m=i??a.createElement(c,null);return a.createElement("div",{className:(0,s.A)(y.G.common.admonition,y.G.common.admonitionType(e.type),"alert",`alert--${r.infimaClassName}`,H)},a.createElement("div",{className:_},a.createElement("span",{className:k},m),o),a.createElement("div",{className:T},n))},mermaid:()=>null};function R(e){let{children:n}=e;return a.createElement(l.xA,{components:S},n)}},7973:(e,n,t)=>{t.r(n),t.d(n,{default:()=>d});var a=t(6540),l=t(53),i=t(9024),r=t(7559),o=t(5933),c=t(6886),s=t(7763);const m="mdxPageWrapper_j9I6";function d(e){const{content:n}=e,{metadata:{title:t,description:d,frontMatter:u}}=n,{wrapperClassName:f,hide_table_of_contents:h}=u;return a.createElement(i.e3,{className:(0,l.A)(f??r.G.wrapper.mdxPages,r.G.page.mdxPage)},a.createElement(i.be,{title:t,description:d}),a.createElement(o.A,null,a.createElement("main",{className:"container container--fluid margin-vert--lg"},a.createElement("div",{className:(0,l.A)("row",m)},a.createElement("div",{className:(0,l.A)("col",!h&&"col--8")},a.createElement("article",null,a.createElement(c.A,null,a.createElement(n,null)))),!h&&n.toc.length>0&&a.createElement("div",{className:"col col--2"},a.createElement(s.A,{toc:n.toc,minHeadingLevel:u.toc_min_heading_level,maxHeadingLevel:u.toc_max_heading_level}))))))}},7763:(e,n,t)=>{t.d(n,{A:()=>c});var a=t(9668),l=t(6540),i=t(53),r=t(5195);const o="tableOfContents_bqdL";function c(e){let{className:n,...t}=e;return l.createElement("div",{className:(0,i.A)(o,"thin-scrollbar",n)},l.createElement(r.A,(0,a.A)({},t,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},5195:(e,n,t)=>{t.d(n,{A:()=>h});var a=t(9668),l=t(6540),i=t(6342);function r(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...l}=e;t>=0?n[t].children.push(l):a.push(l)})),a}function o(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=o({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function c(e){const n=e.getBoundingClientRect();return n.top===n.bottom?c(e.parentNode):n}function s(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>c(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(c(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function m(){const e=(0,l.useRef)(0),{navbar:{hideOnScroll:n}}=(0,i.p)();return(0,l.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,l.useRef)(void 0),t=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:i,maxHeadingLevel:r}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),o=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let l=n;l<=t;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=s(o,{anchorTopOffset:t.current}),m=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(l),e.classList.add(l),n.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,t])}function u(e){let{toc:n,className:t,linkClassName:a,isChild:i}=e;return n.length?l.createElement("ul",{className:i?void 0:t},n.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:t,linkClassName:a}))))):null}const f=l.memo(u);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...h}=e;const p=(0,i.p)(),v=m??p.tableOfContents.minHeadingLevel,E=u??p.tableOfContents.maxHeadingLevel,g=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>o({toc:r(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:v,maxHeadingLevel:E});return d((0,l.useMemo)((()=>{if(c&&s)return{linkClassName:c,linkActiveClassName:s,minHeadingLevel:v,maxHeadingLevel:E}}),[c,s,v,E])),l.createElement(f,(0,a.A)({toc:g,className:t,linkClassName:c},h))}}}]); \ No newline at end of file diff --git a/assets/js/1fa58c83.6df8fa16.js b/assets/js/1fa58c83.6df8fa16.js new file mode 100644 index 0000000..c8decfe --- /dev/null +++ b/assets/js/1fa58c83.6df8fa16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[832],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>y});var r=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,l=function(e,n){if(null==e)return{};var t,r,l={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var c=r.createContext({}),o=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=o(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=o(t),m=l,y=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return t?r.createElement(y,i(i({ref:n},p),{},{components:t})):r.createElement(y,i({ref:n},p))}));function y(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:l,i[1]=s;for(var o=2;o<a;o++)i[o]=t[o];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},7546:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>o});var r=t(9668),l=(t(6540),t(5680));const a={sidebar_position:3},i="Delete Screens",s={unversionedId:"delete/delete-screens",id:"version-2.3.4/delete/delete-screens",title:"Delete Screens",description:"Delete a Screen",source:"@site/versioned_docs/version-2.3.4/delete/delete-screens.md",sourceDirName:"delete",slug:"/delete/delete-screens",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-screens",draft:!1,tags:[],version:"2.3.4",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Delete Components",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-components"},next:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-navigations"}},c={},o=[{value:"Delete a Screen",id:"delete-a-screen",level:2},{value:"Delete multiple Screens",id:"delete-multiple-screens",level:2},{value:"Delete a Screens in a Specific Folder",id:"delete-a-screens-in-a-specific-folder",level:2}],p={toc:o};function d(e){let{components:n,...t}=e;return(0,l.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"delete-screens"},"Delete Screens"),(0,l.yg)("h2",{id:"delete-a-screen"},"Delete a Screen"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete a screen simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"This will delete the screen with the given name ",(0,l.yg)("inlineCode",{parentName:"p"},"<screen-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder.")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"If the screen does not exist, ",(0,l.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/<screen-name>/ does not exist\n")),(0,l.yg)("h2",{id:"delete-multiple-screens"},"Delete multiple Screens"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete multiple screens run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ...\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,l.yg)("h2",{id:"delete-a-screens-in-a-specific-folder"},"Delete a Screens in a Specific Folder"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete one or multiple screens that resides in a specific path under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/21584035.6d674915.js b/assets/js/21584035.6d674915.js new file mode 100644 index 0000000..cdc8291 --- /dev/null +++ b/assets/js/21584035.6d674915.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2223],{9365:(e,n,t)=>{t.d(n,{A:()=>i});var a=t(6540),r=t(53);const l="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.A)(l,i),hidden:t},n)}},4865:(e,n,t)=>{t.d(n,{A:()=>m});var a=t(9668),r=t(6540),l=t(53),i=t(2303),o=t(1682),u=t(6976),c=t(3104);const s="tabList__CuJ",d="tabItem_LNqP";function p(e){const{lazy:n,block:t,defaultValue:i,values:p,groupId:m,className:g}=e,y=r.Children.map(e.children,(e=>{if((0,r.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})),h=p??y.map((e=>{let{props:{value:n,label:t,attributes:a}}=e;return{value:n,label:t,attributes:a}})),x=(0,o.X)(h,((e,n)=>e.value===n.value));if(x.length>0)throw new Error(`Docusaurus error: Duplicate values "${x.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`);const T=null===i?i:i??y.find((e=>e.props.default))?.props.value??y[0].props.value;if(null!==T&&!h.some((e=>e.value===T)))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${T}" but none of its children has the corresponding value. Available values are: ${h.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:f,setTabGroupChoices:A}=(0,u.x)(),[N,b]=(0,r.useState)(T),v=[],{blockElementScrollPositionUntilNextRender:C}=(0,c.a_)();if(null!=m){const e=f[m];null!=e&&e!==N&&h.some((n=>n.value===e))&&b(e)}const w=e=>{const n=e.currentTarget,t=v.indexOf(n),a=h[t].value;a!==N&&(C(n),b(a),null!=m&&A(m,String(a)))},k=e=>{let n=null;switch(e.key){case"Enter":w(e);break;case"ArrowRight":{const t=v.indexOf(e.currentTarget)+1;n=v[t]??v[0];break}case"ArrowLeft":{const t=v.indexOf(e.currentTarget)-1;n=v[t]??v[v.length-1];break}}n?.focus()};return r.createElement("div",{className:(0,l.A)("tabs-container",s)},r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":t},g)},h.map((e=>{let{value:n,label:t,attributes:i}=e;return r.createElement("li",(0,a.A)({role:"tab",tabIndex:N===n?0:-1,"aria-selected":N===n,key:n,ref:e=>v.push(e),onKeyDown:k,onClick:w},i,{className:(0,l.A)("tabs__item",d,i?.className,{"tabs__item--active":N===n})}),t??n)}))),n?(0,r.cloneElement)(y.filter((e=>e.props.value===N))[0],{className:"margin-top--md"}):r.createElement("div",{className:"margin-top--md"},y.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==N})))))}function m(e){const n=(0,i.A)();return r.createElement(p,(0,a.A)({key:String(n)},e))}},413:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>g,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var a=t(9668),r=(t(6540),t(5680)),l=t(4865),i=t(9365),o=t(7964);const u={sidebar_position:6},c="Create Redux",s={unversionedId:"create/create-redux",id:"create/create-redux",title:"Create Redux",description:"To create a redux implementation run:",source:"@site/docs/create/create-redux.mdx",sourceDirName:"create",slug:"/create/create-redux",permalink:"/react-native-help-create/docs/create/create-redux",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Using Templates",permalink:"/react-native-help-create/docs/create/using-templates"},next:{title:"Using Configuration",permalink:"/react-native-help-create/docs/create/using-configuration"}},d={},p=[{value:"Create a reducer",id:"create-a-reducer",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple reducers",id:"create-multiple-reducers",level:2},{value:"Create an action",id:"create-an-action",level:2},{value:"Example",id:"example-1",level:3},{value:"Create multiple actions",id:"create-multiple-actions",level:2}],m={toc:p};function g(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,a.A)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-redux"},"Create Redux"),(0,r.yg)("p",null,"To create a redux implementation run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/")," folder containing the following:")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 redux\n \u251c\u2500\u2500 actions\n \u2502 \u2514\u2500\u2500 general\n \u2502 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.js\n \u2514\u2500\u2500 reducers\n \u251c\u2500\u2500 general\n \u2502 \u2514\u2500\u2500 index.js\n \u2514\u2500\u2500 index.js")),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 redux\n \u251c\u2500\u2500 actions\n \u2502 \u2514\u2500\u2500 general\n \u2502 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.ts\n \u2514\u2500\u2500 reducers\n \u251c\u2500\u2500 general\n \u2502 \u2514\u2500\u2500 index.ts\n \u2514\u2500\u2500 index.ts"))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Where ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," under the ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder contains the redux store definition:")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'import { applyMiddleware, compose, createStore } from "redux";\n\nimport { mainReducer } from "./reducers";\nimport thunk from "redux-thunk";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { applyMiddleware, compose, createStore } from "redux";\nimport thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";\n\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n\nexport type StateInterface = ReturnType<typeof mainStore.getState>;\n\n/**\n * list of action types\n */\nexport type ActionType = "UPDATE_GENERAL";\n\nexport interface Action<T> {\n type: ActionType;\n payload: Partial<T>;\n}\nexport type ThunkResult<\n A = Record<string, unknown>,\n E = Record<string, unknown>\n> = ThunkAction<void, StateInterface, E, Action<A>>;\n\nexport type Dispatch<A> = ThunkDispatch<\n StateInterface,\n Record<string, unknown>,\n Action<A>\n>;\n'))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"And ",(0,r.yg)("inlineCode",{parentName:"p"},"actions")," folder contains the action for each reducer, as for a example, at first ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will create a sample reducer and action which is called ",(0,r.yg)("inlineCode",{parentName:"p"},"general"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"general")," action's ",(0,r.yg)("inlineCode",{parentName:"p"},"index.*")," contains:"))),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'// write your general actions here\n\n// this is an example for an action\nexport const initAction = () => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } })\n};\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { GeneralState } from "../../reducers/general";\nimport { ThunkResult } from "../..";\n\n// write your general actions here\n\n// this is an example for an action\nexport const initAction =\n (): ThunkResult<GeneralState> => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n };\n'))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"general")," reducer's ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," contains:")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'const initialState = { message: "" };\n\nexport const general = (\n state = initialState,\n action,\n) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { Action } from "../..";\n\nexport interface GeneralState {\n message: string;\n}\n\nexport const general = (\n state: GeneralState = {\n message: "",\n },\n action: Action<GeneralState>\n) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n'))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder contains the following:")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n'))),(0,r.yg)("h1",{id:"reducers"},"Reducers"),(0,r.yg)("h2",{id:"create-a-reducer"},"Create a reducer"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a reducer, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name>\n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer auth\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/reducers/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," for this reducer will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/auth/index.*")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},"const initialState = { };\n\nexport const auth = (\n state = initialState,\n action,\n) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n")),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { Action } from "../..";\n\nexport interface AuthState { }\n\nexport const auth = (\n state: AuthState = { },\n action: Action<AuthState>,\n) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n'))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"It will also add the reducer to the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use it in the ",(0,r.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/index.*")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'import { combineReducers } from "redux";\nimport { auth } from "./auth";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n auth,\n general,\n});\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { combineReducers } from "redux";\nimport { auth } from "./auth";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n auth,\n general,\n});\n'))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If you don't have a redux implementation create using ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc create -r"),", this command will prompt:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Redux implementation does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"You can also overwrite the reducer by running:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name> -o\n")),(0,r.yg)("h2",{id:"create-multiple-reducers"},"Create multiple reducers"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple reducers, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will also update your ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use the reducers you created.")),(0,r.yg)("h1",{id:"actions"},"Actions"),(0,r.yg)("h2",{id:"create-an-action"},"Create an action"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action <reducer-name> <action-name>\n")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In this example we are going to create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, so we will run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action auth login\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"login")," action under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"login.*")," for this action will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/login.*")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'export const loginAction = () => async (dispatch, getState) => {\n dispatch({ type: "AUTH_LOGIN", payload: { } })\n}\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'import { AuthState } from "../../reducers/auth";\nimport { ThunkResult } from "../..";\n\nexport const loginAction = (): ThunkResult<AuthState> => async (dispatch, getState) => {\n dispatch({ type: "AUTH_LOGIN", payload: { } })\n}\n'))),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will update the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.*")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," to export the action.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/index.*")),(0,r.yg)(l.A,{groupId:"language",mdxType:"Tabs"},(0,r.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,r.yg)(o.A,{language:"js",mdxType:"CodeBlock"},'export { loginAction } from "./login";\n')),(0,r.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,r.yg)(o.A,{language:"ts",mdxType:"CodeBlock"},'export { loginAction } from "./login";\n'))),(0,r.yg)("h2",{id:"create-multiple-actions"},"Create multiple actions"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple actions, you must have a redux implementation and existed reducer, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If the reducer doesn't exist, you will get an error like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/x does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ",(0,r.yg)("inlineCode",{parentName:"li"},"ActionType")," in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts")," file. For example if you create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, you will get the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";\n\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n\nexport type StateInterface = ReturnType<typeof mainStore.getState>;\n\n/**\n * list of action types\n */\nexport type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";\n\nexport interface Action<T> {\n type: ActionType;\n payload: Partial<T>;\n}\nexport type ThunkResult<\n A = Record<string, unknown>,\n E = Record<string, unknown>\n> = ThunkAction<void, StateInterface, E, Action<A>>;\n\nexport type Dispatch<A> = ThunkDispatch<\n StateInterface,\n Record<string, unknown>,\n Action<A>\n>;\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"It will also update the necessary files that imports and exports modules in order to use the action in the reducer.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Also another note, if you prefer not using ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," you can set that in ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file, this will let you create your store and actions without applying the ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," middleware (For more details check ",(0,r.yg)("a",{parentName:"p",href:"./using-configuration"},"configuration section"),")."))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/25116770.4e87a44c.js b/assets/js/25116770.4e87a44c.js new file mode 100644 index 0000000..482439d --- /dev/null +++ b/assets/js/25116770.4e87a44c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2294],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),g=a,d=s["".concat(c,".").concat(g)]||s[g]||y[g]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=g;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}g.displayName="MDXCreateElement"},8629:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(9668),a=(r(6540),r(5680));const o={sidebar_position:2},i="Getting Started",l={unversionedId:"getting-started",id:"version-2.3.4/getting-started",title:"Getting Started",description:"- To install it globally in your system run:",source:"@site/versioned_docs/version-2.3.4/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/react-native-help-create/docs/2.3.4/getting-started",draft:!1,tags:[],version:"2.3.4",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Summary",permalink:"/react-native-help-create/docs/2.3.4/intro"},next:{title:"Create",permalink:"/react-native-help-create/docs/2.3.4/category/create"}},c={},p=[],u={toc:p};function s(e){let{components:t,...r}=e;return(0,a.yg)("wrapper",(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"getting-started"},"Getting Started"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To install it globally in your system run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"npm i react-native-help-create -g\n")),(0,a.yg)("p",null,"Or"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"yarn global add react-native-help-create\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To install it as a dev dependency in your react native project run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"npm i react-native-help-create --save-dev\n")),(0,a.yg)("p",null,"Or"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"yarn add react-native-help-create --dev\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"If you want to use it without installing it (using npm cache) run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"npx react-native-help-create --help\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e8452ff.d3bfe71e.js b/assets/js/2e8452ff.d3bfe71e.js new file mode 100644 index 0000000..512a460 --- /dev/null +++ b/assets/js/2e8452ff.d3bfe71e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7537],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>f});var t=r(6540);function o(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function a(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function c(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?a(Object(r),!0).forEach((function(n){o(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function s(e,n){if(null==e)return{};var r,t,o=function(e,n){if(null==e)return{};var r,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)r=a[t],n.indexOf(r)>=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t<a.length;t++)r=a[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=t.createContext({}),l=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=l(e.components);return t.createElement(i.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=o,f=m["".concat(i,".").concat(d)]||m[d]||u[d]||a;return r?t.createElement(f,c(c({ref:n},p),{},{components:r})):t.createElement(f,c({ref:n},p))}));function f(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[m]="string"==typeof e?e:o,c[1]=s;for(var l=2;l<a;l++)c[l]=r[l];return t.createElement.apply(null,c)}return t.createElement.apply(null,r)}d.displayName="MDXCreateElement"},2393:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var t=r(9668),o=(r(6540),r(5680));const a={sidebar_position:3},c="Combine Screens",s={unversionedId:"combine/combine-screens",id:"version-2.6.0/combine/combine-screens",title:"Combine Screens",description:"To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:",source:"@site/versioned_docs/version-2.6.0/combine/combine-screens.md",sourceDirName:"combine",slug:"/combine/combine-screens",permalink:"/react-native-help-create/docs/2.6.0/combine/combine-screens",draft:!1,tags:[],version:"2.6.0",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Combine Components",permalink:"/react-native-help-create/docs/2.6.0/combine/combine-components"},next:{title:"Notes",permalink:"/react-native-help-create/docs/2.6.0/notes"}},i={},l=[{value:"Example",id:"example",level:2}],p={toc:l};function m(e){let{components:n,...r}=e;return(0,o.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"combine-screens"},"Combine Screens"),(0,o.yg)("p",null,"To combine screens that resides in ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder to a specific path that resides under that same folder you can run:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will move the existed screens for the given inputs to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If somehome one of the given screens does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these screens exist\n")),(0,o.yg)("h2",{id:"example"},"Example"),(0,o.yg)("p",null,"In this example, we have ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-1")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-2")," that exists under ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, and we want to move them to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/foo/bar/")," folder:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s screen-1 screen-2 -f foo/bar\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"screen-1 screen moved to src/screens/foo/bar/\nscreen-2 screen moved to src/screens/foo/bar/\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/300bd883.88f616ce.js b/assets/js/300bd883.88f616ce.js new file mode 100644 index 0000000..f041c6c --- /dev/null +++ b/assets/js/300bd883.88f616ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9847],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(n),f=o,g=s["".concat(c,".").concat(f)]||s[f]||d[f]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},9973:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(9668),o=(n(6540),n(5680));const a={sidebar_position:6},i="Delete Configuration",l={unversionedId:"delete/delete-configuration",id:"version-2.3.4/delete/delete-configuration",title:"Delete Configuration",description:"- To delete a configuration file run:",source:"@site/versioned_docs/version-2.3.4/delete/delete-configuration.md",sourceDirName:"delete",slug:"/delete/delete-configuration",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-configuration",draft:!1,tags:[],version:"2.3.4",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Delete Redux",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-redux"},next:{title:"Combine",permalink:"/react-native-help-create/docs/2.3.4/category/combine"}},c={},p=[],u={toc:p};function s(e){let{components:t,...n}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-configuration"},"Delete Configuration"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete a configuration file run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file at the root of the project.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc.config.json does not exist\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3021cf83.68cdba8e.js b/assets/js/3021cf83.68cdba8e.js new file mode 100644 index 0000000..0cc8ae0 --- /dev/null +++ b/assets/js/3021cf83.68cdba8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2857],{9365:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6540),r=a(53);const l="tabItem_Ymn6";function o(e){let{children:t,hidden:a,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.A)(l,o),hidden:a},t)}},4865:(e,t,a)=>{a.d(t,{A:()=>m});var n=a(9668),r=a(6540),l=a(53),o=a(2303),s=a(1682),i=a(6976),u=a(3104);const c="tabList__CuJ",d="tabItem_LNqP";function p(e){const{lazy:t,block:a,defaultValue:o,values:p,groupId:m,className:g}=e,y=r.Children.map(e.children,(e=>{if((0,r.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})),b=p??y.map((e=>{let{props:{value:t,label:a,attributes:n}}=e;return{value:t,label:a,attributes:n}})),v=(0,s.X)(b,((e,t)=>e.value===t.value));if(v.length>0)throw new Error(`Docusaurus error: Duplicate values "${v.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`);const h=null===o?o:o??y.find((e=>e.props.default))?.props.value??y[0].props.value;if(null!==h&&!b.some((e=>e.value===h)))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${h}" but none of its children has the corresponding value. Available values are: ${b.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:f,setTabGroupChoices:T}=(0,i.x)(),[k,A]=(0,r.useState)(h),x=[],{blockElementScrollPositionUntilNextRender:w}=(0,u.a_)();if(null!=m){const e=f[m];null!=e&&e!==k&&b.some((t=>t.value===e))&&A(e)}const E=e=>{const t=e.currentTarget,a=x.indexOf(t),n=b[a].value;n!==k&&(w(t),A(n),null!=m&&T(m,String(n)))},I=e=>{let t=null;switch(e.key){case"Enter":E(e);break;case"ArrowRight":{const a=x.indexOf(e.currentTarget)+1;t=x[a]??x[0];break}case"ArrowLeft":{const a=x.indexOf(e.currentTarget)-1;t=x[a]??x[x.length-1];break}}t?.focus()};return r.createElement("div",{className:(0,l.A)("tabs-container",c)},r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},g)},b.map((e=>{let{value:t,label:a,attributes:o}=e;return r.createElement("li",(0,n.A)({role:"tab",tabIndex:k===t?0:-1,"aria-selected":k===t,key:t,ref:e=>x.push(e),onKeyDown:I,onClick:E},o,{className:(0,l.A)("tabs__item",d,o?.className,{"tabs__item--active":k===t})}),a??t)}))),t?(0,r.cloneElement)(y.filter((e=>e.props.value===k))[0],{className:"margin-top--md"}):r.createElement("div",{className:"margin-top--md"},y.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==k})))))}function m(e){const t=(0,o.A)();return r.createElement(p,(0,n.A)({key:String(t)},e))}},3418:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>g,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=a(9668),r=(a(6540),a(5680)),l=a(4865),o=a(9365),s=a(7964);const i={sidebar_position:2},u="Getting Started",c={unversionedId:"getting-started",id:"getting-started",title:"Getting Started",description:"- To install it globally in your system run:",source:"@site/docs/getting-started.mdx",sourceDirName:".",slug:"/getting-started",permalink:"/react-native-help-create/docs/getting-started",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Summary",permalink:"/react-native-help-create/docs/intro"},next:{title:"Create",permalink:"/react-native-help-create/docs/category/create"}},d={},p=[],m={toc:p};function g(e){let{components:t,...a}=e;return(0,r.yg)("wrapper",(0,n.A)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"getting-started"},"Getting Started"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To install it globally in your system run:")),(0,r.yg)(l.A,{groupId:"package-manager",mdxType:"Tabs"},(0,r.yg)(o.A,{value:"npm",label:"npm",default:!0,mdxType:"TabItem"},(0,r.yg)(s.A,{mdxType:"CodeBlock"},"npm i react-native-help-create -g")),(0,r.yg)(o.A,{value:"yarn",label:"yarn",mdxType:"TabItem"},(0,r.yg)(s.A,{mdxType:"CodeBlock"},"yarn global add react-native-help-create"))),(0,r.yg)("p",null,"Or"),(0,r.yg)("p",null,"To install it as a dev dependency in your react native project run:"),(0,r.yg)(l.A,{groupId:"package-manager",mdxType:"Tabs"},(0,r.yg)(o.A,{value:"npm",label:"npm",default:!0,mdxType:"TabItem"},(0,r.yg)(s.A,{mdxType:"CodeBlock"},"npm i react-native-help-create --save-dev")),(0,r.yg)(o.A,{value:"yarn",label:"yarn",mdxType:"TabItem"},(0,r.yg)(s.A,{mdxType:"CodeBlock"},"yarn add react-native-help-create --dev"))),(0,r.yg)("p",null,"If you want to use it without installing it (using npm cache) run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"npx react-native-help-create --help\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/30c671dd.5c7f1c24.js b/assets/js/30c671dd.5c7f1c24.js new file mode 100644 index 0000000..cc9ccd3 --- /dev/null +++ b/assets/js/30c671dd.5c7f1c24.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7485],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>g});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(t),d=o,g=p["".concat(c,".").concat(d)]||p[d]||f[d]||i;return t?r.createElement(g,a(a({ref:n},u),{},{components:t})):r.createElement(g,a({ref:n},u))}));function g(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=d;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var s=2;s<i;s++)a[s]=t[s];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},337:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:7},a="Using Configuration",l={unversionedId:"create/using-configuration",id:"version-2.3.4/create/using-configuration",title:"Using Configuration",description:"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.",source:"@site/versioned_docs/version-2.3.4/create/using-configuration.md",sourceDirName:"create",slug:"/create/using-configuration",permalink:"/react-native-help-create/docs/2.3.4/create/using-configuration",draft:!1,tags:[],version:"2.3.4",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Create Redux",permalink:"/react-native-help-create/docs/2.3.4/create/create-redux"},next:{title:"Delete",permalink:"/react-native-help-create/docs/2.3.4/category/delete"}},c={},s=[],u={toc:s};function p(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"using-configuration"},"Using Configuration"),(0,o.yg)("p",null,"With the above steps, you can now create a configuration file which will be used by ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," to create your files with your custom config."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To create a default configuration file run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will create a ",(0,o.yg)("inlineCode",{parentName:"li"},"rnhc.config.json")," file at the root of your project. The file will contain the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n "withStyles": true,\n "withFunctions": true,\n "withProps": true,\n "defaultExports": true,\n "componentsRoot": "./src/components",\n "screensRoot": "./src/screens",\n "reduxRoot": "./src/redux",\n "applyReduxThunk": true\n}\n')),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withStyles"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file for components and pages, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withFunctions"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder for pages, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withProps"),": if true, create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface")," for components and pages (in TS only), if false, don't create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface"),", default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"defaultExports"),": if true, create default export for components and pages, if false, create named export for components and pages, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"componentsRoot"),": the root folder for components, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/components"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"screensRoot"),": the root folder for screens, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/screens"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"reduxRoot"),": the root folder for redux, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/redux"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"applyReduxThunk"),": if true, apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware to the store, if false, don't apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware, default is true.")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3355fecc.c4ddca2c.js b/assets/js/3355fecc.c4ddca2c.js new file mode 100644 index 0000000..f750c39 --- /dev/null +++ b/assets/js/3355fecc.c4ddca2c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6774],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),u=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=u(e.components);return a.createElement(c.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},g=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(t),g=r,m=s["".concat(c,".").concat(g)]||s[g]||d[g]||i;return t?a.createElement(m,l(l({ref:n},p),{},{components:t})):a.createElement(m,l({ref:n},p))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=g;var o={};for(var c in n)hasOwnProperty.call(n,c)&&(o[c]=n[c]);o.originalType=e,o[s]="string"==typeof e?e:r,l[1]=o;for(var u=2;u<i;u++)l[u]=t[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}g.displayName="MDXCreateElement"},9259:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var a=t(9668),r=(t(6540),t(5680));const i={sidebar_position:6},l="Create Redux",o={unversionedId:"create/create-redux",id:"version-2.3.4/create/create-redux",title:"Create Redux",description:"- To create a redux implementation run:",source:"@site/versioned_docs/version-2.3.4/create/create-redux.md",sourceDirName:"create",slug:"/create/create-redux",permalink:"/react-native-help-create/docs/2.3.4/create/create-redux",draft:!1,tags:[],version:"2.3.4",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Using Templates",permalink:"/react-native-help-create/docs/2.3.4/create/using-templates"},next:{title:"Using Configuration",permalink:"/react-native-help-create/docs/2.3.4/create/using-configuration"}},c={},u=[{value:"Create a reducer",id:"create-a-reducer",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple reducers",id:"create-multiple-reducers",level:2},{value:"Create an action",id:"create-an-action",level:2},{value:"Example",id:"example-1",level:3},{value:"Create multiple actions",id:"create-multiple-actions",level:2}],p={toc:u};function s(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,a.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-redux"},"Create Redux"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a redux implementation run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/")," folder containing the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500redux\n \u2502 index.js\n \u2502\n \u251c\u2500\u2500\u2500actions\n \u2502 \u2514\u2500\u2500\u2500general\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500reducers\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500general\n index.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Where ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," under the ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder contains the redux store definition:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { applyMiddleware, compose, createStore } from "redux";\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"And ",(0,r.yg)("inlineCode",{parentName:"p"},"actions")," folder contains the action for each reducer, as for a example, at first ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will create a sample reducer and action which is called ",(0,r.yg)("inlineCode",{parentName:"p"},"general"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"general")," action's ",(0,r.yg)("inlineCode",{parentName:"p"},"index.js")," contains:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'// write your general actions here\n\n// this is an example for an action\nexport const init = () => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"general")," reducer's ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," contains:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'const initialState = { message: "" };\n\nexport const general = (state = initialState, action) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder contains the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In TypeScript, the files will be written as the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\nexport type StateInterface = ReturnType<typeof mainStore.getState>;\n\n/**\n * list of action types\n */\nexport type ActionType = "UPDATE_GENERAL";\n\nexport interface Action<T> {\n type: ActionType;\n payload: Partial<T>;\n}\n\nexport type ThunkResult<\n A = Record<string, unknown>,\n E = Record<string, unknown>\n> = ThunkAction<void, StateInterface, E, Action<A>>;\n\nexport type Dispatch<A> = ThunkDispatch<\n StateInterface,\n Record<string, unknown>,\n Action<A>\n>;\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/actions/general/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { GeneralState } from "../../reducers/general";\nimport { ThunkResult } from "../..";\n\n// write your general actions here\n\n// this is an example for an action\nexport const init =\n (): ThunkResult<GeneralState> => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n };\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/reducers/general/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { Action } from "../..";\n\nexport interface GeneralState {\n message: string;\n}\n\nexport const general = (\n state: GeneralState = {\n message: "",\n },\n action: Action<GeneralState>\n) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/reducers/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)("h1",{id:"reducers"},"Reducers"),(0,r.yg)("h2",{id:"create-a-reducer"},"Create a reducer"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a reducer, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name>\n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer auth\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/reducers/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," for this reducer will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/auth/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"const initialState = {};\n\nexport const auth = (state = initialState, action) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"It will also add the reducer to the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use it in the ",(0,r.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { combineReducers } from "redux";\nimport { auth } from "./auth";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n auth,\n general,\n});\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If you don't have a redux implementation create using ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc create -r"),", this command will prompt:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Redux implementation does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"You can also overwrite the reducer by running:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name> -o\n")),(0,r.yg)("h2",{id:"create-multiple-reducers"},"Create multiple reducers"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple reducers, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will also update your ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use the reducers you created.")),(0,r.yg)("h1",{id:"actions"},"Actions"),(0,r.yg)("h2",{id:"create-an-action"},"Create an action"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action <reducer-name> <action-name>\n")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In this example we are going to create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, so we will run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action auth login\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"login")," action under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"login.js")," for this action will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/login.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'export const loginAction = () => async (dispatch, getState) => {\n dispatch({ type: "AUTH_LOGIN", payload: {} });\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will update the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," to export the action.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'export { loginAction } from "./login";\n')),(0,r.yg)("h2",{id:"create-multiple-actions"},"Create multiple actions"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple actions, you must have a redux implementation and existed reducer, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If the reducer doesn't exist, you will get an error like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/x does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ",(0,r.yg)("inlineCode",{parentName:"li"},"ActionType")," in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts")," file. For example if you create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, you will get the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";\n\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n\nexport type StateInterface = ReturnType<typeof mainStore.getState>;\n\n/**\n * list of action types\n */\nexport type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";\n\nexport interface Action<T> {\n type: ActionType;\n payload: Partial<T>;\n}\nexport type ThunkResult<\n A = Record<string, unknown>,\n E = Record<string, unknown>\n> = ThunkAction<void, StateInterface, E, Action<A>>;\n\nexport type Dispatch<A> = ThunkDispatch<\n StateInterface,\n Record<string, unknown>,\n Action<A>\n>;\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"It will also update the necessary files that imports and exports modules in order to use the action in the reducer.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Also another note, if you prefer not using ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," you can set that in ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file, this will let you create your store and actions without applying the ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," middleware (For more details check ",(0,r.yg)("a",{parentName:"p",href:"./using-configuration"},"configuration section"),")."))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3607ff89.de9ca03a.js b/assets/js/3607ff89.de9ca03a.js new file mode 100644 index 0000000..da4ecc1 --- /dev/null +++ b/assets/js/3607ff89.de9ca03a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3458],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),y=a,d=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return n?r.createElement(d,i(i({ref:t},s),{},{components:n})):r.createElement(d,i({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},3129:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(9668),a=(n(6540),n(5680));const o={sidebar_position:5},i="Using Templates",l={unversionedId:"create/using-templates",id:"version-2.6.0/create/using-templates",title:"Using Templates",description:"You can create your screens and components with your defined templates by following these steps:",source:"@site/versioned_docs/version-2.6.0/create/using-templates.md",sourceDirName:"create",slug:"/create/using-templates",permalink:"/react-native-help-create/docs/2.6.0/create/using-templates",draft:!1,tags:[],version:"2.6.0",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Create Navigations",permalink:"/react-native-help-create/docs/2.6.0/create/create-navigations"},next:{title:"Create Redux",permalink:"/react-native-help-create/docs/2.6.0/create/create-redux"}},p={},c=[{value:"Example",id:"example",level:3}],s={toc:c};function m(e){let{components:t,...n}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"using-templates"},"Using Templates"),(0,a.yg)("p",null,"You can create your screens and components with your defined templates by following these steps:"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"First thing to do is to create a ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder at the root of your react project.")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"Inside the ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder you can add your template, for example ",(0,a.yg)("inlineCode",{parentName:"p"},"componentWithUseEffect.tsx")," (the file extension doesn't matter so it could be ",(0,a.yg)("inlineCode",{parentName:"p"},"*.jsx"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"*.js")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"*.tsx"),"):"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import React, { useEffect } from "react";\nimport { View, Text } from "react-native";\n\nexport default function __COMPONENT__() {\n useEffect(() => {}, []);\n\n return (\n <View>\n <Text>Hello, World!</Text>\n </View>\n );\n}\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"There is a restriction in naming these templates which is you should not put dots (",(0,a.yg)("inlineCode",{parentName:"p"},"."),") between the name, like this (",(0,a.yg)("inlineCode",{parentName:"p"},"component.WithUseEffect.jsx"),"). It should only contain one dot that makes the extension file like we're doing above.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You should type ",(0,a.yg)("inlineCode",{parentName:"p"},"__COMPONENT__")," in the template file and it will be replaced with the component name you want to create."))),(0,a.yg)("ol",{start:3},(0,a.yg)("li",{parentName:"ol"},"After creating your template you can use them to create components or screens as the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name> -t <template-name>\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name> -t <template-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And of course, you can create multiple components or screens with the same template.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("p",null,"As for our example it can be used like this for the above template:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp -t componentWithUseEffect\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will create ",(0,a.yg)("inlineCode",{parentName:"p"},"comp")," component under ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder and the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for this component will contain the same code written in the template.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the screen case, the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for that screen will contain the code written in the template."))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/36ebbe5d.4cb64b16.js b/assets/js/36ebbe5d.4cb64b16.js new file mode 100644 index 0000000..cadeee6 --- /dev/null +++ b/assets/js/36ebbe5d.4cb64b16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1057],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>g});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function l(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function s(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?l(Object(r),!0).forEach((function(n){a(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function c(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},l=Object.keys(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=t.createContext({}),o=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):s(s({},n),e)),r},p=function(e){var n=o(e.components);return t.createElement(i.Provider,{value:n},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=o(r),m=a,g=u["".concat(i,".").concat(m)]||u[m]||y[m]||l;return r?t.createElement(g,s(s({ref:n},p),{},{components:r})):t.createElement(g,s({ref:n},p))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=r.length,s=new Array(l);s[0]=m;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[u]="string"==typeof e?e:a,s[1]=c;for(var o=2;o<l;o++)s[o]=r[o];return t.createElement.apply(null,s)}return t.createElement.apply(null,r)}m.displayName="MDXCreateElement"},8811:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>o});var t=r(9668),a=(r(6540),r(5680));const l={sidebar_position:3},s="Create Screens",c={unversionedId:"create/create-screens",id:"version-2.6.0/create/create-screens",title:"Create Screens",description:"Create a Screen",source:"@site/versioned_docs/version-2.6.0/create/create-screens.md",sourceDirName:"create",slug:"/create/create-screens",permalink:"/react-native-help-create/docs/2.6.0/create/create-screens",draft:!1,tags:[],version:"2.6.0",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Create Components",permalink:"/react-native-help-create/docs/2.6.0/create/create-components"},next:{title:"Create Navigations",permalink:"/react-native-help-create/docs/2.6.0/create/create-navigations"}},i={},o=[{value:"Create a Screen",id:"create-a-screen",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Screens",id:"create-multiple-screens",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Screens in a Specific Folder",id:"create-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-2",level:3}],p={toc:o};function u(e){let{components:n,...r}=e;return(0,a.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-screens"},"Create Screens"),(0,a.yg)("h2",{id:"create-a-screen"},"Create a Screen"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your screen simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a screen after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"screen-name")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s testScreen\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 test-screen\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," represent the screen which is nothing but a React FC component that contains the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import { Text, View } from "react-native";\nimport {} from "./functions";\nimport { TestScreenStyles } from "./styles";\n\nconst TestScreenScreen = () => {\n return (\n <View>\n <Text>TestScreen screen created!</Text>\n </View>\n );\n};\nexport default TestScreenScreen;\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"As for ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.js")," you will find:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},'import { StyleSheet } from "react-native";\n\nexport const TestScreenStyles = StyleSheet.create({});\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And under the ",(0,a.yg)("inlineCode",{parentName:"li"},"functions")," folder you should write your screen's functions and export them in ",(0,a.yg)("inlineCode",{parentName:"li"},"function/index.js")," file, which by default it will contain the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"// write your TestScreen screen functions here\n")),(0,a.yg)("h2",{id:"create-multiple-screens"},"Create multiple Screens"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple screens simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("h2",{id:"create-screens-in-a-specific-folder"},"Create Screens in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or multiple screens in a specific path that resides under ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>")," folder.")),(0,a.yg)("h3",{id:"example-2"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/374bac64.42e5ac73.js b/assets/js/374bac64.42e5ac73.js new file mode 100644 index 0000000..9858dda --- /dev/null +++ b/assets/js/374bac64.42e5ac73.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3785],{9413:e=>{e.exports=JSON.parse('{"title":"Delete","description":"How to delete files in the project?","slug":"/category/delete","permalink":"/react-native-help-create/docs/category/delete","navigation":{"previous":{"title":"Using Configuration","permalink":"/react-native-help-create/docs/create/using-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/delete/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/39362015.ef9617ab.js b/assets/js/39362015.ef9617ab.js new file mode 100644 index 0000000..4577d37 --- /dev/null +++ b/assets/js/39362015.ef9617ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2860],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(t),d=o,y=p["".concat(c,".").concat(d)]||p[d]||f[d]||i;return t?r.createElement(y,a(a({ref:n},u),{},{components:t})):r.createElement(y,a({ref:n},u))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=d;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var s=2;s<i;s++)a[s]=t[s];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},844:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:7},a="Using Configuration",l={unversionedId:"create/using-configuration",id:"create/using-configuration",title:"Using Configuration",description:"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.",source:"@site/docs/create/using-configuration.md",sourceDirName:"create",slug:"/create/using-configuration",permalink:"/react-native-help-create/docs/create/using-configuration",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Create Redux",permalink:"/react-native-help-create/docs/create/create-redux"},next:{title:"Delete",permalink:"/react-native-help-create/docs/category/delete"}},c={},s=[],u={toc:s};function p(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"using-configuration"},"Using Configuration"),(0,o.yg)("p",null,"With the above steps, you can now create a configuration file which will be used by ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," to create your files with your custom config."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To create a default configuration file run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will create a ",(0,o.yg)("inlineCode",{parentName:"li"},"rnhc.config.json")," file at the root of your project. The file will contain the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n "withStyles": true,\n "withFunctions": true,\n "withProps": true,\n "withTests": true,\n "defaultExports": true,\n "componentsRoot": "./src/components",\n "screensRoot": "./src/screens",\n "reduxRoot": "./src/redux",\n "applyReduxThunk": true\n}\n')),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withStyles"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file for components and screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withFunctions"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder for screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withProps"),": if true, create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface")," for components and screens (in TS only), if false, don't create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface"),", default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withTests"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"__tests__")," folder for components and screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"__tests__")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"defaultExports"),": if true, create default export for components and pages, if false, create named export for components and pages, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"componentsRoot"),": the root folder for components, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/components"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"screensRoot"),": the root folder for screens, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/screens"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"reduxRoot"),": the root folder for redux, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/redux"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"applyReduxThunk"),": if true, apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware to the store, if false, don't apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware, default is true.")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393be207.b9c88e5a.js b/assets/js/393be207.b9c88e5a.js new file mode 100644 index 0000000..e0df133 --- /dev/null +++ b/assets/js/393be207.b9c88e5a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4134],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),f=i(r),m=a,d=f["".concat(l,".").concat(m)]||f[m]||s[m]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[f]="string"==typeof e?e:a,p[1]=c;for(var i=2;i<o;i++)p[i]=r[i];return n.createElement.apply(null,p)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1509:(e,t,r)=>{r.r(t),r.d(t,{contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(9668),a=(r(6540),r(5680));const o={title:"Markdown page example"},p="Markdown page example",c={type:"mdx",permalink:"/react-native-help-create/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"}},l=[],i={toc:l};function u(e){let{components:t,...r}=e;return(0,a.yg)("wrapper",(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"markdown-page-example"},"Markdown page example"),(0,a.yg)("p",null,"You don't need React to write simple standalone pages."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ca5a089.9a974b29.js b/assets/js/3ca5a089.9a974b29.js new file mode 100644 index 0000000..0e2b563 --- /dev/null +++ b/assets/js/3ca5a089.9a974b29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3937],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},6026:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"delete/intro",id:"delete/intro",title:"Intro",description:"With rnhc you can delete what you already created with create commands.",source:"@site/docs/delete/intro.md",sourceDirName:"delete",slug:"/delete/intro",permalink:"/react-native-help-create/docs/delete/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Delete",permalink:"/react-native-help-create/docs/category/delete"},next:{title:"Delete Components",permalink:"/react-native-help-create/docs/delete/delete-components"}},l={},p=[],s={toc:p};function d(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can delete what you already created with ",(0,o.yg)("a",{parentName:"p",href:"/docs/category/create"},(0,o.yg)("inlineCode",{parentName:"a"},"create")," commands"),"."),(0,o.yg)("p",null,"The following points shows how to deal with deleting your files with the ",(0,o.yg)("inlineCode",{parentName:"p"},"delete")," command."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/416.8d4c0e91.js b/assets/js/416.8d4c0e91.js new file mode 100644 index 0000000..4ae1ad4 --- /dev/null +++ b/assets/js/416.8d4c0e91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[416],{416:(c,s,e)=>{e.r(s)}}]); \ No newline at end of file diff --git a/assets/js/427447cf.85c5ed1c.js b/assets/js/427447cf.85c5ed1c.js new file mode 100644 index 0000000..51fd1e4 --- /dev/null +++ b/assets/js/427447cf.85c5ed1c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7544],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>y});var r=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,l=function(e,n){if(null==e)return{};var t,r,l={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var c=r.createContext({}),o=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=o(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=o(t),m=l,y=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return t?r.createElement(y,i(i({ref:n},p),{},{components:t})):r.createElement(y,i({ref:n},p))}));function y(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:l,i[1]=s;for(var o=2;o<a;o++)i[o]=t[o];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},2269:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>o});var r=t(9668),l=(t(6540),t(5680));const a={sidebar_position:3},i="Delete Screens",s={unversionedId:"delete/delete-screens",id:"delete/delete-screens",title:"Delete Screens",description:"Delete a Screen",source:"@site/docs/delete/delete-screens.md",sourceDirName:"delete",slug:"/delete/delete-screens",permalink:"/react-native-help-create/docs/delete/delete-screens",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Delete Components",permalink:"/react-native-help-create/docs/delete/delete-components"},next:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/delete/delete-navigations"}},c={},o=[{value:"Delete a Screen",id:"delete-a-screen",level:2},{value:"Delete multiple Screens",id:"delete-multiple-screens",level:2},{value:"Delete a Screens in a Specific Folder",id:"delete-a-screens-in-a-specific-folder",level:2}],p={toc:o};function d(e){let{components:n,...t}=e;return(0,l.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"delete-screens"},"Delete Screens"),(0,l.yg)("h2",{id:"delete-a-screen"},"Delete a Screen"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete a screen simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"This will delete the screen with the given name ",(0,l.yg)("inlineCode",{parentName:"p"},"<screen-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder.")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"If the screen does not exist, ",(0,l.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/<screen-name>/ does not exist\n")),(0,l.yg)("h2",{id:"delete-multiple-screens"},"Delete multiple Screens"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete multiple screens run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ...\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,l.yg)("h2",{id:"delete-a-screens-in-a-specific-folder"},"Delete a Screens in a Specific Folder"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete one or multiple screens that resides in a specific path under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4316656d.3f13af80.js b/assets/js/4316656d.3f13af80.js new file mode 100644 index 0000000..7517fb9 --- /dev/null +++ b/assets/js/4316656d.3f13af80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1024],{157:e=>{e.exports=JSON.parse('{"title":"Combine","description":"How to combine components or screens?","slug":"/category/combine","permalink":"/react-native-help-create/docs/2.5.1/category/combine","navigation":{"previous":{"title":"Delete Configuration","permalink":"/react-native-help-create/docs/2.5.1/delete/delete-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.5.1/combine/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/43cefd7b.2ad90283.js b/assets/js/43cefd7b.2ad90283.js new file mode 100644 index 0000000..f077bba --- /dev/null +++ b/assets/js/43cefd7b.2ad90283.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7801],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(n),d=o,g=s["".concat(c,".").concat(d)]||s[d]||f[d]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<a;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},5450:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(9668),o=(n(6540),n(5680));const a={sidebar_position:6},i="Delete Configuration",l={unversionedId:"delete/delete-configuration",id:"delete/delete-configuration",title:"Delete Configuration",description:"To delete a configuration file run:",source:"@site/docs/delete/delete-configuration.md",sourceDirName:"delete",slug:"/delete/delete-configuration",permalink:"/react-native-help-create/docs/delete/delete-configuration",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Delete Redux",permalink:"/react-native-help-create/docs/delete/delete-redux"},next:{title:"Combine",permalink:"/react-native-help-create/docs/category/combine"}},c={},p=[],u={toc:p};function s(e){let{components:t,...n}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-configuration"},"Delete Configuration"),(0,o.yg)("p",null,"To delete a configuration file run:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file at the root of the project.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc.config.json does not exist\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/477cf694.75262fbc.js b/assets/js/477cf694.75262fbc.js new file mode 100644 index 0000000..7f37cf7 --- /dev/null +++ b/assets/js/477cf694.75262fbc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7069],{4074:e=>{e.exports=JSON.parse('{"title":"Create","description":"How to create files in the project?","slug":"/category/create","permalink":"/react-native-help-create/docs/2.6.0/category/create","navigation":{"previous":{"title":"Getting Started","permalink":"/react-native-help-create/docs/2.6.0/getting-started"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.6.0/create/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/487aa75b.c086aa74.js b/assets/js/487aa75b.c086aa74.js new file mode 100644 index 0000000..3e96499 --- /dev/null +++ b/assets/js/487aa75b.c086aa74.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[554],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>y});var r=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,l=function(e,n){if(null==e)return{};var t,r,l={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var c=r.createContext({}),o=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=o(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=o(t),m=l,y=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return t?r.createElement(y,i(i({ref:n},p),{},{components:t})):r.createElement(y,i({ref:n},p))}));function y(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:l,i[1]=s;for(var o=2;o<a;o++)i[o]=t[o];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},869:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>o});var r=t(9668),l=(t(6540),t(5680));const a={sidebar_position:3},i="Delete Screens",s={unversionedId:"delete/delete-screens",id:"version-2.6.0/delete/delete-screens",title:"Delete Screens",description:"Delete a Screen",source:"@site/versioned_docs/version-2.6.0/delete/delete-screens.md",sourceDirName:"delete",slug:"/delete/delete-screens",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-screens",draft:!1,tags:[],version:"2.6.0",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Delete Components",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-components"},next:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-navigations"}},c={},o=[{value:"Delete a Screen",id:"delete-a-screen",level:2},{value:"Delete multiple Screens",id:"delete-multiple-screens",level:2},{value:"Delete a Screens in a Specific Folder",id:"delete-a-screens-in-a-specific-folder",level:2}],p={toc:o};function d(e){let{components:n,...t}=e;return(0,l.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"delete-screens"},"Delete Screens"),(0,l.yg)("h2",{id:"delete-a-screen"},"Delete a Screen"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete a screen simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"This will delete the screen with the given name ",(0,l.yg)("inlineCode",{parentName:"p"},"<screen-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder.")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"If the screen does not exist, ",(0,l.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/<screen-name>/ does not exist\n")),(0,l.yg)("h2",{id:"delete-multiple-screens"},"Delete multiple Screens"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete multiple screens run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ...\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,l.yg)("h2",{id:"delete-a-screens-in-a-specific-folder"},"Delete a Screens in a Specific Folder"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete one or multiple screens that resides in a specific path under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4df3b9a3.a1fd0d19.js b/assets/js/4df3b9a3.a1fd0d19.js new file mode 100644 index 0000000..3bc699d --- /dev/null +++ b/assets/js/4df3b9a3.a1fd0d19.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9609],{1966:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/4e2af7f7.acd90860.js b/assets/js/4e2af7f7.acd90860.js new file mode 100644 index 0000000..7b7f3c1 --- /dev/null +++ b/assets/js/4e2af7f7.acd90860.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9157],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>g});var l=t(6540);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);r&&(l=l.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function o(e,r){if(null==e)return{};var t,l,n=function(e,r){if(null==e)return{};var t,l,n={},a=Object.keys(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var c=l.createContext({}),u=function(e){var r=l.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=u(e.components);return l.createElement(c.Provider,{value:r},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return l.createElement(l.Fragment,{},r)}},m=l.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=u(t),m=n,g=s["".concat(c,".").concat(m)]||s[m]||p[m]||a;return t?l.createElement(g,i(i({ref:r},d),{},{components:t})):l.createElement(g,i({ref:r},d))}));function g(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=m;var o={};for(var c in r)hasOwnProperty.call(r,c)&&(o[c]=r[c]);o.originalType=e,o[s]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<a;u++)i[u]=t[u];return l.createElement.apply(null,i)}return l.createElement.apply(null,t)}m.displayName="MDXCreateElement"},5728:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var l=t(9668),n=(t(6540),t(5680));const a={sidebar_position:5},i="Delete Redux",o={unversionedId:"delete/delete-redux",id:"version-2.5.1/delete/delete-redux",title:"Delete Redux",description:"To delete a redux implementation run:",source:"@site/versioned_docs/version-2.5.1/delete/delete-redux.md",sourceDirName:"delete",slug:"/delete/delete-redux",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-redux",draft:!1,tags:[],version:"2.5.1",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-navigations"},next:{title:"Delete Configuration",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-configuration"}},c={},u=[{value:"Delete a reducer",id:"delete-a-reducer",level:2},{value:"Delete multiple reducers",id:"delete-multiple-reducers",level:2},{value:"Delete all reducers",id:"delete-all-reducers",level:2},{value:"Delete an action",id:"delete-an-action",level:2},{value:"Delete multiple actions",id:"delete-multiple-actions",level:2},{value:"Delete all actions for a specific reducer",id:"delete-all-actions-for-a-specific-reducer",level:2}],d={toc:u};function s(e){let{components:r,...t}=e;return(0,n.yg)("wrapper",(0,l.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"delete-redux"},"Delete Redux"),(0,n.yg)("p",null,"To delete a redux implementation run:"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -r\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"This will delete the ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," folder under ",(0,n.yg)("inlineCode",{parentName:"p"},"src/")," with all of its files and subfolders.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"If ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," does not exist, ",(0,n.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"src/redux/ does not exist\n")),(0,n.yg)("h1",{id:"reducers"},"Reducers"),(0,n.yg)("h2",{id:"delete-a-reducer"},"Delete a reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete a reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"This will delete the existed reducer under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder, if not ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the ",(0,n.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder to remove it from the import list as well as from the ",(0,n.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,n.yg)("h2",{id:"delete-multiple-reducers"},"Delete multiple reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple reducers at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-reducers"},"Delete all reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all reducers run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer\n")),(0,n.yg)("h1",{id:"actions"},"Actions"),(0,n.yg)("h2",{id:"delete-an-action"},"Delete an action"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete an action run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"If the reducer does not exist, ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/actions/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts"),".")),(0,n.yg)("h2",{id:"delete-multiple-actions"},"Delete multiple actions"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple actions for a specific reducer at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-actions-for-a-specific-reducer"},"Delete all actions for a specific reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all actions for a specific reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name>\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5200e86b.5a75b548.js b/assets/js/5200e86b.5a75b548.js new file mode 100644 index 0000000..ae0d560 --- /dev/null +++ b/assets/js/5200e86b.5a75b548.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6965],{5680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),u=s(t),f=o,y=u["".concat(p,".").concat(f)]||u[f]||m[f]||i;return t?r.createElement(y,c(c({ref:n},l),{},{components:t})):r.createElement(y,c({ref:n},l))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=f;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var s=2;s<i;s++)c[s]=t[s];return r.createElement.apply(null,c)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},3772:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>s});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:1},c="Intro",a={unversionedId:"combine/intro",id:"version-2.5.1/combine/intro",title:"Intro",description:"With rnhc you can combine your components or screens in a specific path.",source:"@site/versioned_docs/version-2.5.1/combine/intro.md",sourceDirName:"combine",slug:"/combine/intro",permalink:"/react-native-help-create/docs/2.5.1/combine/intro",draft:!1,tags:[],version:"2.5.1",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Combine",permalink:"/react-native-help-create/docs/2.5.1/category/combine"},next:{title:"Combine Components",permalink:"/react-native-help-create/docs/2.5.1/combine/combine-components"}},p={},s=[],l={toc:s};function u(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can combine your components or screens in a specific path."),(0,o.yg)("p",null,"The following points shows how to user the ",(0,o.yg)("inlineCode",{parentName:"p"},"combine")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5350a6b5.71783aac.js b/assets/js/5350a6b5.71783aac.js new file mode 100644 index 0000000..48e4ae9 --- /dev/null +++ b/assets/js/5350a6b5.71783aac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9062],{5680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),u=s(t),f=o,y=u["".concat(p,".").concat(f)]||u[f]||m[f]||i;return t?r.createElement(y,c(c({ref:n},l),{},{components:t})):r.createElement(y,c({ref:n},l))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=f;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var s=2;s<i;s++)c[s]=t[s];return r.createElement.apply(null,c)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},130:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>s});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:1},c="Intro",a={unversionedId:"combine/intro",id:"version-2.6.0/combine/intro",title:"Intro",description:"With rnhc you can combine your components or screens in a specific path.",source:"@site/versioned_docs/version-2.6.0/combine/intro.md",sourceDirName:"combine",slug:"/combine/intro",permalink:"/react-native-help-create/docs/2.6.0/combine/intro",draft:!1,tags:[],version:"2.6.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Combine",permalink:"/react-native-help-create/docs/2.6.0/category/combine"},next:{title:"Combine Components",permalink:"/react-native-help-create/docs/2.6.0/combine/combine-components"}},p={},s=[],l={toc:s};function u(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can combine your components or screens in a specific path."),(0,o.yg)("p",null,"The following points shows how to user the ",(0,o.yg)("inlineCode",{parentName:"p"},"combine")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/55e5eb89.4488c239.js b/assets/js/55e5eb89.4488c239.js new file mode 100644 index 0000000..92f9155 --- /dev/null +++ b/assets/js/55e5eb89.4488c239.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3703],{5401:e=>{e.exports=JSON.parse('{"label":"facebook","permalink":"/react-native-help-create/blog/tags/facebook","allTagsPath":"/react-native-help-create/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/560a2a04.f5aa23aa.js b/assets/js/560a2a04.f5aa23aa.js new file mode 100644 index 0000000..1f37ae4 --- /dev/null +++ b/assets/js/560a2a04.f5aa23aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7088],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},5618:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"delete/intro",id:"version-2.6.0/delete/intro",title:"Intro",description:"With rnhc you can delete what you already created with create commands.",source:"@site/versioned_docs/version-2.6.0/delete/intro.md",sourceDirName:"delete",slug:"/delete/intro",permalink:"/react-native-help-create/docs/2.6.0/delete/intro",draft:!1,tags:[],version:"2.6.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Delete",permalink:"/react-native-help-create/docs/2.6.0/category/delete"},next:{title:"Delete Components",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-components"}},l={},p=[],s={toc:p};function d(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can delete what you already created with ",(0,o.yg)("a",{parentName:"p",href:"/docs/category/create"},(0,o.yg)("inlineCode",{parentName:"a"},"create")," commands"),"."),(0,o.yg)("p",null,"The following points shows how to deal with deleting your files with the ",(0,o.yg)("inlineCode",{parentName:"p"},"delete")," command."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/561f7ff9.d2db217b.js b/assets/js/561f7ff9.d2db217b.js new file mode 100644 index 0000000..e146330 --- /dev/null +++ b/assets/js/561f7ff9.d2db217b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[507],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),c=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(p.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(t),u=o,y=m["".concat(p,".").concat(u)]||m[u]||d[u]||l;return t?r.createElement(y,a(a({ref:n},s),{},{components:t})):r.createElement(y,a({ref:n},s))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var l=t.length,a=new Array(l);a[0]=u;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[m]="string"==typeof e?e:o,a[1]=i;for(var c=2;c<l;c++)a[c]=t[c];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},7672:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=t(9668),o=(t(6540),t(5680));const l={sidebar_position:2},a="Delete Components",i={unversionedId:"delete/delete-components",id:"version-2.5.1/delete/delete-components",title:"Delete Components",description:"Delete a Component",source:"@site/versioned_docs/version-2.5.1/delete/delete-components.md",sourceDirName:"delete",slug:"/delete/delete-components",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-components",draft:!1,tags:[],version:"2.5.1",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.5.1/delete/intro"},next:{title:"Delete Screens",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-screens"}},p={},c=[{value:"Delete a Component",id:"delete-a-component",level:2},{value:"Delete multiple Components",id:"delete-multiple-components",level:2},{value:"Delete a Components in a Specific Folder",id:"delete-a-components-in-a-specific-folder",level:2}],s={toc:c};function m(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-components"},"Delete Components"),(0,o.yg)("h2",{id:"delete-a-component"},"Delete a Component"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete a component simply run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the component with the given name ",(0,o.yg)("inlineCode",{parentName:"p"},"<component-name>")," under the ",(0,o.yg)("inlineCode",{parentName:"p"},"src/components/")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If the component does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/<component-name>/ does not exist\n")),(0,o.yg)("h2",{id:"delete-multiple-components"},"Delete multiple Components"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete multiple components run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ...\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,o.yg)("h2",{id:"delete-a-components-in-a-specific-folder"},"Delete a Components in a Specific Folder"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete one or multiple components that resides in a specific path under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, you can run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59036d2a.2d38cf52.js b/assets/js/59036d2a.2d38cf52.js new file mode 100644 index 0000000..dad44ac --- /dev/null +++ b/assets/js/59036d2a.2d38cf52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[211],{5680:(e,n,r)=>{r.d(n,{xA:()=>s,yg:()=>d});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function l(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?o(Object(r),!0).forEach((function(n){a(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function i(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},o=Object.keys(e);for(t=0;t<o.length;t++)r=o[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t<o.length;t++)r=o[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=t.createContext({}),p=function(e){var n=t.useContext(c),r=n;return e&&(r="function"==typeof e?e(n):l(l({},n),e)),r},s=function(e){var n=p(e.components);return t.createElement(c.Provider,{value:n},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,d=u["".concat(c,".").concat(m)]||u[m]||y[m]||o;return r?t.createElement(d,l(l({ref:n},s),{},{components:r})):t.createElement(d,l({ref:n},s))}));function d(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p<o;p++)l[p]=r[p];return t.createElement.apply(null,l)}return t.createElement.apply(null,r)}m.displayName="MDXCreateElement"},8712:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var t=r(9668),a=(r(6540),r(5680));const o={sidebar_position:6},l="Notes",i={unversionedId:"notes",id:"version-2.3.4/notes",title:"Notes",description:"- To see the available commands for rnhc you can run:",source:"@site/versioned_docs/version-2.3.4/notes.md",sourceDirName:".",slug:"/notes",permalink:"/react-native-help-create/docs/2.3.4/notes",draft:!1,tags:[],version:"2.3.4",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Combine Screens",permalink:"/react-native-help-create/docs/2.3.4/combine/combine-screens"}},c={},p=[],s={toc:p};function u(e){let{components:n,...r}=e;return(0,a.yg)("wrapper",(0,t.A)({},s,r,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"notes"},"Notes"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To see the available commands for ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc --help\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To see the available positionals and options for a specific command like ",(0,a.yg)("inlineCode",{parentName:"li"},"create")," you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --help\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"In order to ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"You don't seem to be at the root of a react native project\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In ",(0,a.yg)("inlineCode",{parentName:"p"},"create")," command, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If you want to create files with a specific language you can add ",(0,a.yg)("inlineCode",{parentName:"p"},"--js")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"--ts")," options at the end of your ",(0,a.yg)("inlineCode",{parentName:"p"},"create")," command, like this for example:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s test-screen --ts\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"It is advisable to give the components, screens, reducers and actions with this case ",(0,a.yg)("inlineCode",{parentName:"li"},"some-name"),", for example:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s world-to-react\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"You can always overwrite your implementation using the ",(0,a.yg)("inlineCode",{parentName:"li"},"--overwrite")," or ",(0,a.yg)("inlineCode",{parentName:"li"},"-o")," option, for example:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-component -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s test-screen -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer test-reducer -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action test-reducer test-action -o\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This is helpful when you want to update your navigation files, for example you already have a navigation file in ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder and you want to update it with the new screens you created:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack --overwrite\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"When creating reducers you should have already a redux implmentation created with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," so it can work.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"When creating actions, you should have already a redux implementation created with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," as well as an existed reducer with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create --reducer <reducer-name>")," so it can create actions for that specific reducer.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/redux/")," folder (Or your specified path for the root of redux folder in ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc.config.json"),")."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59362658.45d72511.js b/assets/js/59362658.45d72511.js new file mode 100644 index 0000000..1df4d03 --- /dev/null +++ b/assets/js/59362658.45d72511.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9325],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>b});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},i="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),i=u(r),g=o,b=i["".concat(l,".").concat(g)]||i[g]||m[g]||a;return r?n.createElement(b,c(c({ref:t},p),{},{components:r})):n.createElement(b,c({ref:t},p))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[i]="string"==typeof e?e:o,c[1]=s;for(var u=2;u<a;u++)c[u]=r[u];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}g.displayName="MDXCreateElement"},4661:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>i,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var n=r(9668),o=(r(6540),r(5680));const a={slug:"mdx-blog-post",title:"MDX Blog Post",authors:["slorber"],tags:["docusaurus"]},c=void 0,s={permalink:"/react-native-help-create/blog/mdx-blog-post",source:"@site/blog/2021-08-01-mdx-blog-post.mdx",title:"MDX Blog Post",description:"Blog posts support Docusaurus Markdown features, such as MDX.",date:"2021-08-01T00:00:00.000Z",formattedDate:"August 1, 2021",tags:[{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:.175,hasTruncateMarker:!1,authors:[{name:"S\xe9bastien Lorber",title:"Docusaurus maintainer",url:"https://sebastienlorber.com",imageURL:"https://github.com/slorber.png",key:"slorber"}],frontMatter:{slug:"mdx-blog-post",title:"MDX Blog Post",authors:["slorber"],tags:["docusaurus"]},prevItem:{title:"Welcome",permalink:"/react-native-help-create/blog/welcome"},nextItem:{title:"Long Blog Post",permalink:"/react-native-help-create/blog/long-blog-post"}},l={authorsImageUrls:[void 0]},u=[],p={toc:u};function i(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Blog posts support ",(0,o.yg)("a",{parentName:"p",href:"https://docusaurus.io/docs/markdown-features"},"Docusaurus Markdown features"),", such as ",(0,o.yg)("a",{parentName:"p",href:"https://mdxjs.com/"},"MDX"),"."),(0,o.yg)("admonition",{type:"tip"},(0,o.yg)("p",{parentName:"admonition"},"Use the power of React to create interactive blog posts."),(0,o.yg)("pre",{parentName:"admonition"},(0,o.yg)("code",{parentName:"pre",className:"language-js"},"<button onClick={() => alert('button clicked!')}>Click me!</button>\n")),(0,o.yg)("button",{onClick:()=>alert("button clicked!")},"Click me!")))}i.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5db32b5f.909919c6.js b/assets/js/5db32b5f.909919c6.js new file mode 100644 index 0000000..3ab2d7c --- /dev/null +++ b/assets/js/5db32b5f.909919c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9964],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>f});var t=r(6540);function o(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function a(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function c(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?a(Object(r),!0).forEach((function(n){o(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function s(e,n){if(null==e)return{};var r,t,o=function(e,n){if(null==e)return{};var r,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)r=a[t],n.indexOf(r)>=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t<a.length;t++)r=a[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=t.createContext({}),l=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=l(e.components);return t.createElement(i.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=o,f=m["".concat(i,".").concat(d)]||m[d]||u[d]||a;return r?t.createElement(f,c(c({ref:n},p),{},{components:r})):t.createElement(f,c({ref:n},p))}));function f(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[m]="string"==typeof e?e:o,c[1]=s;for(var l=2;l<a;l++)c[l]=r[l];return t.createElement.apply(null,c)}return t.createElement.apply(null,r)}d.displayName="MDXCreateElement"},7275:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var t=r(9668),o=(r(6540),r(5680));const a={sidebar_position:3},c="Combine Screens",s={unversionedId:"combine/combine-screens",id:"version-2.5.1/combine/combine-screens",title:"Combine Screens",description:"To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:",source:"@site/versioned_docs/version-2.5.1/combine/combine-screens.md",sourceDirName:"combine",slug:"/combine/combine-screens",permalink:"/react-native-help-create/docs/2.5.1/combine/combine-screens",draft:!1,tags:[],version:"2.5.1",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Combine Components",permalink:"/react-native-help-create/docs/2.5.1/combine/combine-components"},next:{title:"Notes",permalink:"/react-native-help-create/docs/2.5.1/notes"}},i={},l=[{value:"Example",id:"example",level:2}],p={toc:l};function m(e){let{components:n,...r}=e;return(0,o.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"combine-screens"},"Combine Screens"),(0,o.yg)("p",null,"To combine screens that resides in ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder to a specific path that resides under that same folder you can run:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will move the existed screens for the given inputs to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If somehome one of the given screens does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these screens exist\n")),(0,o.yg)("h2",{id:"example"},"Example"),(0,o.yg)("p",null,"In this example, we have ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-1")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-2")," that exists under ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, and we want to move them to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/foo/bar/")," folder:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s screen-1 screen-2 -f foo/bar\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"screen-1 screen moved to src/screens/foo/bar/\nscreen-2 screen moved to src/screens/foo/bar/\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/61279b62.da6d529f.js b/assets/js/61279b62.da6d529f.js new file mode 100644 index 0000000..e3faf2d --- /dev/null +++ b/assets/js/61279b62.da6d529f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4236],{5680:(e,n,a)=>{a.d(n,{xA:()=>p,yg:()=>u});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function i(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function s(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?i(Object(a),!0).forEach((function(n){r(e,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}))}return e}function o(e,n){if(null==e)return{};var a,t,r=function(e,n){if(null==e)return{};var a,t,r={},i=Object.keys(e);for(t=0;t<i.length;t++)a=i[t],n.indexOf(a)>=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)a=i[t],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=t.createContext({}),c=function(e){var n=t.useContext(l),a=n;return e&&(a="function"==typeof e?e(n):s(s({},n),e)),a},p=function(e){var n=c(e.components);return t.createElement(l.Provider,{value:n},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),g=c(a),m=r,u=g["".concat(l,".").concat(m)]||g[m]||d[m]||i;return a?t.createElement(u,s(s({ref:n},p),{},{components:a})):t.createElement(u,s({ref:n},p))}));function u(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=a.length,s=new Array(i);s[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[g]="string"==typeof e?e:r,s[1]=o;for(var c=2;c<i;c++)s[c]=a[c];return t.createElement.apply(null,s)}return t.createElement.apply(null,a)}m.displayName="MDXCreateElement"},1665:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var t=a(9668),r=(a(6540),a(5680));const i={sidebar_position:4},s="Create Navigations",o={unversionedId:"create/create-navigations",id:"version-2.6.0/create/create-navigations",title:"Create Navigations",description:"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.",source:"@site/versioned_docs/version-2.6.0/create/create-navigations.md",sourceDirName:"create",slug:"/create/create-navigations",permalink:"/react-native-help-create/docs/2.6.0/create/create-navigations",draft:!1,tags:[],version:"2.6.0",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Create Screens",permalink:"/react-native-help-create/docs/2.6.0/create/create-screens"},next:{title:"Using Templates",permalink:"/react-native-help-create/docs/2.6.0/create/using-templates"}},l={},c=[{value:"Create Navigation for specific screens",id:"create-navigation-for-specific-screens",level:2},{value:"Example",id:"example",level:3},{value:"Create Navigation for specific screens in a specific folder",id:"create-navigation-for-specific-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Navigation that depends on other navigations",id:"create-navigation-that-depends-on-other-navigations",level:2},{value:"Example",id:"example-2",level:3},{value:"Create Navigation for all screens",id:"create-navigation-for-all-screens",level:2}],p={toc:c};function g(e){let{components:n,...a}=e;return(0,r.yg)("wrapper",(0,t.A)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-navigations"},"Create Navigations"),(0,r.yg)("p",null,"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation."),(0,r.yg)("h2",{id:"create-navigation-for-specific-screens"},"Create Navigation for specific screens"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation between two or more screens, simply run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"<navigation-type>")," can be either of these types: ",(0,r.yg)("inlineCode",{parentName:"p"},"stack"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"native-stack"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"drawer"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"bottom-tabs"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"material-bottom-tabs")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"material-top-tabs"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The number of given screens should be 2 or more.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If one of the screens does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will try to create the ",(0,r.yg)("inlineCode",{parentName:"p"},"navigation.jsx")," file that resides next to the existed screens.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If all screens does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rhnc")," will prompt you the following:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"None of these screens exist\n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack screen-1 screen-2\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file next to ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-1")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-2")," screens as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The content for the ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file is as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport Screen1Screen from "./screen-1";\nimport Screen2Screen from "./screen-2";\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,r.yg)("h2",{id:"create-navigation-for-specific-screens-in-a-specific-folder"},"Create Navigation for specific screens in a specific folder"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation file for screens that resides in a specific path under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create the ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder for the screens that resides in the same location.")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rhnc create -n drawer screen-1 screen-2 -f foo/bar\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/foo/bar/")," folder which contains the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport Screen1Screen from "./screen-1";\nimport Screen2Screen from "./screen-2";\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,r.yg)("h2",{id:"create-navigation-that-depends-on-other-navigations"},"Create Navigation that depends on other navigations"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation that depends on another navigation you can run the same command as this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file that resides in the same location for the given inputs.")),(0,r.yg)("h3",{id:"example-2"},"Example"),(0,r.yg)("p",null,"In this example, we have the following structure:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("p",null,"Where we have a drawer navigation between ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-two")," under the ",(0,r.yg)("inlineCode",{parentName:"p"},"folder")," folder. And we want to create a stack navigation between ",(0,r.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-three"),". And to show that ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will continue to run for the existed screens we added in the command line ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-four")," which does not exist as the following:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack folder screen-three screen-four\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The command will output the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/screen-four/ does not exist\nsrc/screens/navigation.jsx created\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will add a new ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," that resides between ",(0,r.yg)("inlineCode",{parentName:"li"},"folder")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-three")," as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the content of the new ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file will be like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport FolderNavigation from "./folder/navigation";\nimport ScreenThreeScreen from "./screen-three";\n\nconst routes = [\n {\n name: "folder",\n component: FolderNavigation,\n },\n {\n name: "screen-three",\n component: ScreenThreeScreen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,r.yg)("h2",{id:"create-navigation-for-all-screens"},"Create Navigation for all screens"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation file for multiple screens that resides at the root of the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create the navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,r.yg)("p",null,"You can also run this command to create a navigation file for multiple screens that resides in a specific path under the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This will create the navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This also work for the nested navigations.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("p",null,"When you try to create a navigation like this:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack\n")),(0,r.yg)("p",null,"It will output the following:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"./src/screens/folder/navigation.jsx does not exist\n./src/screens/navigation.jsx created\n")),(0,r.yg)("p",null,"And the ",(0,r.yg)("inlineCode",{parentName:"p"},"./src/screens/navigation.jsx")," file will only contain ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-four")," because the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/folder")," does not contain a navigation file."),(0,r.yg)("p",null,"So if you want to create a navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one."),(0,r.yg)("p",null,"By updating it means overwriting in other words, so you can just do this:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack -o\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6494072b.098e9d46.js b/assets/js/6494072b.098e9d46.js new file mode 100644 index 0000000..f1f83cd --- /dev/null +++ b/assets/js/6494072b.098e9d46.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5681],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>g});var l=t(6540);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);r&&(l=l.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function c(e,r){if(null==e)return{};var t,l,n=function(e,r){if(null==e)return{};var t,l,n={},a=Object.keys(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=l.createContext({}),u=function(e){var r=l.useContext(o),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=u(e.components);return l.createElement(o.Provider,{value:r},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return l.createElement(l.Fragment,{},r)}},m=l.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,o=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=u(t),m=n,g=s["".concat(o,".").concat(m)]||s[m]||p[m]||a;return t?l.createElement(g,i(i({ref:r},d),{},{components:t})):l.createElement(g,i({ref:r},d))}));function g(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=m;var c={};for(var o in r)hasOwnProperty.call(r,o)&&(c[o]=r[o]);c.originalType=e,c[s]="string"==typeof e?e:n,i[1]=c;for(var u=2;u<a;u++)i[u]=t[u];return l.createElement.apply(null,i)}return l.createElement.apply(null,t)}m.displayName="MDXCreateElement"},9393:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var l=t(9668),n=(t(6540),t(5680));const a={sidebar_position:5},i="Delete Redux",c={unversionedId:"delete/delete-redux",id:"delete/delete-redux",title:"Delete Redux",description:"To delete a redux implementation run:",source:"@site/docs/delete/delete-redux.md",sourceDirName:"delete",slug:"/delete/delete-redux",permalink:"/react-native-help-create/docs/delete/delete-redux",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/delete/delete-navigations"},next:{title:"Delete Configuration",permalink:"/react-native-help-create/docs/delete/delete-configuration"}},o={},u=[{value:"Delete a reducer",id:"delete-a-reducer",level:2},{value:"Delete multiple reducers",id:"delete-multiple-reducers",level:2},{value:"Delete all reducers",id:"delete-all-reducers",level:2},{value:"Delete an action",id:"delete-an-action",level:2},{value:"Delete multiple actions",id:"delete-multiple-actions",level:2},{value:"Delete all actions for a specific reducer",id:"delete-all-actions-for-a-specific-reducer",level:2}],d={toc:u};function s(e){let{components:r,...t}=e;return(0,n.yg)("wrapper",(0,l.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"delete-redux"},"Delete Redux"),(0,n.yg)("p",null,"To delete a redux implementation run:"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -r\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"This will delete the ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," folder under ",(0,n.yg)("inlineCode",{parentName:"p"},"src/")," with all of its files and subfolders.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"If ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," does not exist, ",(0,n.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"src/redux/ does not exist\n")),(0,n.yg)("h1",{id:"reducers"},"Reducers"),(0,n.yg)("h2",{id:"delete-a-reducer"},"Delete a reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete a reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"This will delete the existed reducer under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder, if not ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the ",(0,n.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder to remove it from the import list as well as from the ",(0,n.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,n.yg)("h2",{id:"delete-multiple-reducers"},"Delete multiple reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple reducers at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-reducers"},"Delete all reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all reducers run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer\n")),(0,n.yg)("h1",{id:"actions"},"Actions"),(0,n.yg)("h2",{id:"delete-an-action"},"Delete an action"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete an action run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"If the reducer does not exist, ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/actions/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts"),".")),(0,n.yg)("h2",{id:"delete-multiple-actions"},"Delete multiple actions"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple actions for a specific reducer at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-actions-for-a-specific-reducer"},"Delete all actions for a specific reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all actions for a specific reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name>\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/649dc010.ea36391f.js b/assets/js/649dc010.ea36391f.js new file mode 100644 index 0000000..2e8d83e --- /dev/null +++ b/assets/js/649dc010.ea36391f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2704],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),y=a,d=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return n?r.createElement(d,i(i({ref:t},s),{},{components:n})):r.createElement(d,i({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},8408:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(9668),a=(n(6540),n(5680));const o={sidebar_position:5},i="Using Templates",l={unversionedId:"create/using-templates",id:"version-2.3.4/create/using-templates",title:"Using Templates",description:"You can create your screens and components with your defined templates by following these steps:",source:"@site/versioned_docs/version-2.3.4/create/using-templates.md",sourceDirName:"create",slug:"/create/using-templates",permalink:"/react-native-help-create/docs/2.3.4/create/using-templates",draft:!1,tags:[],version:"2.3.4",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Create Navigations",permalink:"/react-native-help-create/docs/2.3.4/create/create-navigations"},next:{title:"Create Redux",permalink:"/react-native-help-create/docs/2.3.4/create/create-redux"}},p={},c=[{value:"Example",id:"example",level:3}],s={toc:c};function m(e){let{components:t,...n}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"using-templates"},"Using Templates"),(0,a.yg)("p",null,"You can create your screens and components with your defined templates by following these steps:"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"First thing to do is to create a ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder at the root of your react project.")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"Inside the ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder you can add your template, for example ",(0,a.yg)("inlineCode",{parentName:"p"},"componentWithUseEffect.tsx")," (the file extension doesn't matter so it could be ",(0,a.yg)("inlineCode",{parentName:"p"},"*.jsx"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"*.js")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"*.tsx"),"):"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import React, { useEffect } from "react";\nimport { View, Text } from "react-native";\n\nexport default function __COMPONENT__() {\n useEffect(() => {}, []);\n\n return (\n <View>\n <Text>Hello, World!</Text>\n </View>\n );\n}\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"There is a restriction in naming these templates which is you should not put dots (",(0,a.yg)("inlineCode",{parentName:"p"},"."),") between the name, like this (",(0,a.yg)("inlineCode",{parentName:"p"},"component.WithUseEffect.jsx"),"). It should only contain one dot that makes the extension file like we're doing above.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You should type ",(0,a.yg)("inlineCode",{parentName:"p"},"__COMPONENT__")," in the template file and it will be replaced with the component name you want to create."))),(0,a.yg)("ol",{start:3},(0,a.yg)("li",{parentName:"ol"},"After creating your template you can use them to create components or screens as the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name> -t <template-name>\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name> -t <template-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And of course, you can create multiple components or screens with the same template.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("p",null,"As for our example it can be used like this for the above template:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp -t componentWithUseEffect\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will create ",(0,a.yg)("inlineCode",{parentName:"p"},"comp")," component under ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder and the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for this component will contain the same code written in the template.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the screen case, the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for that screen will contain the code written in the template."))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/66dff133.df1fae96.js b/assets/js/66dff133.df1fae96.js new file mode 100644 index 0000000..e2f94fa --- /dev/null +++ b/assets/js/66dff133.df1fae96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8828],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),u=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=u(e.components);return a.createElement(c.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},g=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=u(t),g=r,m=s["".concat(c,".").concat(g)]||s[g]||d[g]||i;return t?a.createElement(m,l(l({ref:n},p),{},{components:t})):a.createElement(m,l({ref:n},p))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=g;var o={};for(var c in n)hasOwnProperty.call(n,c)&&(o[c]=n[c]);o.originalType=e,o[s]="string"==typeof e?e:r,l[1]=o;for(var u=2;u<i;u++)l[u]=t[u];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}g.displayName="MDXCreateElement"},590:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var a=t(9668),r=(t(6540),t(5680));const i={sidebar_position:6},l="Create Redux",o={unversionedId:"create/create-redux",id:"version-2.5.1/create/create-redux",title:"Create Redux",description:"To create a redux implementation run:",source:"@site/versioned_docs/version-2.5.1/create/create-redux.md",sourceDirName:"create",slug:"/create/create-redux",permalink:"/react-native-help-create/docs/2.5.1/create/create-redux",draft:!1,tags:[],version:"2.5.1",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Using Templates",permalink:"/react-native-help-create/docs/2.5.1/create/using-templates"},next:{title:"Using Configuration",permalink:"/react-native-help-create/docs/2.5.1/create/using-configuration"}},c={},u=[{value:"Create a reducer",id:"create-a-reducer",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple reducers",id:"create-multiple-reducers",level:2},{value:"Create an action",id:"create-an-action",level:2},{value:"Example",id:"example-1",level:3},{value:"Create multiple actions",id:"create-multiple-actions",level:2}],p={toc:u};function s(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,a.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-redux"},"Create Redux"),(0,r.yg)("p",null,"To create a redux implementation run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/")," folder containing the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500redux\n \u2502 index.js\n \u2502\n \u251c\u2500\u2500\u2500actions\n \u2502 \u2514\u2500\u2500\u2500general\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500reducers\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500general\n index.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Where ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," under the ",(0,r.yg)("inlineCode",{parentName:"li"},"redux")," folder contains the redux store definition:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { applyMiddleware, compose, createStore } from "redux";\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"And ",(0,r.yg)("inlineCode",{parentName:"p"},"actions")," folder contains the action for each reducer, as for a example, at first ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will create a sample reducer and action which is called ",(0,r.yg)("inlineCode",{parentName:"p"},"general"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"general")," action's ",(0,r.yg)("inlineCode",{parentName:"p"},"index.js")," contains:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'// write your general actions here\n\n// this is an example for an action\nexport const init = () => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"general")," reducer's ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," contains:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'const initialState = { message: "" };\n\nexport const general = (state = initialState, action) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder contains the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In TypeScript, the files will be written as the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\nexport type StateInterface = ReturnType<typeof mainStore.getState>;\n\n/**\n * list of action types\n */\nexport type ActionType = "UPDATE_GENERAL";\n\nexport interface Action<T> {\n type: ActionType;\n payload: Partial<T>;\n}\n\nexport type ThunkResult<\n A = Record<string, unknown>,\n E = Record<string, unknown>\n> = ThunkAction<void, StateInterface, E, Action<A>>;\n\nexport type Dispatch<A> = ThunkDispatch<\n StateInterface,\n Record<string, unknown>,\n Action<A>\n>;\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/actions/general/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { GeneralState } from "../../reducers/general";\nimport { ThunkResult } from "../..";\n\n// write your general actions here\n\n// this is an example for an action\nexport const init =\n (): ThunkResult<GeneralState> => async (dispatch, getState) => {\n dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });\n };\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/reducers/general/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { Action } from "../..";\n\nexport interface GeneralState {\n message: string;\n}\n\nexport const general = (\n state: GeneralState = {\n message: "",\n },\n action: Action<GeneralState>\n) => {\n switch (action.type) {\n case "UPDATE_GENERAL":\n return { ...state, ...action.payload };\n default:\n return state;\n }\n};\n')),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"redux/reducers/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { combineReducers } from "redux";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n general,\n});\n')),(0,r.yg)("h1",{id:"reducers"},"Reducers"),(0,r.yg)("h2",{id:"create-a-reducer"},"Create a reducer"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a reducer, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name>\n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer auth\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/reducers/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," for this reducer will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/auth/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"const initialState = {};\n\nexport const auth = (state = initialState, action) => {\n switch (action.type) {\n default:\n return state;\n }\n};\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"It will also add the reducer to the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use it in the ",(0,r.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/reducers/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'import { combineReducers } from "redux";\nimport { auth } from "./auth";\nimport { general } from "./general";\n\nexport const mainReducer = combineReducers({\n auth,\n general,\n});\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If you don't have a redux implementation create using ",(0,r.yg)("inlineCode",{parentName:"li"},"rnhc create -r"),", this command will prompt:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Redux implementation does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"You can also overwrite the reducer by running:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name> -o\n")),(0,r.yg)("h2",{id:"create-multiple-reducers"},"Create multiple reducers"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple reducers, you must have a redux implementation then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will also update your ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"reducers")," folder to use the reducers you created.")),(0,r.yg)("h1",{id:"actions"},"Actions"),(0,r.yg)("h2",{id:"create-an-action"},"Create an action"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action <reducer-name> <action-name>\n")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"In this example we are going to create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, so we will run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action auth login\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"login")," action under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," folder and the ",(0,r.yg)("inlineCode",{parentName:"li"},"login.js")," for this action will contain the same code written in the template.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/login.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'export const loginAction = () => async (dispatch, getState) => {\n dispatch({ type: "AUTH_LOGIN", payload: {} });\n};\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will update the ",(0,r.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/actions/auth/")," to export the action.")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/actions/auth/index.js")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},'export { loginAction } from "./login";\n')),(0,r.yg)("h2",{id:"create-multiple-actions"},"Create multiple actions"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create multiple actions, you must have a redux implementation and existed reducer, then run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"If the reducer doesn't exist, you will get an error like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/x does not exist\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ",(0,r.yg)("inlineCode",{parentName:"li"},"ActionType")," in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts")," file. For example if you create an action for the ",(0,r.yg)("inlineCode",{parentName:"li"},"auth")," reducer, you will get the following:")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"src/redux/index.ts")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-ts"},'import { applyMiddleware, compose, createStore } from "redux";\nimport thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";\n\nimport { mainReducer } from "./reducers";\n\n/**\n * the main redux state, with all the reducers\n */\nexport const mainStore = createStore(\n mainReducer,\n compose(applyMiddleware(thunk))\n);\n\n/**\n * Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test\n */\nexport const createMainStore = () => {\n return createStore(mainReducer, compose(applyMiddleware(thunk)));\n};\n\nexport type StateInterface = ReturnType<typeof mainStore.getState>;\n\n/**\n * list of action types\n */\nexport type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";\n\nexport interface Action<T> {\n type: ActionType;\n payload: Partial<T>;\n}\nexport type ThunkResult<\n A = Record<string, unknown>,\n E = Record<string, unknown>\n> = ThunkAction<void, StateInterface, E, Action<A>>;\n\nexport type Dispatch<A> = ThunkDispatch<\n StateInterface,\n Record<string, unknown>,\n Action<A>\n>;\n')),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"It will also update the necessary files that imports and exports modules in order to use the action in the reducer.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"Also another note, if you prefer not using ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," you can set that in ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file, this will let you create your store and actions without applying the ",(0,r.yg)("inlineCode",{parentName:"p"},"redux-thunk")," middleware (For more details check ",(0,r.yg)("a",{parentName:"p",href:"./using-configuration"},"configuration section"),")."))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6875c492.0cd5186c.js b/assets/js/6875c492.0cd5186c.js new file mode 100644 index 0000000..f1c5b91 --- /dev/null +++ b/assets/js/6875c492.0cd5186c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4813],{7713:(e,t,a)=>{a.d(t,{A:()=>s});var n=a(6540),l=a(1312),r=a(9022);function s(e){const{metadata:t}=e,{previousPage:a,nextPage:s}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,l.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(r.A,{permalink:a,title:n.createElement(l.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),s&&n.createElement(r.A,{permalink:s,title:n.createElement(l.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},3892:(e,t,a)=>{a.d(t,{A:()=>s});var n=a(6540),l=a(7131),r=a(8258);function s(e){let{items:t,component:a=r.A}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(l.i,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}},3069:(e,t,a)=>{a.r(t),a.d(t,{default:()=>E});var n=a(6540),l=a(53),r=a(1312),s=a(5846),o=a(9024),i=a(7559),g=a(5489),c=a(6669),m=a(7713),p=a(1463),u=a(3892);function d(e){const t=function(){const{selectMessage:e}=(0,s.W)();return t=>e(t,(0,r.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,r.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function h(e){let{tag:t}=e;const a=d(t);return n.createElement(n.Fragment,null,n.createElement(o.be,{title:a}),n.createElement(p.A,{tag:"blog_tags_posts"}))}function b(e){let{tag:t,items:a,sidebar:l,listMetadata:s}=e;const o=d(t);return n.createElement(c.A,{sidebar:l},n.createElement("header",{className:"margin-bottom--xl"},n.createElement("h1",null,o),n.createElement(g.A,{href:t.allTagsPath},n.createElement(r.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page"},"View All Tags"))),n.createElement(u.A,{items:a}),n.createElement(m.A,{metadata:s}))}function E(e){return n.createElement(o.e3,{className:(0,l.A)(i.G.wrapper.blogPages,i.G.page.blogTagPostListPage)},n.createElement(h,e),n.createElement(b,e))}}}]); \ No newline at end of file diff --git a/assets/js/696b3c19.589fea46.js b/assets/js/696b3c19.589fea46.js new file mode 100644 index 0000000..4a44339 --- /dev/null +++ b/assets/js/696b3c19.589fea46.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1172],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),g=i,f=p["".concat(c,".").concat(g)]||p[g]||u[g]||a;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:i,l[1]=o;for(var s=2;s<a;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}g.displayName="MDXCreateElement"},6055:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var r=n(9668),i=(n(6540),n(5680));const a={sidebar_position:4},l="Delete Navigations",o={unversionedId:"delete/delete-navigations",id:"version-2.6.0/delete/delete-navigations",title:"Delete Navigations",description:"Delete the root Navigation",source:"@site/versioned_docs/version-2.6.0/delete/delete-navigations.md",sourceDirName:"delete",slug:"/delete/delete-navigations",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-navigations",draft:!1,tags:[],version:"2.6.0",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Delete Screens",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-screens"},next:{title:"Delete Redux",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-redux"}},c={},s=[{value:"Delete the root Navigation",id:"delete-the-root-navigation",level:2},{value:"Delete a Navigation in a Specific Folder",id:"delete-a-navigation-in-a-specific-folder",level:2}],d={toc:s};function p(e){let{components:t,...n}=e;return(0,i.yg)("wrapper",(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"delete-navigations"},"Delete Navigations"),(0,i.yg)("h2",{id:"delete-the-root-navigation"},"Delete the root Navigation"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder simply run:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n\n")),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"This will delete the navigation file if it exists, if not ",(0,i.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"It seems there is no navigation file in src/screens/\n")),(0,i.yg)("h2",{id:"delete-a-navigation-in-a-specific-folder"},"Delete a Navigation in a Specific Folder"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in a specific path that resides under ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder you can run:")),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n -f <folder-path>\n")),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"This will delete the navigation file if it does exist under the ",(0,i.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c6d6f25.55bd14c2.js b/assets/js/6c6d6f25.55bd14c2.js new file mode 100644 index 0000000..02b1f9c --- /dev/null +++ b/assets/js/6c6d6f25.55bd14c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7403],{4777:e=>{e.exports=JSON.parse('{"title":"Delete","description":"How to delete files in the project?","slug":"/category/delete","permalink":"/react-native-help-create/docs/2.3.4/category/delete","navigation":{"previous":{"title":"Using Configuration","permalink":"/react-native-help-create/docs/2.3.4/create/using-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.3.4/delete/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/6ccd978f.57ea38ae.js b/assets/js/6ccd978f.57ea38ae.js new file mode 100644 index 0000000..e86cc04 --- /dev/null +++ b/assets/js/6ccd978f.57ea38ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3673],{5680:(e,n,t)=>{t.d(n,{xA:()=>m,yg:()=>f});var o=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,o,r=function(e,n){if(null==e)return{};var t,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)t=a[o],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)t=a[o],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=o.createContext({}),l=function(e){var n=o.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},m=function(e){var n=l(e.components);return o.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},d=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=r,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||a;return t?o.createElement(f,c(c({ref:n},m),{},{components:t})):o.createElement(f,c({ref:n},m))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,c=new Array(a);c[0]=d;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[s]="string"==typeof e?e:r,c[1]=i;for(var l=2;l<a;l++)c[l]=t[l];return o.createElement.apply(null,c)}return o.createElement.apply(null,t)}d.displayName="MDXCreateElement"},8290:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=t(9668),r=(t(6540),t(5680));const a={sidebar_position:2},c="Combine Components",i={unversionedId:"combine/combine-components",id:"version-2.6.0/combine/combine-components",title:"Combine Components",description:"To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:",source:"@site/versioned_docs/version-2.6.0/combine/combine-components.md",sourceDirName:"combine",slug:"/combine/combine-components",permalink:"/react-native-help-create/docs/2.6.0/combine/combine-components",draft:!1,tags:[],version:"2.6.0",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.6.0/combine/intro"},next:{title:"Combine Screens",permalink:"/react-native-help-create/docs/2.6.0/combine/combine-screens"}},p={},l=[{value:"Example",id:"example",level:2}],m={toc:l};function s(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,o.A)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"combine-components"},"Combine Components"),(0,r.yg)("p",null,"To combine components that resides in ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/")," folder to a specific path that resides under that same folder you can run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This will move the existed components for the given inputs to ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/<folder-path>/")," folder.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If somehome one of the given components does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,r.yg)("h2",{id:"example"},"Example"),(0,r.yg)("p",null,"In this example, we have ",(0,r.yg)("inlineCode",{parentName:"p"},"comp-1")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"comp-2")," that exists under ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, and we want to move them to ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/foo/bar/")," folder:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c comp-1 comp-2 -f foo/bar\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"comp-1 component moved to src/components/foo/bar/\ncomp-2 component moved to src/components/foo/bar/\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6f6b9ffc.58a92707.js b/assets/js/6f6b9ffc.58a92707.js new file mode 100644 index 0000000..8050368 --- /dev/null +++ b/assets/js/6f6b9ffc.58a92707.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6071],{3940:e=>{e.exports=JSON.parse('{"title":"Create","description":"How to create files in the project?","slug":"/category/create","permalink":"/react-native-help-create/docs/category/create","navigation":{"previous":{"title":"Getting Started","permalink":"/react-native-help-create/docs/getting-started"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/create/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/73664a40.98100168.js b/assets/js/73664a40.98100168.js new file mode 100644 index 0000000..56c1738 --- /dev/null +++ b/assets/js/73664a40.98100168.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1972],{5680:(e,t,i)=>{i.d(t,{xA:()=>a,yg:()=>d});var o=i(6540);function s(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function n(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?r(Object(i),!0).forEach((function(t){s(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){if(null==e)return{};var i,o,s=function(e,t){if(null==e)return{};var i,o,s={},r=Object.keys(e);for(o=0;o<r.length;o++)i=r[o],t.indexOf(i)>=0||(s[i]=e[i]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)i=r[o],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(s[i]=e[i])}return s}var u=o.createContext({}),m=function(e){var t=o.useContext(u),i=t;return e&&(i="function"==typeof e?e(t):n(n({},t),e)),i},a=function(e){var t=m(e.components);return o.createElement(u.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var i=e.components,s=e.mdxType,r=e.originalType,u=e.parentName,a=l(e,["components","mdxType","originalType","parentName"]),c=m(i),g=s,d=c["".concat(u,".").concat(g)]||c[g]||p[g]||r;return i?o.createElement(d,n(n({ref:t},a),{},{components:i})):o.createElement(d,n({ref:t},a))}));function d(e,t){var i=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=i.length,n=new Array(r);n[0]=g;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[c]="string"==typeof e?e:s,n[1]=l;for(var m=2;m<r;m++)n[m]=i[m];return o.createElement.apply(null,n)}return o.createElement.apply(null,i)}g.displayName="MDXCreateElement"},2656:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>m});var o=i(9668),s=(i(6540),i(5680));const r={slug:"long-blog-post",title:"Long Blog Post",authors:"endi",tags:["hello","docusaurus"]},n=void 0,l={permalink:"/react-native-help-create/blog/long-blog-post",source:"@site/blog/2019-05-29-long-blog-post.md",title:"Long Blog Post",description:"This is the summary of a very long blog post,",date:"2019-05-29T00:00:00.000Z",formattedDate:"May 29, 2019",tags:[{label:"hello",permalink:"/react-native-help-create/blog/tags/hello"},{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:2.05,hasTruncateMarker:!0,authors:[{name:"Endilie Yacop Sucipto",title:"Maintainer of Docusaurus",url:"https://github.com/endiliey",imageURL:"https://github.com/endiliey.png",key:"endi"}],frontMatter:{slug:"long-blog-post",title:"Long Blog Post",authors:"endi",tags:["hello","docusaurus"]},prevItem:{title:"MDX Blog Post",permalink:"/react-native-help-create/blog/mdx-blog-post"},nextItem:{title:"First Blog Post",permalink:"/react-native-help-create/blog/first-blog-post"}},u={authorsImageUrls:[void 0]},m=[],a={toc:m};function c(e){let{components:t,...i}=e;return(0,s.yg)("wrapper",(0,o.A)({},a,i,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("p",null,"This is the summary of a very long blog post,"),(0,s.yg)("p",null,"Use a ",(0,s.yg)("inlineCode",{parentName:"p"},"\x3c!--")," ",(0,s.yg)("inlineCode",{parentName:"p"},"truncate")," ",(0,s.yg)("inlineCode",{parentName:"p"},"--\x3e")," comment to limit blog post size in the list view."),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"),(0,s.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7477.3266e732.js b/assets/js/7477.3266e732.js new file mode 100644 index 0000000..69c9ef3 --- /dev/null +++ b/assets/js/7477.3266e732.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7477],{7477:(e,t,r)=>{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t,r){var a,c=t.initialState;return{getState:function(){return c},dispatch:function(a,i){var l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},c);c=e(c,{type:a,props:t,payload:i}),r({state:c,prevState:l})},pendingRequests:(a=[],{add:function(e){return a.push(e),e.finally((function(){a=a.filter((function(t){return t!==e}))}))},cancelAll:function(){a.forEach((function(e){return e.cancel()}))},isEmpty:function(){return 0===a.length}})}}function c(e){return e.reduce((function(e,t){return e.concat(t)}),[])}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){return 0===e.collections.length?0:e.collections.reduce((function(e,t){return e+t.items.length}),0)}r.r(t),r.d(t,{DocSearchModal:()=>Dr});var f=0;var m=function(){};function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){d(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:m},e);return Promise.resolve(t)})))}))}function v(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function g(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?g(Object(r),!0).forEach((function(t){O(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function O(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){j(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function j(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function w(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?w(Object(r),!0).forEach((function(t){I(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function I(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function D(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return C(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return C(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function k(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?k(Object(r),!0).forEach((function(t){x(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function x(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function N(e){return Boolean(e.execute)}function R(e,t){return r=e,Boolean(null==r?void 0:r.execute)?A(A({},e),{},{requests:e.queries.map((function(r){return{query:r,sourceId:t,transformResponse:e.transformResponse}}))}):{items:e,sourceId:t};var r}function _(e){var t=e.reduce((function(e,t){if(!N(t))return e.push(t),e;var r=t.searchClient,n=t.execute,o=t.requesterId,a=t.requests,c=e.find((function(e){return N(t)&&N(e)&&e.searchClient===r&&Boolean(o)&&e.requesterId===o}));if(c){var i;(i=c.items).push.apply(i,D(a))}else{var l={execute:n,requesterId:o,items:a,searchClient:r};e.push(l)}return e}),[]).map((function(e){if(!N(e))return Promise.resolve(e);var t=e,r=t.execute,n=t.items;return r({searchClient:t.searchClient,requests:n})}));return Promise.all(t).then((function(e){return c(e)}))}function q(e,t){return t.map((function(t){var r=e.filter((function(e){return e.sourceId===t.sourceId})),n=r.map((function(e){return e.items})),o=r[0].transformResponse,a=o?o(function(e){var t=e.map((function(e){var t;return P(P({},e),{},{hits:null===(t=e.hits)||void 0===t?void 0:t.map((function(t){return P(P({},t),{},{__autocomplete_indexName:e.index,__autocomplete_queryID:e.queryID})}))})}));return{results:t,hits:t.map((function(e){return e.hits})).filter(Boolean),facetHits:t.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}}(n)):n;return Array.isArray(a),a.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:a}}))}function T(e,t){var r=t;return{then:function(t,n){return T(e.then(H(t,r,e),H(n,r,e)),r)},catch:function(t){return T(e.catch(H(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),T(e.finally(H(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function L(e){return T(new Promise((function(t,r){return e(t,r)})),{isCanceled:!1,onCancelList:[]})}function M(e){return T(e,{isCanceled:!1,onCancelList:[]})}function H(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function F(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,r){var n=(e[r-1]||0)+t;return e.push(n),e}),[]).reduce((function(t,r){return r<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var r=t.items[function(e){for(var t=e.state,r=e.collection,n=!1,o=0,a=0;!1===n;){var c=t.collections[o];if(c===r){n=!0;break}a+=c.items.length,o++}return t.activeItemId-a}({state:e,collection:t})],n=t.source;return{item:r,itemInputValue:n.getItemInputValue({item:r,state:e}),itemUrl:n.getItemUrl({item:r,state:e}),source:n}}L.resolve=function(e){return M(Promise.resolve(e))},L.reject=function(e){return M(Promise.reject(e))};var U=["event","nextState","props","query","refresh","store"];function B(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function V(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?B(Object(r),!0).forEach((function(t){K(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):B(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function K(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var J,z,W,Q=null,Z=(J=-1,z=-1,W=void 0,function(e){var t=++J;return Promise.resolve(e).then((function(e){return W&&t<z?W:(z=t,W=e,e)}))});function Y(e){var t=e.event,r=e.nextState,n=void 0===r?{}:r,o=e.props,a=e.query,i=e.refresh,l=e.store,s=$(e,U);Q&&o.environment.clearTimeout(Q);var u=s.setCollections,f=s.setIsOpen,m=s.setQuery,p=s.setActiveItemId,d=s.setStatus;if(m(a),p(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var h,v=l.getState().collections.map((function(e){return V(V({},e),{},{items:[]})}));d("idle"),u(v),f(null!==(h=n.isOpen)&&void 0!==h?h:o.shouldPanelOpen({state:l.getState()}));var y=M(Z(v).then((function(){return Promise.resolve()})));return l.pendingRequests.add(y)}d("loading"),Q=o.environment.setTimeout((function(){d("stalled")}),o.stallThreshold);var g=M(Z(o.getSources(V({query:a,refresh:i,state:l.getState()},s)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(V({query:a,refresh:i,state:l.getState()},s))).then((function(t){return R(t,e.sourceId)}))}))).then(_).then((function(t){return q(t,e)})).then((function(e){return function(e){var t=e.collections,r=e.props,n=e.state,o=t.reduce((function(e,t){return E(E({},e),{},j({},t.source.sourceId,E(E({},t.source),{},{getItems:function(){return c(t.items)}})))}),{});return c(r.reshape({sources:Object.values(o),sourcesBySourceId:o,state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:l.getState()})}))})))).then((function(e){var r;d("idle"),u(e);var c=o.shouldPanelOpen({state:l.getState()});f(null!==(r=n.isOpen)&&void 0!==r?r:o.openOnFocus&&!a&&c||c);var m=F(l.getState());if(null!==l.getState().activeItemId&&m){var p=m.item,h=m.itemInputValue,v=m.itemUrl,y=m.source;y.onActive(V({event:t,item:p,itemInputValue:h,itemUrl:v,refresh:i,source:y,state:l.getState()},s))}})).finally((function(){d("idle"),Q&&o.environment.clearTimeout(Q)}));return l.pendingRequests.add(g)}var G=["event","props","refresh","store"];function X(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ee(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?X(Object(r),!0).forEach((function(t){te(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):X(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function te(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function re(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var ne=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;var oe=["props","refresh","store"],ae=["inputElement","formElement","panelElement"],ce=["inputElement"],ie=["inputElement","maxLength"],le=["item","source"];function se(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ue(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?se(Object(r),!0).forEach((function(t){fe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):se(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function fe(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function me(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pe(e){var t=e.props,r=e.refresh,n=e.store,o=me(e,oe);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,a=e.panelElement;function c(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,a].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return ue({onTouchStart:c,onMouseDown:c,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},me(e,ae))},getRootProps:function(e){return ue({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return ue({action:"",noValidate:!0,role:"search",onSubmit:function(a){var c;a.preventDefault(),t.onSubmit(ue({event:a,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(c=e.inputElement)||void 0===c||c.blur()},onReset:function(a){var c;a.preventDefault(),t.onReset(ue({event:a,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(c=e.inputElement)||void 0===c||c.focus()}},me(e,ce))},getLabelProps:function(e){return ue({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var a;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&Y(ue({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var i=e||{},l=(i.inputElement,i.maxLength),s=void 0===l?512:l,u=me(i,ie),f=F(n.getState()),p=function(e){return Boolean(e&&e.match(ne))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),d=null!=f&&f.itemUrl&&!p?"go":"search";return ue({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:s,type:"search",onChange:function(e){Y(ue({event:e,props:t,query:e.currentTarget.value.slice(0,s),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,a=re(e,G);if("ArrowUp"===t.key||"ArrowDown"===t.key){var c=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},i=function(){var e=F(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,c=e.itemInputValue,i=e.itemUrl,l=e.source;l.onActive(ee({event:t,item:r,itemInputValue:c,itemUrl:i,refresh:n,source:l,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?Y(ee({event:t,props:r,query:o.getState().query,refresh:n,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),i(),setTimeout(c,0)})):(o.dispatch(t.key,{}),i(),c())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=F(o.getState()),s=l.item,u=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(ee({event:t,item:s,itemInputValue:u,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewTab({itemUrl:f,item:s,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(ee({event:t,item:s,itemInputValue:u,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewWindow({itemUrl:f,item:s,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(ee({event:t,item:s,itemInputValue:u,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),void r.navigator.navigate({itemUrl:f,item:s,state:o.getState()});Y(ee({event:t,nextState:{isOpen:!1},props:r,query:u,refresh:n,store:o},a)).then((function(){m.onSelect(ee({event:t,item:s,itemInputValue:u,itemUrl:f,refresh:n,source:m,state:o.getState()},a))}))}}}(ue({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:m,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},u)},getPanelProps:function(e){return ue({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){return ue({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var a=e.item,c=e.source,i=me(e,le);return ue({id:"".concat(t.id,"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=F(n.getState());if(null!==n.getState().activeItemId&&t){var c=t.item,i=t.itemInputValue,l=t.itemUrl,s=t.source;s.onActive(ue({event:e,item:c,itemInputValue:i,itemUrl:l,refresh:r,source:s,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():Y(ue({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(ue({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},i)}}}var de=[{segment:"autocomplete-core",version:"1.7.2"}];function he(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ve(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?he(Object(r),!0).forEach((function(t){ye(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):he(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function ye(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ge(e){var t,r,n,o,a=e.plugins,c=e.options,i=null===(t=((null===(r=c.__autocomplete_metadata)||void 0===r?void 0:r.userAgents)||[])[0])||void 0===t?void 0:t.segment,l=i?ye({},i,Object.keys((null===(n=c.__autocomplete_metadata)||void 0===n?void 0:n.options)||{})):{};return{plugins:a.map((function(e){return{name:e.name,options:Object.keys(e.__autocomplete_pluginOptions||[])}})),options:ve({"autocomplete-core":Object.keys(c)},l),ua:de.concat((null===(o=c.__autocomplete_metadata)||void 0===o?void 0:o.userAgents)||[])}}function be(e){var t,r=e.state;return!1===r.isOpen||null===r.activeItemId?null:(null===(t=F(r))||void 0===t?void 0:t.itemInputValue)||null}function Oe(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function Se(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ee(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Se(Object(r),!0).forEach((function(t){je(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Se(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function je(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var we=function(e,t){switch(t.type){case"setActiveItemId":case"mousemove":return Ee(Ee({},e),{},{activeItemId:t.payload});case"setQuery":return Ee(Ee({},e),{},{query:t.payload,completion:null});case"setCollections":return Ee(Ee({},e),{},{collections:t.payload});case"setIsOpen":return Ee(Ee({},e),{},{isOpen:t.payload});case"setStatus":return Ee(Ee({},e),{},{status:t.payload});case"setContext":return Ee(Ee({},e),{},{context:Ee(Ee({},e.context),t.payload)});case"ArrowDown":var r=Ee(Ee({},e),{},{activeItemId:t.payload.hasOwnProperty("nextActiveItemId")?t.payload.nextActiveItemId:Oe(1,e.activeItemId,u(e),t.props.defaultActiveItemId)});return Ee(Ee({},r),{},{completion:be({state:r})});case"ArrowUp":var n=Ee(Ee({},e),{},{activeItemId:Oe(-1,e.activeItemId,u(e),t.props.defaultActiveItemId)});return Ee(Ee({},n),{},{completion:be({state:n})});case"Escape":return e.isOpen?Ee(Ee({},e),{},{activeItemId:null,isOpen:!1,completion:null}):Ee(Ee({},e),{},{activeItemId:null,query:"",status:"idle",collections:[]});case"submit":return Ee(Ee({},e),{},{activeItemId:null,isOpen:!1,status:"idle"});case"reset":return Ee(Ee({},e),{},{activeItemId:!0===t.props.openOnFocus?t.props.defaultActiveItemId:null,status:"idle",query:""});case"focus":return Ee(Ee({},e),{},{activeItemId:t.props.defaultActiveItemId,isOpen:(t.props.openOnFocus||Boolean(e.query))&&t.props.shouldPanelOpen({state:e})});case"blur":return t.props.debug?e:Ee(Ee({},e),{},{isOpen:!1,activeItemId:null});case"mouseleave":return Ee(Ee({},e),{},{activeItemId:t.props.defaultActiveItemId});default:return"The reducer action ".concat(JSON.stringify(t.type)," is not supported."),e}};function Pe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ie(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Pe(Object(r),!0).forEach((function(t){De(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pe(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function De(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ce(e){var t=[],r=function(e,t){var r,n="undefined"!=typeof window?window:{},o=e.plugins||[];return b(b({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,environment:n,shouldPanelOpen:function(e){return u(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(f++),plugins:o,initialState:b({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(v(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return h(e,r)}))).then((function(e){return c(e)})).then((function(e){return e.map((function(e){return b(b({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:b({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}(e,t),n=a(we,r,(function(e){var t=e.prevState,n=e.state;r.onStateChange(Ie({prevState:t,state:n,refresh:s},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var r=0,n=e.map((function(e){return l(l({},e),{},{items:c(e.items).map((function(e){return l(l({},e),{},{__autocomplete_id:r++})}))})}));t.dispatch("setCollections",n)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:n}),i=pe(Ie({props:r,refresh:s,store:n},o));function s(){return Y(Ie({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,query:n.getState().query,refresh:s,store:n},o))}return r.plugins.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Ie(Ie({},o),{},{refresh:s,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,r,n=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(r=t.userAgent)||void 0===r?void 0:r.includes("Algolia Crawler")){var a=o.document.createElement("meta"),c=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(n),c.appendChild(a)}),0)}}({metadata:ge({plugins:r.plugins,options:e}),environment:r.environment}),Ie(Ie({refresh:s},i),o)}var ke=r(6540);function Ae(e){var t=e.translations,r=(void 0===t?{}:t).searchByText,n=void 0===r?"Search by":r;return ke.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},ke.createElement("span",{className:"DocSearch-Label"},n),ke.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},ke.createElement("defs",null,ke.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),ke.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),ke.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),ke.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),ke.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),ke.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),ke.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),ke.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),ke.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),ke.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function xe(e){return ke.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},ke.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Ne(e){var t=e.translations,r=void 0===t?{}:t,n=r.selectText,o=void 0===n?"to select":n,a=r.selectKeyAriaLabel,c=void 0===a?"Enter key":a,i=r.navigateText,l=void 0===i?"to navigate":i,s=r.navigateUpKeyAriaLabel,u=void 0===s?"Arrow up":s,f=r.navigateDownKeyAriaLabel,m=void 0===f?"Arrow down":f,p=r.closeText,d=void 0===p?"to close":p,h=r.closeKeyAriaLabel,v=void 0===h?"Escape key":h,y=r.searchByText,g=void 0===y?"Search by":y;return ke.createElement(ke.Fragment,null,ke.createElement("div",{className:"DocSearch-Logo"},ke.createElement(Ae,{translations:{searchByText:g}})),ke.createElement("ul",{className:"DocSearch-Commands"},ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:c},ke.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),ke.createElement("span",{className:"DocSearch-Label"},o)),ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:m},ke.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:u},ke.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),ke.createElement("span",{className:"DocSearch-Label"},l)),ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:v},ke.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),ke.createElement("span",{className:"DocSearch-Label"},d))))}function Re(e){var t=e.hit,r=e.children;return ke.createElement("a",{href:t.url},r)}function _e(){return ke.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function qe(e){var t=e.translations,r=void 0===t?{}:t,n=r.titleText,o=void 0===n?"Unable to fetch results":n,a=r.helpText,c=void 0===a?"You might want to check your network connection.":a;return ke.createElement("div",{className:"DocSearch-ErrorScreen"},ke.createElement("div",{className:"DocSearch-Screen-Icon"},ke.createElement(_e,null)),ke.createElement("p",{className:"DocSearch-Title"},o),ke.createElement("p",{className:"DocSearch-Help"},c))}function Te(){return ke.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}var Le=["translations"];function Me(e){return function(e){if(Array.isArray(e))return He(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return He(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return He(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function He(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Fe(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ue(e){var t=e.translations,r=void 0===t?{}:t,n=Fe(e,Le),o=r.noResultsText,a=void 0===o?"No results for":o,c=r.suggestedQueryText,i=void 0===c?"Try searching for":c,l=r.reportMissingResultsText,s=void 0===l?"Believe this query should return results?":l,u=r.reportMissingResultsLinkText,f=void 0===u?"Let us know.":u,m=n.state.context.searchSuggestions;return ke.createElement("div",{className:"DocSearch-NoResults"},ke.createElement("div",{className:"DocSearch-Screen-Icon"},ke.createElement(Te,null)),ke.createElement("p",{className:"DocSearch-Title"},a,' "',ke.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&ke.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},ke.createElement("p",{className:"DocSearch-Help"},i,":"),ke.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(Me(e),[ke.createElement("li",{key:t},ke.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&ke.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),ke.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var Be=function(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ve(e){switch(e.type){case"lvl1":return ke.createElement(Be,null);case"content":return ke.createElement($e,null);default:return ke.createElement(Ke,null)}}function Ke(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function $e(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Je(){return ke.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),ke.createElement("path",{d:"M8 17l-6-6 6-6"})))}var ze=["hit","attribute","tagName"];function We(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Qe(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?We(Object(r),!0).forEach((function(t){Ze(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):We(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ze(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ye(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ge(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Xe(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,a=Ye(e,ze);return(0,ke.createElement)(o,Qe(Qe({},a),{},{dangerouslySetInnerHTML:{__html:Ge(t,"_snippetResult.".concat(r,".value"))||Ge(t,r)}}))}function et(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],c=!0,i=!1;try{for(r=r.call(e);!(c=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);c=!0);}catch(l){i=!0,o=l}finally{try{c||null==r.return||r.return()}finally{if(i)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return tt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return tt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function rt(){return rt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},rt.apply(this,arguments)}function nt(e){return e.collection&&0!==e.collection.items.length?ke.createElement("section",{className:"DocSearch-Hits"},ke.createElement("div",{className:"DocSearch-Hit-source"},e.title),ke.createElement("ul",e.getListProps(),e.collection.items.map((function(t,r){return ke.createElement(ot,rt({key:[e.title,t.objectID].join(":"),item:t,index:r},e))})))):null}function ot(e){var t=e.item,r=e.index,n=e.renderIcon,o=e.renderAction,a=e.getItemProps,c=e.onItemClick,i=e.collection,l=e.hitComponent,s=et(ke.useState(!1),2),u=s[0],f=s[1],m=et(ke.useState(!1),2),p=m[0],d=m[1],h=ke.useRef(null),v=l;return ke.createElement("li",rt({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",u&&"DocSearch-Hit--deleting",p&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){h.current&&h.current()}},a({item:t,source:i.source,onClick:function(){c(t)}})),ke.createElement(v,{hit:t},ke.createElement("div",{className:"DocSearch-Hit-Container"},n({item:t,index:r}),t.hierarchy[t.type]&&"lvl1"===t.type&&ke.createElement("div",{className:"DocSearch-Hit-content-wrapper"},ke.createElement(Xe,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&ke.createElement(Xe,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&ke.createElement("div",{className:"DocSearch-Hit-content-wrapper"},ke.createElement(Xe,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),ke.createElement(Xe,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&ke.createElement("div",{className:"DocSearch-Hit-content-wrapper"},ke.createElement(Xe,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),ke.createElement(Xe,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),h.current=e},runFavoriteTransition:function(e){d(!0),h.current=e}}))))}var at=/(<mark>|<\/mark>)/g,ct=RegExp(at.source);function it(e){var t,r,n,o,a,c=e;if(!c.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var i=((c.__docsearch_parent?null===(t=c.__docsearch_parent)||void 0===t||null===(r=t._highlightResult)||void 0===r||null===(n=r.hierarchy)||void 0===n?void 0:n.lvl0:null===(o=e._highlightResult)||void 0===o||null===(a=o.hierarchy)||void 0===a?void 0:a.lvl0)||{}).value;return i&&ct.test(i)?i.replace(at,""):i}function lt(){return lt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},lt.apply(this,arguments)}function st(e){return ke.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var r=it(t.items[0]);return ke.createElement(nt,lt({},e,{key:t.source.sourceId,title:r,collection:t,renderIcon:function(e){var r,n=e.item,o=e.index;return ke.createElement(ke.Fragment,null,n.__docsearch_parent&&ke.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},ke.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},n.__docsearch_parent!==(null===(r=t.items[o+1])||void 0===r?void 0:r.__docsearch_parent)?ke.createElement("path",{d:"M8 6v21M20 27H8.3"}):ke.createElement("path",{d:"M8 6v42M20 27H8.3"}))),ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(Ve,{type:n.type})))},renderAction:function(){return ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement(Je,null))}}))})),e.resultsFooterComponent&&ke.createElement("section",{className:"DocSearch-HitsFooter"},ke.createElement(e.resultsFooterComponent,{state:e.state})))}function ut(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),ke.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function ft(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function mt(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var pt=["translations"];function dt(){return dt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},dt.apply(this,arguments)}function ht(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vt(e){var t=e.translations,r=void 0===t?{}:t,n=ht(e,pt),o=r.recentSearchesTitle,a=void 0===o?"Recent":o,c=r.noRecentSearchesText,i=void 0===c?"No recent searches":c,l=r.saveRecentSearchButtonTitle,s=void 0===l?"Save this search":l,u=r.removeRecentSearchButtonTitle,f=void 0===u?"Remove this search from history":u,m=r.favoriteSearchesTitle,p=void 0===m?"Favorite":m,d=r.removeFavoriteSearchButtonTitle,h=void 0===d?"Remove this search from favorites":d;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:ke.createElement("div",{className:"DocSearch-StartScreen"},ke.createElement("p",{className:"DocSearch-Help"},i)):!1===n.hasCollections?null:ke.createElement("div",{className:"DocSearch-Dropdown-Container"},ke.createElement(nt,dt({},n,{title:a,collection:n.state.collections[0],renderIcon:function(){return ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(ut,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return ke.createElement(ke.Fragment,null,ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.add(t),n.recentSearches.remove(t),n.refresh()}))}},ke.createElement(ft,null))),ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){n.recentSearches.remove(t),n.refresh()}))}},ke.createElement(mt,null))))}})),ke.createElement(nt,dt({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(ft,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},ke.createElement(mt,null)))}})))}var yt=["translations"];function gt(){return gt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},gt.apply(this,arguments)}function bt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ot=ke.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=bt(e,yt);if("error"===n.state.status)return ke.createElement(qe,{translations:null==r?void 0:r.errorScreen});var o=n.state.collections.some((function(e){return e.items.length>0}));return n.state.query?!1===o?ke.createElement(Ue,gt({},n,{translations:null==r?void 0:r.noResultsScreen})):ke.createElement(st,n):ke.createElement(vt,gt({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function St(){return ke.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},ke.createElement("g",{fill:"none",fillRule:"evenodd"},ke.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},ke.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),ke.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},ke.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var Et=r(9188),jt=["translations"];function wt(){return wt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},wt.apply(this,arguments)}function Pt(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function It(e){var t=e.translations,r=void 0===t?{}:t,n=Pt(e,jt),o=r.resetButtonTitle,a=void 0===o?"Clear the query":o,c=r.resetButtonAriaLabel,i=void 0===c?"Clear the query":c,l=r.cancelButtonText,s=void 0===l?"Cancel":l,u=r.cancelButtonAriaLabel,f=void 0===u?"Cancel":u,m=n.getFormProps({inputElement:n.inputRef.current}).onReset;return ke.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),ke.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),ke.createElement(ke.Fragment,null,ke.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},ke.createElement("label",wt({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),ke.createElement(Et.W,null)),ke.createElement("div",{className:"DocSearch-LoadingIndicator"},ke.createElement(St,null)),ke.createElement("input",wt({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:64}))),ke.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":i,hidden:!n.state.query},ke.createElement(mt,null))),ke.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},s))}var Dt=["_highlightResult","_snippetResult"];function Ct(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function At(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=kt(t),a=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,Ct(t,Dt)),c=a.findIndex((function(e){return e.objectID===r.objectID}));c>-1&&a.splice(c,1),a.unshift(r),a=a.slice(0,n),o.setItem(a)},remove:function(e){a=a.filter((function(t){return t.objectID!==e.objectID})),o.setItem(a)},getAll:function(){return a}}}function xt(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}");return{get:(e,t,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{const r=JSON.stringify(e),n=o()[r];return Promise.all([n||t(),void 0!==n])})).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const a=o();return a[JSON.stringify(e)]=r,n().setItem(t,JSON.stringify(a)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function Nt(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>Nt({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Nt({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Nt({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Nt({caches:t}).clear()))}}function Rt(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);const c=n(),i=o&&o.miss||(()=>Promise.resolve());return c.then((e=>i(e))).then((()=>c))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function _t(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function qt(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Tt(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Lt="4.13.1",Mt={WithinQueryParameters:0,WithinHeaders:1};function Ht(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Ft={Read:1,Write:2,Any:3},Ut=1,Bt=2,Vt=3,Kt=12e4;function $t(e,t=Ut){return{...e,status:t,lastUpdate:Date.now()}}function Jt(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ft.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ft.Any}}const zt="GET",Wt="POST";function Qt(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve($t(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===Ut||Date.now()-e.lastUpdate>Kt}(e))),n=e.filter((e=>function(e){return e.status===Vt&&Date.now()-e.lastUpdate<=Kt}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>Jt(e))):t}}))}function Zt(e,t,r,n){const o=[],a=function(e,t){if(e.method===zt||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),c=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),i=r.method,l=r.method!==zt?{}:{...r.data,...n.data},s={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let u=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:er(o)};const p={data:a,headers:c,method:i,url:Gt(m,r.path,s),connectTimeout:l(u,e.timeouts.connect),responseTimeout:l(u,n.timeout)},d=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},h={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=d(r);return r.isTimedOut&&u++,Promise.all([e.logger.info("Retryable failure",tr(n)),e.hostsCache.set(m,$t(m,r.isTimedOut?Vt:Bt))]).then((()=>f(t,l)))},onFail(e){throw d(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(o){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,er(o))}};return e.requester.send(p).then((e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e))(e,h)))};return Qt(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Yt(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Gt(e,t,r){const n=Xt(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Xt(e){return Object.keys(e).map((t=>{return Tt("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function er(e){return e.map((e=>tr(e)))}function tr(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const rr=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===Mt.WithinHeaders?n:{},queryParameters:()=>e===Mt.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Mt.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:i,hosts:l,queryParameters:s,headers:u}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:i,headers:u,queryParameters:s,hosts:l.map((e=>Jt(e))),read(e,t){const r=Ht(t,f.timeouts.read),n=()=>Zt(f,f.hosts.filter((e=>0!=(e.accept&Ft.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>Zt(f,f.hosts.filter((e=>0!=(e.accept&Ft.Write))),e,Ht(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ft.Read},{url:`${t}.algolia.net`,accept:Ft.Write}].concat(_t([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return qt(o,e.methods)},nr=e=>(t,r)=>t.method===zt?e.transporter.read(t,r):e.transporter.write(t,r),or=e=>(t,r={})=>qt({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),ar=e=>(t,r)=>{const n=t.map((e=>({...e,params:Xt(e.params||{})})));return e.transporter.read({method:Wt,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},cr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...a}=t.params;return or(e)(t.indexName,{methods:{searchForFacetValues:sr}}).searchForFacetValues(n,o,{...r,...a})}))),ir=e=>(t,r,n)=>e.transporter.read({method:Wt,path:Tt("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),lr=e=>(t,r)=>e.transporter.read({method:Wt,path:Tt("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),sr=e=>(t,r,n)=>e.transporter.read({method:Wt,path:Tt("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),ur=1,fr=2,mr=3;function pr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let a;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===a&&(clearTimeout(o),a=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(a),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(a),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=mr,{debug:(e,t)=>(ur>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(fr>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Rt(),requestsCache:Rt({serializable:!1}),hostsCache:Nt({caches:[xt({key:`${Lt}-${e}`}),Rt()]}),userAgent:Yt(Lt).add({segment:"Browser",version:"lite"}),authMode:Mt.WithinQueryParameters};var o;return rr({...n,...r,methods:{search:ar,searchForFacetValues:cr,multipleQueries:ar,multipleSearchForFacetValues:cr,customRequest:nr,initIndex:e=>t=>or(e)(t,{methods:{search:lr,searchForFacetValues:sr,findAnswers:ir}})}})}pr.version=Lt;const dr=pr;var hr="3.3.0";function vr(){}function yr(e){return e}function gr(e,t){return e.reduce((function(e,r){var n=t(r);return e.hasOwnProperty(n)||(e[n]=[]),e[n].length<5&&e[n].push(r),e}),{})}var br=["footer","searchBox"];function Or(){return Or=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Or.apply(this,arguments)}function Sr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Er(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Sr(Object(r),!0).forEach((function(t){jr(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Sr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function jr(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wr(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],c=!0,i=!1;try{for(r=r.call(e);!(c=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);c=!0);}catch(l){i=!0,o=l}finally{try{c||null==r.return||r.return()}finally{if(i)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Pr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Pr(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ir(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Dr(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,a=void 0===o?"Search docs":o,c=e.searchParameters,i=e.onClose,l=void 0===i?vr:i,s=e.transformItems,u=void 0===s?yr:s,f=e.hitComponent,m=void 0===f?Re:f,p=e.resultsFooterComponent,d=void 0===p?function(){return null}:p,h=e.navigator,v=e.initialScrollY,y=void 0===v?0:v,g=e.transformSearchClient,b=void 0===g?yr:g,O=e.disableUserPersonalization,S=void 0!==O&&O,E=e.initialQuery,j=void 0===E?"":E,w=e.translations,P=void 0===w?{}:w,I=e.getMissingResultsUrl,D=P.footer,C=P.searchBox,k=Ir(P,br),A=wr(ke.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),x=A[0],N=A[1],R=ke.useRef(null),_=ke.useRef(null),q=ke.useRef(null),T=ke.useRef(null),L=ke.useRef(null),M=ke.useRef(10),H=ke.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,F=ke.useRef(j||H).current,U=function(e,t,r){return ke.useMemo((function(){var n=dr(e,t);return n.addAlgoliaAgent("docsearch",hr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",hr),r(n)}),[e,t,r])}(t,r,b),B=ke.useRef(At({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,V=ke.useRef(At({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===B.getAll().length?7:4})).current,K=ke.useCallback((function(e){if(!S){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===B.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&V.add(t)}}),[B,V,S]),$=ke.useMemo((function(){return Ce({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:F,context:{searchSuggestions:[]}},navigator:h,onStateChange:function(e){N(e.state)},getSources:function(e){var t=e.query,r=e.state,o=e.setContext,a=e.setStatus;return t?U.search([{query:t,indexName:n,params:Er({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(M.current),"hierarchy.lvl2:".concat(M.current),"hierarchy.lvl3:".concat(M.current),"hierarchy.lvl4:".concat(M.current),"hierarchy.lvl5:".concat(M.current),"hierarchy.lvl6:".concat(M.current),"content:".concat(M.current)],snippetEllipsisText:"\u2026",highlightPreTag:"<mark>",highlightPostTag:"</mark>",hitsPerPage:20},c)}]).catch((function(e){throw"RetryError"===e.name&&a("error"),e})).then((function(e){var t=e.results[0],n=t.hits,a=t.nbHits,c=gr(n,(function(e){return it(e)}));return r.context.searchSuggestions.length<Object.keys(c).length&&o({searchSuggestions:Object.keys(c)}),o({nbHits:a}),Object.values(c).map((function(e,t){return{sourceId:"hits".concat(t),onSelect:function(e){var t=e.item,r=e.event;K(t),r.shiftKey||r.ctrlKey||r.metaKey||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return Object.values(gr(e,(function(e){return e.hierarchy.lvl1}))).map(u).map((function(e){return e.map((function(t){return Er(Er({},t),{},{__docsearch_parent:"lvl1"!==t.type&&e.find((function(e){return"lvl1"===e.type&&e.hierarchy.lvl1===t.hierarchy.lvl1}))})}))})).flat()}}}))})):S?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;K(t),r.shiftKey||r.ctrlKey||r.metaKey||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return V.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;K(t),r.shiftKey||r.ctrlKey||r.metaKey||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return B.getAll()}}]}})}),[n,c,U,l,V,B,K,F,a,h,u,S]),J=$.getEnvironmentProps,z=$.getRootProps,W=$.refresh;return function(e){var t=e.getEnvironmentProps,r=e.panelElement,n=e.formElement,o=e.inputElement;ke.useEffect((function(){if(r&&n&&o){var e=t({panelElement:r,formElement:n,inputElement:o}),a=e.onTouchStart,c=e.onTouchMove;return window.addEventListener("touchstart",a),window.addEventListener("touchmove",c),function(){window.removeEventListener("touchstart",a),window.removeEventListener("touchmove",c)}}}),[t,r,n,o])}({getEnvironmentProps:J,panelElement:T.current,formElement:q.current,inputElement:L.current}),function(e){var t=e.container;ke.useEffect((function(){if(t){var e=t.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),r=e[0],n=e[e.length-1];return t.addEventListener("keydown",o),function(){t.removeEventListener("keydown",o)}}function o(e){"Tab"===e.key&&(e.shiftKey?document.activeElement===r&&(e.preventDefault(),n.focus()):document.activeElement===n&&(e.preventDefault(),r.focus()))}}),[t])}({container:R.current}),ke.useEffect((function(){return document.body.classList.add("DocSearch--active"),function(){var e,t;document.body.classList.remove("DocSearch--active"),null===(e=(t=window).scrollTo)||void 0===e||e.call(t,0,y)}}),[]),ke.useEffect((function(){window.matchMedia("(max-width: 768px)").matches&&(M.current=5)}),[]),ke.useEffect((function(){T.current&&(T.current.scrollTop=0)}),[x.query]),ke.useEffect((function(){F.length>0&&(W(),L.current&&L.current.focus())}),[F,W]),ke.useEffect((function(){function e(){if(_.current){var e=.01*window.innerHeight;_.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),ke.createElement("div",Or({ref:R},z({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===x.status&&"DocSearch-Container--Stalled","error"===x.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&l()}}),ke.createElement("div",{className:"DocSearch-Modal",ref:_},ke.createElement("header",{className:"DocSearch-SearchBar",ref:q},ke.createElement(It,Or({},$,{state:x,autoFocus:0===F.length,inputRef:L,isFromSelection:Boolean(F)&&F===H,translations:C,onClose:l}))),ke.createElement("div",{className:"DocSearch-Dropdown",ref:T},ke.createElement(Ot,Or({},$,{indexName:n,state:x,hitComponent:m,resultsFooterComponent:d,disableUserPersonalization:S,recentSearches:V,favoriteSearches:B,inputRef:L,translations:k,getMissingResultsUrl:I,onItemClick:function(e){K(e),l()}}))),ke.createElement("footer",{className:"DocSearch-Footer"},ke.createElement(Ne,{translations:D}))))}}}]); \ No newline at end of file diff --git a/assets/js/7661071f.d5a8c0fc.js b/assets/js/7661071f.d5a8c0fc.js new file mode 100644 index 0000000..593d48c --- /dev/null +++ b/assets/js/7661071f.d5a8c0fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8737],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>b});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,i=u(e,["components","mdxType","originalType","parentName"]),p=c(r),m=o,b=p["".concat(s,".").concat(m)]||p[m]||g[m]||a;return r?n.createElement(b,l(l({ref:t},i),{},{components:r})):n.createElement(b,l({ref:t},i))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[p]="string"==typeof e?e:o,l[1]=u;for(var c=2;c<a;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6792:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(9668),o=(r(6540),r(5680));const a={slug:"welcome",title:"Welcome",authors:["slorber","yangshun"],tags:["facebook","hello","docusaurus"]},l=void 0,u={permalink:"/react-native-help-create/blog/welcome",source:"@site/blog/2021-08-26-welcome/index.md",title:"Welcome",description:"Docusaurus blogging features are powered by the blog plugin.",date:"2021-08-26T00:00:00.000Z",formattedDate:"August 26, 2021",tags:[{label:"facebook",permalink:"/react-native-help-create/blog/tags/facebook"},{label:"hello",permalink:"/react-native-help-create/blog/tags/hello"},{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:.405,hasTruncateMarker:!1,authors:[{name:"S\xe9bastien Lorber",title:"Docusaurus maintainer",url:"https://sebastienlorber.com",imageURL:"https://github.com/slorber.png",key:"slorber"},{name:"Yangshun Tay",title:"Front End Engineer @ Facebook",url:"https://github.com/yangshun",imageURL:"https://github.com/yangshun.png",key:"yangshun"}],frontMatter:{slug:"welcome",title:"Welcome",authors:["slorber","yangshun"],tags:["facebook","hello","docusaurus"]},nextItem:{title:"MDX Blog Post",permalink:"/react-native-help-create/blog/mdx-blog-post"}},s={authorsImageUrls:[void 0,void 0]},c=[],i={toc:c};function p(e){let{components:t,...a}=e;return(0,o.yg)("wrapper",(0,n.A)({},i,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://docusaurus.io/docs/blog"},"Docusaurus blogging features")," are powered by the ",(0,o.yg)("a",{parentName:"p",href:"https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog"},"blog plugin"),"."),(0,o.yg)("p",null,"Simply add Markdown files (or folders) to the ",(0,o.yg)("inlineCode",{parentName:"p"},"blog")," directory."),(0,o.yg)("p",null,"Regular blog authors can be added to ",(0,o.yg)("inlineCode",{parentName:"p"},"authors.yml"),"."),(0,o.yg)("p",null,"The blog post date can be extracted from filenames, such as:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"2019-05-30-welcome.md")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"2019-05-30-welcome/index.md"))),(0,o.yg)("p",null,"A blog post folder can be convenient to co-locate blog post images:"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"Docusaurus Plushie",src:r(4393).A,width:"1500",height:"500"})),(0,o.yg)("p",null,"The blog supports tags as well!"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"And if you don't want a blog"),": just delete this directory, and use ",(0,o.yg)("inlineCode",{parentName:"p"},"blog: false")," in your Docusaurus config."))}p.isMDXComponent=!0},4393:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/docusaurus-plushie-banner-a60f7593abca1e3eef26a9afa244e4fb.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/798076fc.8ee6c42b.js b/assets/js/798076fc.8ee6c42b.js new file mode 100644 index 0000000..1f96629 --- /dev/null +++ b/assets/js/798076fc.8ee6c42b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5841],{5680:(e,n,o)=>{o.d(n,{xA:()=>p,yg:()=>d});var a=o(6540);function t(e,n,o){return n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function r(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),o.push.apply(o,a)}return o}function l(e){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?r(Object(o),!0).forEach((function(n){t(e,n,o[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))}))}return e}function m(e,n){if(null==e)return{};var o,a,t=function(e,n){if(null==e)return{};var o,a,t={},r=Object.keys(e);for(a=0;a<r.length;a++)o=r[a],n.indexOf(o)>=0||(t[o]=e[o]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)o=r[a],n.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(t[o]=e[o])}return t}var s=a.createContext({}),i=function(e){var n=a.useContext(s),o=n;return e&&(o="function"==typeof e?e(n):l(l({},n),e)),o},p=function(e){var n=i(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var o=e.components,t=e.mdxType,r=e.originalType,s=e.parentName,p=m(e,["components","mdxType","originalType","parentName"]),c=i(o),u=t,d=c["".concat(s,".").concat(u)]||c[u]||g[u]||r;return o?a.createElement(d,l(l({ref:n},p),{},{components:o})):a.createElement(d,l({ref:n},p))}));function d(e,n){var o=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=o.length,l=new Array(r);l[0]=u;var m={};for(var s in n)hasOwnProperty.call(n,s)&&(m[s]=n[s]);m.originalType=e,m[c]="string"==typeof e?e:t,l[1]=m;for(var i=2;i<r;i++)l[i]=o[i];return a.createElement.apply(null,l)}return a.createElement.apply(null,o)}u.displayName="MDXCreateElement"},538:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>m,toc:()=>i});var a=o(9668),t=(o(6540),o(5680));const r={sidebar_position:2},l="Combine Components",m={unversionedId:"combine/combine-components",id:"combine/combine-components",title:"Combine Components",description:"To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:",source:"@site/docs/combine/combine-components.md",sourceDirName:"combine",slug:"/combine/combine-components",permalink:"/react-native-help-create/docs/combine/combine-components",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/combine/intro"},next:{title:"Combine Screens",permalink:"/react-native-help-create/docs/combine/combine-screens"}},s={},i=[{value:"Example",id:"example",level:3},{value:"Atoms",id:"atoms",level:2},{value:"Example",id:"example-1",level:3},{value:"Molecules",id:"molecules",level:2},{value:"Example",id:"example-2",level:3},{value:"Organisms",id:"organisms",level:2},{value:"Example",id:"example-3",level:3}],p={toc:i};function c(e){let{components:n,...o}=e;return(0,t.yg)("wrapper",(0,a.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h1",{id:"combine-components"},"Combine Components"),(0,t.yg)("p",null,"To combine components that resides in ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/")," folder to a specific path that resides under that same folder you can run:"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"This will move the existed components for the given inputs to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/<folder-path>/")," folder.")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"If somehome one of the given components does not exist, ",(0,t.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,t.yg)("h3",{id:"example"},"Example"),(0,t.yg)("p",null,"In this example, we have ",(0,t.yg)("inlineCode",{parentName:"p"},"comp-1")," and ",(0,t.yg)("inlineCode",{parentName:"p"},"comp-2")," that exists under ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, and we want to move them to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/foo/bar/")," folder:"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c comp-1 comp-2 -f foo/bar\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"comp-1 component moved to src/components/foo/bar/\ncomp-2 component moved to src/components/foo/bar/\n")),(0,t.yg)("h2",{id:"atoms"},"Atoms"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"To combine atoms that resides in ",(0,t.yg)("inlineCode",{parentName:"li"},"src/components/atoms/")," folder to a specific path that resides under that same folder you can run:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c <atom-name-1> <atom-name-2> ... -f <folder-path> --atom\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"This will move the existed atoms for the given inputs to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/atoms/<folder-path>/")," folder.")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"If somehow one of the given atoms does not exist, ",(0,t.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,t.yg)("h3",{id:"example-1"},"Example"),(0,t.yg)("p",null,"In this example, we have ",(0,t.yg)("inlineCode",{parentName:"p"},"atom-1")," and ",(0,t.yg)("inlineCode",{parentName:"p"},"atom-2")," that exists under ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/atoms/")," folder, and we want to move them to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/atoms/foo/bar/")," folder:"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c atom-1 atom-2 -f foo/bar --atom\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"atom-1 moved to src/components/atoms/foo/bar/\natom-2 moved to src/components/atoms/foo/bar/\n")),(0,t.yg)("h2",{id:"molecules"},"Molecules"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"To combine molecules that resides in ",(0,t.yg)("inlineCode",{parentName:"li"},"src/components/molecules/")," folder to a specific path that resides under that same folder you can run:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c <molecule-name-1> <molecule-name-2> ... -f <folder-path> --molecule\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"This will move the existed molecules for the given inputs to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/molecules/<folder-path>/")," folder.")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"If somehow one of the given molecules does not exist, ",(0,t.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,t.yg)("h3",{id:"example-2"},"Example"),(0,t.yg)("p",null,"In this example, we have ",(0,t.yg)("inlineCode",{parentName:"p"},"molecule-1")," and ",(0,t.yg)("inlineCode",{parentName:"p"},"molecule-2")," that exists under ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/molecules/")," folder, and we want to move them to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/molecules/foo/bar/")," folder:"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c molecule-1 molecule-2 -f foo/bar --molecule\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"molecule-1 moved to src/components/molecules/foo/bar/\nmolecule-2 moved to src/components/molecules/foo/bar/\n")),(0,t.yg)("h2",{id:"organisms"},"Organisms"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"To combine organisms that resides in ",(0,t.yg)("inlineCode",{parentName:"li"},"src/components/organisms/")," folder to a specific path that resides under that same folder you can run:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c <organism-name-1> <organism-name-2> ... -f <folder-path> --organism\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"This will move the existed organisms for the given inputs to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/organisms/<folder-path>/")," folder.")),(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("p",{parentName:"li"},"If somehow one of the given organisms does not exist, ",(0,t.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,t.yg)("h3",{id:"example-3"},"Example"),(0,t.yg)("p",null,"In this example, we have ",(0,t.yg)("inlineCode",{parentName:"p"},"organism-1")," and ",(0,t.yg)("inlineCode",{parentName:"p"},"organism-2")," that exists under ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/organisms/")," folder, and we want to move them to ",(0,t.yg)("inlineCode",{parentName:"p"},"src/components/organisms/foo/bar/")," folder:"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c organism-1 organism-2 -f foo/bar --organism\n")),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sh"},"organism-1 moved to src/components/organisms/foo/bar/\norganism-2 moved to src/components/organisms/foo/bar/\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a7b6871.202f6ab3.js b/assets/js/7a7b6871.202f6ab3.js new file mode 100644 index 0000000..d61c3ab --- /dev/null +++ b/assets/js/7a7b6871.202f6ab3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8830],{9365:(e,n,a)=>{a.d(n,{A:()=>i});var t=a(6540),s=a(53);const r="tabItem_Ymn6";function i(e){let{children:n,hidden:a,className:i}=e;return t.createElement("div",{role:"tabpanel",className:(0,s.A)(r,i),hidden:a},n)}},4865:(e,n,a)=>{a.d(n,{A:()=>u});var t=a(9668),s=a(6540),r=a(53),i=a(2303),o=a(1682),l=a(6976),c=a(3104);const p="tabList__CuJ",d="tabItem_LNqP";function g(e){const{lazy:n,block:a,defaultValue:i,values:g,groupId:u,className:m}=e,y=s.Children.map(e.children,(e=>{if((0,s.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})),x=g??y.map((e=>{let{props:{value:n,label:a,attributes:t}}=e;return{value:n,label:a,attributes:t}})),f=(0,o.X)(x,((e,n)=>e.value===n.value));if(f.length>0)throw new Error(`Docusaurus error: Duplicate values "${f.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`);const v=null===i?i:i??y.find((e=>e.props.default))?.props.value??y[0].props.value;if(null!==v&&!x.some((e=>e.value===v)))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${v}" but none of its children has the corresponding value. Available values are: ${x.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:h,setTabGroupChoices:N}=(0,l.x)(),[T,b]=(0,s.useState)(v),_=[],{blockElementScrollPositionUntilNextRender:C}=(0,c.a_)();if(null!=u){const e=h[u];null!=e&&e!==T&&x.some((n=>n.value===e))&&b(e)}const j=e=>{const n=e.currentTarget,a=_.indexOf(n),t=x[a].value;t!==T&&(C(n),b(t),null!=u&&N(u,String(t)))},w=e=>{let n=null;switch(e.key){case"Enter":j(e);break;case"ArrowRight":{const a=_.indexOf(e.currentTarget)+1;n=_[a]??_[0];break}case"ArrowLeft":{const a=_.indexOf(e.currentTarget)-1;n=_[a]??_[_.length-1];break}}n?.focus()};return s.createElement("div",{className:(0,r.A)("tabs-container",p)},s.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":a},m)},x.map((e=>{let{value:n,label:a,attributes:i}=e;return s.createElement("li",(0,t.A)({role:"tab",tabIndex:T===n?0:-1,"aria-selected":T===n,key:n,ref:e=>_.push(e),onKeyDown:w,onClick:j},i,{className:(0,r.A)("tabs__item",d,i?.className,{"tabs__item--active":T===n})}),a??n)}))),n?(0,s.cloneElement)(y.filter((e=>e.props.value===T))[0],{className:"margin-top--md"}):s.createElement("div",{className:"margin-top--md"},y.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==T})))))}function u(e){const n=(0,i.A)();return s.createElement(g,(0,t.A)({key:String(n)},e))}},4418:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>p,metadata:()=>g,toc:()=>m});var t=a(9668),s=(a(6540),a(5680)),r=a(4865),i=a(9365),o=a(7964);const l='import Screen1Screen from "./screen-1";\nimport Screen2Screen from "./screen-2";\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n',c='import { FC } from "react";\nimport Screen1Screen from "./screen-1";\nimport Screen2Screen from "./screen-2";\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\n\ninterface Route {\n name: string;\n component: FC;\n}\n\nconst routes: Route[] = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nconst Navigation: FC = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n',p={sidebar_position:4},d="Create Navigations",g={unversionedId:"create/create-navigations",id:"create/create-navigations",title:"Create Navigations",description:"Navigations are the relations between chosen screens.",source:"@site/docs/create/create-navigations.mdx",sourceDirName:"create",slug:"/create/create-navigations",permalink:"/react-native-help-create/docs/create/create-navigations",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Create Screens",permalink:"/react-native-help-create/docs/create/create-screens"},next:{title:"Using Templates",permalink:"/react-native-help-create/docs/create/using-templates"}},u={},m=[{value:"Create Navigation for specific screens",id:"create-navigation-for-specific-screens",level:2},{value:"Example",id:"example",level:3},{value:"Create Navigation for specific screens in a specific folder",id:"create-navigation-for-specific-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Navigation that depends on other navigations",id:"create-navigation-that-depends-on-other-navigations",level:2},{value:"Example",id:"example-2",level:3},{value:"Create Navigation for all screens",id:"create-navigation-for-all-screens",level:2}],y={toc:m};function x(e){let{components:n,...a}=e;return(0,s.yg)("wrapper",(0,t.A)({},y,a,{components:n,mdxType:"MDXLayout"}),(0,s.yg)("h1",{id:"create-navigations"},"Create Navigations"),(0,s.yg)("p",null,"Navigations are the relations between chosen screens."),(0,s.yg)("h2",{id:"create-navigation-for-specific-screens"},"Create Navigation for specific screens"),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"To create a navigation between two or more screens, simply run:")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"The ",(0,s.yg)("inlineCode",{parentName:"p"},"<navigation-type>")," can be either of these types: ",(0,s.yg)("inlineCode",{parentName:"p"},"stack"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"native-stack"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"drawer"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"bottom-tabs"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"material-bottom-tabs")," or ",(0,s.yg)("inlineCode",{parentName:"p"},"material-top-tabs"),".")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"The number of given screens should be 2 or more.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"If one of the screens does not exist, ",(0,s.yg)("inlineCode",{parentName:"p"},"rnhc")," will try to create the ",(0,s.yg)("inlineCode",{parentName:"p"},"navigation.*")," file that resides next to the existed screens.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"If all screens does not exist, ",(0,s.yg)("inlineCode",{parentName:"p"},"rhnc")," will prompt you the following:"))),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"None of these screens exist\n")),(0,s.yg)("h3",{id:"example"},"Example"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack screen-1 screen-2\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"This will create a ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," file next to ",(0,s.yg)("inlineCode",{parentName:"li"},"screen-1")," and ",(0,s.yg)("inlineCode",{parentName:"li"},"screen-2")," screens as the following:")),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 navigation.tsx\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"The content for the ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," file is as the following:")),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{language:"jsx",mdxType:"CodeBlock"},l)),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{language:"tsx",mdxType:"CodeBlock"},c))),(0,s.yg)("h2",{id:"create-navigation-for-specific-screens-in-a-specific-folder"},"Create Navigation for specific screens in a specific folder"),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"To create a navigation file for screens that resides in a specific path under the ",(0,s.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"This will create the ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," file under the ",(0,s.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder for the screens that resides in the same location.")),(0,s.yg)("h3",{id:"example-1"},"Example"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rhnc create -n drawer screen-1 screen-2 -f foo/bar\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"This will create ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," file under ",(0,s.yg)("inlineCode",{parentName:"li"},"src/screens/foo/bar/")," folder which contains the following:")),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{language:"jsx",mdxType:"CodeBlock"},l)),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{language:"tsx",mdxType:"CodeBlock"},c))),(0,s.yg)("h2",{id:"create-navigation-that-depends-on-other-navigations"},"Create Navigation that depends on other navigations"),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"To create a navigation that depends on another navigation you can run the same command as this:")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"This will create ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," file that resides in the same location for the given inputs.")),(0,s.yg)("h3",{id:"example-2"},"Example"),(0,s.yg)("p",null,"In this example, we have the following structure:"),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,s.yg)("p",null,"Where we have a drawer navigation between ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-two")," under the ",(0,s.yg)("inlineCode",{parentName:"p"},"folder")," folder. And we want to create a stack navigation between ",(0,s.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-three"),". And to show that ",(0,s.yg)("inlineCode",{parentName:"p"},"rnhc")," will continue to run for the existed screens we added in the command line ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-four")," which does not exist as the following:"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack folder screen-three screen-four\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"The command will output the following:")),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{language:"jsx",mdxType:"CodeBlock"},"src/screens/screen-four/ does not exist\nsrc/screens/navigation.jsx created")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{language:"tsx",mdxType:"CodeBlock"},"src/screens/screen-four/ does not exist\nsrc/screens/navigation.tsx created"))),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"And it will add a new ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," that resides between ",(0,s.yg)("inlineCode",{parentName:"li"},"folder")," and ",(0,s.yg)("inlineCode",{parentName:"li"},"screen-three")," as the following:")),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u251c\u2500\u2500 navigation.tsx\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"And the content of the new ",(0,s.yg)("inlineCode",{parentName:"li"},"navigation.*")," file will be like this:")),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{language:"jsx",mdxType:"CodeBlock"},'import FolderNavigation from "./folder/navigation";\nimport ScreenThreeScreen from "./screen-three";\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\n\nconst routes = [\n {\n name: "folder",\n component: FolderNavigation,\n },\n {\n name: "screen-three",\n component: ScreenThreeScreen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{language:"tsx",mdxType:"CodeBlock"},'import { FC } from "react";\nimport FolderNavigation from "./folder/navigation";\nimport ScreenThreeScreen from "./screen-three";\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\n\ninterface Route {\n name: string;\n component: FC;\n}\n\nconst routes: Route[] = [\n {\n name: "folder",\n component: FolderNavigation,\n },\n {\n name: "screen-three",\n component: ScreenThreeScreen,\n },\n];\n\nconst Navigation: FC = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n'))),(0,s.yg)("h2",{id:"create-navigation-for-all-screens"},"Create Navigation for all screens"),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"To create a navigation file for multiple screens that resides at the root of the ",(0,s.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type>\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"This will create the navigation file for all existed screens in the ",(0,s.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,s.yg)("p",null,"You can also run this command to create a navigation file for multiple screens that resides in a specific path under the ",(0,s.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder:"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> -f <folder-path>\n")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"This will create the navigation file for all existed screens in the ",(0,s.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"This also work for the nested navigations.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:"))),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u251c\u2500\u2500 navigation.tsx\n \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,s.yg)("p",null,"When you try to create a navigation like this:"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack\n")),(0,s.yg)("p",null,"It will output the following:"),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{language:"jsx",mdxType:"CodeBlock"},"./src/screens/folder/navigation.jsx does not exist\n./src/screens/navigation.jsx created")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{language:"tsx",mdxType:"CodeBlock"},"./src/screens/folder/navigation.tsx does not exist\n./src/screens/navigation.tsx created"))),(0,s.yg)("p",null,"And the ",(0,s.yg)("inlineCode",{parentName:"p"},"./src/screens/navigation.*")," file will only contain ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-four")," because the ",(0,s.yg)("inlineCode",{parentName:"p"},"src/screens/folder")," does not contain a navigation file."),(0,s.yg)("p",null,"So if you want to create a navigation file for all existed screens in the ",(0,s.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one."),(0,s.yg)("p",null,"By updating it means overwriting in other words, so you can just do this:"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack -o\n")))}x.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e12dd04.bf2a73c9.js b/assets/js/7e12dd04.bf2a73c9.js new file mode 100644 index 0000000..a9f2efa --- /dev/null +++ b/assets/js/7e12dd04.bf2a73c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[478],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,d=u["".concat(p,".").concat(y)]||u[y]||m[y]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},616:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"create/intro",id:"version-2.3.4/create/intro",title:"Intro",description:"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.",source:"@site/versioned_docs/version-2.3.4/create/intro.md",sourceDirName:"create",slug:"/create/intro",permalink:"/react-native-help-create/docs/2.3.4/create/intro",draft:!1,tags:[],version:"2.3.4",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Create",permalink:"/react-native-help-create/docs/2.3.4/category/create"},next:{title:"Create Components",permalink:"/react-native-help-create/docs/2.3.4/create/create-components"}},p={},l=[],s={toc:l};function u(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"By default ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to force the use of a specific language you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--js")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"--ts")," options at the end of your ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will not overwrite the existed implementation for all of the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to overwrite the existed implementation for a specific ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--overwrite")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"-o")," option at the end of the command."))),(0,o.yg)("p",null,"The following points shows how to use the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/814f3328.343bd784.js b/assets/js/814f3328.343bd784.js new file mode 100644 index 0000000..eb0c6bc --- /dev/null +++ b/assets/js/814f3328.343bd784.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Welcome","permalink":"/react-native-help-create/blog/welcome"},{"title":"MDX Blog Post","permalink":"/react-native-help-create/blog/mdx-blog-post"},{"title":"Long Blog Post","permalink":"/react-native-help-create/blog/long-blog-post"},{"title":"First Blog Post","permalink":"/react-native-help-create/blog/first-blog-post"}]}')}}]); \ No newline at end of file diff --git a/assets/js/81accc15.f59ec5c3.js b/assets/js/81accc15.f59ec5c3.js new file mode 100644 index 0000000..03977d5 --- /dev/null +++ b/assets/js/81accc15.f59ec5c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5330],{4061:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/8382.0c5367fa.js b/assets/js/8382.0c5367fa.js new file mode 100644 index 0000000..6061ecd --- /dev/null +++ b/assets/js/8382.0c5367fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8382],{6669:(e,t,a)=>{a.d(t,{A:()=>N});var l=a(6540),n=a(53),r=a(5933),o=a(4581),s=a(5489),c=a(1312);const m="sidebar_re4s",i="sidebarItemTitle_pO2u",u="sidebarItemList_Yudw",d="sidebarItem__DBe",g="sidebarItemLink_mo7H",p="sidebarItemLinkActive_I1ZP";function h(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.A)(m,"thin-scrollbar"),"aria-label":(0,c.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.A)(i,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.A)(u,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:d},l.createElement(s.A,{isNavLink:!0,to:e.permalink,className:g,activeClassName:p},e.title)))))))}var E=a(5600);function f(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(s.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function b(e){return l.createElement(E.GX,{component:f,props:e})}function v(e){let{sidebar:t}=e;const a=(0,o.l)();return t?.items.length?"mobile"===a?l.createElement(b,{sidebar:t}):l.createElement(h,{sidebar:t}):null}function N(e){const{sidebar:t,toc:a,children:o,...s}=e,c=t&&t.items.length>0;return l.createElement(r.A,s,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(v,{sidebar:t}),l.createElement("main",{className:(0,n.A)("col",{"col--7":c,"col--9 col--offset-1":!c}),itemScope:!0,itemType:"http://schema.org/Blog"},o),a&&l.createElement("div",{className:"col col--2"},a))))}},8258:(e,t,a)=>{a.d(t,{A:()=>C});var l=a(6540),n=a(53),r=a(7131),o=a(6025);function s(e){let{children:t,className:a}=e;const{frontMatter:n,assets:s}=(0,r.e)(),{withBaseUrl:c}=(0,o.h)(),m=s.image??n.image;return l.createElement("article",{className:a,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},m&&l.createElement("meta",{itemProp:"image",content:c(m,{absolute:!0})}),t)}var c=a(5489);const m="title_f1Hy";function i(e){let{className:t}=e;const{metadata:a,isBlogPostPage:o}=(0,r.e)(),{permalink:s,title:i}=a,u=o?"h1":"h2";return l.createElement(u,{className:(0,n.A)(m,t),itemProp:"headline"},o?i:l.createElement(c.A,{itemProp:"url",to:s},i))}var u=a(1312),d=a(5846);const g="container_mt6G";function p(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,d.W)();return t=>{const a=Math.ceil(t);return e(a,(0,u.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return l.createElement(l.Fragment,null,a(t))}function h(e){let{date:t,formattedDate:a}=e;return l.createElement("time",{dateTime:t,itemProp:"datePublished"},a)}function E(){return l.createElement(l.Fragment,null," \xb7 ")}function f(e){let{className:t}=e;const{metadata:a}=(0,r.e)(),{date:o,formattedDate:s,readingTime:c}=a;return l.createElement("div",{className:(0,n.A)(g,"margin-vert--md",t)},l.createElement(h,{date:o,formattedDate:s}),void 0!==c&&l.createElement(l.Fragment,null,l.createElement(E,null),l.createElement(p,{readingTime:c})))}function b(e){return e.href?l.createElement(c.A,e):l.createElement(l.Fragment,null,e.children)}function v(e){let{author:t,className:a}=e;const{name:r,title:o,url:s,imageURL:c,email:m}=t,i=s||m&&`mailto:${m}`||void 0;return l.createElement("div",{className:(0,n.A)("avatar margin-bottom--sm",a)},c&&l.createElement(b,{href:i,className:"avatar__photo-link"},l.createElement("img",{className:"avatar__photo",src:c,alt:r})),r&&l.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},l.createElement("div",{className:"avatar__name"},l.createElement(b,{href:i,itemProp:"url"},l.createElement("span",{itemProp:"name"},r))),o&&l.createElement("small",{className:"avatar__subtitle",itemProp:"description"},o)))}const N="authorCol_Hf19",P="imageOnlyAuthorRow_pa_O",A="imageOnlyAuthorCol_G86a";function _(e){let{className:t}=e;const{metadata:{authors:a},assets:o}=(0,r.e)();if(0===a.length)return null;const s=a.every((e=>{let{name:t}=e;return!t}));return l.createElement("div",{className:(0,n.A)("margin-top--md margin-bottom--sm",s?P:"row",t)},a.map(((e,t)=>l.createElement("div",{className:(0,n.A)(!s&&"col col--6",s?A:N),key:t},l.createElement(v,{author:{...e,imageURL:o.authorsImageUrls[t]??e.imageURL}})))))}function k(){return l.createElement("header",null,l.createElement(i,null),l.createElement(f,null),l.createElement(_,null))}var T=a(440),w=a(6886);function y(e){let{children:t,className:a}=e;const{isBlogPostPage:o}=(0,r.e)();return l.createElement("div",{id:o?T.blogPostContainerID:void 0,className:(0,n.A)("markdown",a),itemProp:"articleBody"},l.createElement(w.A,null,t))}var B=a(1943),F=a(2053),M=a(9668);function I(){return l.createElement("b",null,l.createElement(u.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function L(e){const{blogPostTitle:t,...a}=e;return l.createElement(c.A,(0,M.A)({"aria-label":(0,u.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},a),l.createElement(I,null))}const R="blogPostFooterDetailsFull_mRVl";function x(){const{metadata:e,isBlogPostPage:t}=(0,r.e)(),{tags:a,title:o,editUrl:s,hasTruncateMarker:c}=e,m=!t&&c,i=a.length>0;return i||m||s?l.createElement("footer",{className:(0,n.A)("row docusaurus-mt-lg",t&&R)},i&&l.createElement("div",{className:(0,n.A)("col",{"col--9":m})},l.createElement(F.A,{tags:a})),t&&s&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(B.A,{editUrl:s})),m&&l.createElement("div",{className:(0,n.A)("col text--right",{"col--3":i})},l.createElement(L,{blogPostTitle:o,to:e.permalink}))):null}function C(e){let{children:t,className:a}=e;const o=function(){const{isBlogPostPage:e}=(0,r.e)();return e?void 0:"margin-bottom--xl"}();return l.createElement(s,{className:(0,n.A)(o,a)},l.createElement(k,null),l.createElement(y,null,t),l.createElement(x,null))}},7131:(e,t,a)=>{a.d(t,{e:()=>s,i:()=>o});var l=a(6540),n=a(9532);const r=l.createContext(null);function o(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const o=function(e){let{content:t,isBlogPostPage:a}=e;return(0,l.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return l.createElement(r.Provider,{value:o},t)}function s(){const e=(0,l.useContext)(r);if(null===e)throw new n.dV("BlogPostProvider");return e}},5846:(e,t,a)=>{a.d(t,{W:()=>m});var l=a(6540),n=a(4586);const r=["zero","one","two","few","many","other"];function o(e){return r.filter((t=>e.includes(t)))}const s={locale:"en",pluralForms:o(["one","other"]),select:e=>1===e?"one":"other"};function c(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:o(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),s}}),[e])}function m(){const e=c();return{selectMessage:(t,a)=>function(e,t,a){const l=e.split("|");if(1===l.length)return l[0];l.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${l.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return l[Math.min(r,l.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/8717b14a.3245cd7c.js b/assets/js/8717b14a.3245cd7c.js new file mode 100644 index 0000000..c7a076d --- /dev/null +++ b/assets/js/8717b14a.3245cd7c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3694],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||g[m]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var s=2;s<a;s++)l[s]=r[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},8540:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(9668),o=(r(6540),r(5680));const a={slug:"long-blog-post",title:"Long Blog Post",authors:"endi",tags:["hello","docusaurus"]},l=void 0,i={permalink:"/react-native-help-create/blog/long-blog-post",source:"@site/blog/2019-05-29-long-blog-post.md",title:"Long Blog Post",description:"This is the summary of a very long blog post,",date:"2019-05-29T00:00:00.000Z",formattedDate:"May 29, 2019",tags:[{label:"hello",permalink:"/react-native-help-create/blog/tags/hello"},{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:2.05,hasTruncateMarker:!0,authors:[{name:"Endilie Yacop Sucipto",title:"Maintainer of Docusaurus",url:"https://github.com/endiliey",imageURL:"https://github.com/endiliey.png",key:"endi"}],frontMatter:{slug:"long-blog-post",title:"Long Blog Post",authors:"endi",tags:["hello","docusaurus"]},prevItem:{title:"MDX Blog Post",permalink:"/react-native-help-create/blog/mdx-blog-post"},nextItem:{title:"First Blog Post",permalink:"/react-native-help-create/blog/first-blog-post"}},c={authorsImageUrls:[void 0]},s=[],p={toc:s};function u(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"This is the summary of a very long blog post,"),(0,o.yg)("p",null,"Use a ",(0,o.yg)("inlineCode",{parentName:"p"},"\x3c!--")," ",(0,o.yg)("inlineCode",{parentName:"p"},"truncate")," ",(0,o.yg)("inlineCode",{parentName:"p"},"--\x3e")," comment to limit blog post size in the list view."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8913.ba3e251d.js b/assets/js/8913.ba3e251d.js new file mode 100644 index 0000000..06ca2a5 --- /dev/null +++ b/assets/js/8913.ba3e251d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8913],{8913:(c,s,e)=>{e.r(s)}}]); \ No newline at end of file diff --git a/assets/js/894e2d1e.d784d9f8.js b/assets/js/894e2d1e.d784d9f8.js new file mode 100644 index 0000000..f110547 --- /dev/null +++ b/assets/js/894e2d1e.d784d9f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[275],{878:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"2.5.1","label":"2.5.1","banner":"unmaintained","badge":true,"noIndex":false,"className":"docs-version-2.5.1","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Summary","href":"/react-native-help-create/docs/2.5.1/intro","docId":"intro"},{"type":"link","label":"Getting Started","href":"/react-native-help-create/docs/2.5.1/getting-started","docId":"getting-started"},{"type":"category","label":"Create","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.5.1/create/intro","docId":"create/intro"},{"type":"link","label":"Create Components","href":"/react-native-help-create/docs/2.5.1/create/create-components","docId":"create/create-components"},{"type":"link","label":"Create Screens","href":"/react-native-help-create/docs/2.5.1/create/create-screens","docId":"create/create-screens"},{"type":"link","label":"Create Navigations","href":"/react-native-help-create/docs/2.5.1/create/create-navigations","docId":"create/create-navigations"},{"type":"link","label":"Using Templates","href":"/react-native-help-create/docs/2.5.1/create/using-templates","docId":"create/using-templates"},{"type":"link","label":"Create Redux","href":"/react-native-help-create/docs/2.5.1/create/create-redux","docId":"create/create-redux"},{"type":"link","label":"Using Configuration","href":"/react-native-help-create/docs/2.5.1/create/using-configuration","docId":"create/using-configuration"}],"href":"/react-native-help-create/docs/2.5.1/category/create"},{"type":"category","label":"Delete","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.5.1/delete/intro","docId":"delete/intro"},{"type":"link","label":"Delete Components","href":"/react-native-help-create/docs/2.5.1/delete/delete-components","docId":"delete/delete-components"},{"type":"link","label":"Delete Screens","href":"/react-native-help-create/docs/2.5.1/delete/delete-screens","docId":"delete/delete-screens"},{"type":"link","label":"Delete Navigations","href":"/react-native-help-create/docs/2.5.1/delete/delete-navigations","docId":"delete/delete-navigations"},{"type":"link","label":"Delete Redux","href":"/react-native-help-create/docs/2.5.1/delete/delete-redux","docId":"delete/delete-redux"},{"type":"link","label":"Delete Configuration","href":"/react-native-help-create/docs/2.5.1/delete/delete-configuration","docId":"delete/delete-configuration"}],"href":"/react-native-help-create/docs/2.5.1/category/delete"},{"type":"category","label":"Combine","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.5.1/combine/intro","docId":"combine/intro"},{"type":"link","label":"Combine Components","href":"/react-native-help-create/docs/2.5.1/combine/combine-components","docId":"combine/combine-components"},{"type":"link","label":"Combine Screens","href":"/react-native-help-create/docs/2.5.1/combine/combine-screens","docId":"combine/combine-screens"}],"href":"/react-native-help-create/docs/2.5.1/category/combine"},{"type":"link","label":"Notes","href":"/react-native-help-create/docs/2.5.1/notes","docId":"notes"}]},"docs":{"combine/combine-components":{"id":"combine/combine-components","title":"Combine Components","description":"To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/combine-screens":{"id":"combine/combine-screens","title":"Combine Screens","description":"To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/intro":{"id":"combine/intro","title":"Intro","description":"With rnhc you can combine your components or screens in a specific path.","sidebar":"tutorialSidebar"},"create/create-components":{"id":"create/create-components","title":"Create Components","description":"Create a Component","sidebar":"tutorialSidebar"},"create/create-navigations":{"id":"create/create-navigations","title":"Create Navigations","description":"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.","sidebar":"tutorialSidebar"},"create/create-redux":{"id":"create/create-redux","title":"Create Redux","description":"To create a redux implementation run:","sidebar":"tutorialSidebar"},"create/create-screens":{"id":"create/create-screens","title":"Create Screens","description":"Create a Screen","sidebar":"tutorialSidebar"},"create/intro":{"id":"create/intro","title":"Intro","description":"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.","sidebar":"tutorialSidebar"},"create/using-configuration":{"id":"create/using-configuration","title":"Using Configuration","description":"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.","sidebar":"tutorialSidebar"},"create/using-templates":{"id":"create/using-templates","title":"Using Templates","description":"You can create your screens and components with your defined templates by following these steps:","sidebar":"tutorialSidebar"},"delete/delete-components":{"id":"delete/delete-components","title":"Delete Components","description":"Delete a Component","sidebar":"tutorialSidebar"},"delete/delete-configuration":{"id":"delete/delete-configuration","title":"Delete Configuration","description":"To delete a configuration file run:","sidebar":"tutorialSidebar"},"delete/delete-navigations":{"id":"delete/delete-navigations","title":"Delete Navigations","description":"Delete the root Navigation","sidebar":"tutorialSidebar"},"delete/delete-redux":{"id":"delete/delete-redux","title":"Delete Redux","description":"To delete a redux implementation run:","sidebar":"tutorialSidebar"},"delete/delete-screens":{"id":"delete/delete-screens","title":"Delete Screens","description":"Delete a Screen","sidebar":"tutorialSidebar"},"delete/intro":{"id":"delete/intro","title":"Intro","description":"With rnhc you can delete what you already created with create commands.","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"- To install it globally in your system run:","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Summary","description":"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.","sidebar":"tutorialSidebar"},"notes":{"id":"notes","title":"Notes","description":"- To see the available commands for rnhc you can run:","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8999aea9.ff6a72f0.js b/assets/js/8999aea9.ff6a72f0.js new file mode 100644 index 0000000..95ebfad --- /dev/null +++ b/assets/js/8999aea9.ff6a72f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8080],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),g=a,d=s["".concat(c,".").concat(g)]||s[g]||y[g]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=g;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}g.displayName="MDXCreateElement"},6772:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(9668),a=(r(6540),r(5680));const o={sidebar_position:2},i="Getting Started",l={unversionedId:"getting-started",id:"version-2.5.1/getting-started",title:"Getting Started",description:"- To install it globally in your system run:",source:"@site/versioned_docs/version-2.5.1/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/react-native-help-create/docs/2.5.1/getting-started",draft:!1,tags:[],version:"2.5.1",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Summary",permalink:"/react-native-help-create/docs/2.5.1/intro"},next:{title:"Create",permalink:"/react-native-help-create/docs/2.5.1/category/create"}},c={},p=[],u={toc:p};function s(e){let{components:t,...r}=e;return(0,a.yg)("wrapper",(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"getting-started"},"Getting Started"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To install it globally in your system run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"npm i react-native-help-create -g\n")),(0,a.yg)("p",null,"Or"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"yarn global add react-native-help-create\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To install it as a dev dependency in your react native project run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"npm i react-native-help-create --save-dev\n")),(0,a.yg)("p",null,"Or"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"yarn add react-native-help-create --dev\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"If you want to use it without installing it (using npm cache) run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"npx react-native-help-create --help\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8a1c58e2.f8829b29.js b/assets/js/8a1c58e2.f8829b29.js new file mode 100644 index 0000000..49fec2a --- /dev/null +++ b/assets/js/8a1c58e2.f8829b29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6600],{6285:e=>{e.exports=JSON.parse('{"title":"Create","description":"How to create files in the project?","slug":"/category/create","permalink":"/react-native-help-create/docs/2.3.4/category/create","navigation":{"previous":{"title":"Getting Started","permalink":"/react-native-help-create/docs/2.3.4/getting-started"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.3.4/create/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8a7573ce.1ceb34dc.js b/assets/js/8a7573ce.1ceb34dc.js new file mode 100644 index 0000000..26060ea --- /dev/null +++ b/assets/js/8a7573ce.1ceb34dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9364],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,d=u["".concat(p,".").concat(y)]||u[y]||m[y]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},425:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"create/intro",id:"version-2.6.0/create/intro",title:"Intro",description:"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.",source:"@site/versioned_docs/version-2.6.0/create/intro.md",sourceDirName:"create",slug:"/create/intro",permalink:"/react-native-help-create/docs/2.6.0/create/intro",draft:!1,tags:[],version:"2.6.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Create",permalink:"/react-native-help-create/docs/2.6.0/category/create"},next:{title:"Create Components",permalink:"/react-native-help-create/docs/2.6.0/create/create-components"}},p={},l=[],s={toc:l};function u(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"By default ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to force the use of a specific language you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--js")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"--ts")," options at the end of your ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will not overwrite the existed implementation for all of the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," commands.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If you want to overwrite the existed implementation for a specific ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command you can add the ",(0,o.yg)("inlineCode",{parentName:"p"},"--overwrite")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"-o")," option at the end of the command."))),(0,o.yg)("p",null,"The following points shows how to use the ",(0,o.yg)("inlineCode",{parentName:"p"},"create")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8aba8e7d.042bb0c8.js b/assets/js/8aba8e7d.042bb0c8.js new file mode 100644 index 0000000..f7fa7da --- /dev/null +++ b/assets/js/8aba8e7d.042bb0c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7805],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(n),f=o,g=s["".concat(c,".").concat(f)]||s[f]||d[f]||i;return n?r.createElement(g,a(a({ref:t},u),{},{components:n})):r.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},3944:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=n(9668),o=(n(6540),n(5680));const i={sidebar_position:6},a="Delete Configuration",l={unversionedId:"delete/delete-configuration",id:"version-2.5.1/delete/delete-configuration",title:"Delete Configuration",description:"To delete a configuration file run:",source:"@site/versioned_docs/version-2.5.1/delete/delete-configuration.md",sourceDirName:"delete",slug:"/delete/delete-configuration",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-configuration",draft:!1,tags:[],version:"2.5.1",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Delete Redux",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-redux"},next:{title:"Combine",permalink:"/react-native-help-create/docs/2.5.1/category/combine"}},c={},p=[],u={toc:p};function s(e){let{components:t,...n}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-configuration"},"Delete Configuration"),(0,o.yg)("p",null,"To delete a configuration file run:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file at the root of the project.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc.config.json does not exist\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8dd3a095.9f8b4c66.js b/assets/js/8dd3a095.9f8b4c66.js new file mode 100644 index 0000000..a2dd968 --- /dev/null +++ b/assets/js/8dd3a095.9f8b4c66.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1481],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>y});var r=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){l(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,l=function(e,n){if(null==e)return{};var t,r,l={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var c=r.createContext({}),o=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=o(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=o(t),m=l,y=d["".concat(c,".").concat(m)]||d[m]||u[m]||a;return t?r.createElement(y,i(i({ref:n},p),{},{components:t})):r.createElement(y,i({ref:n},p))}));function y(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:l,i[1]=s;for(var o=2;o<a;o++)i[o]=t[o];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},6311:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>o});var r=t(9668),l=(t(6540),t(5680));const a={sidebar_position:3},i="Delete Screens",s={unversionedId:"delete/delete-screens",id:"version-2.5.1/delete/delete-screens",title:"Delete Screens",description:"Delete a Screen",source:"@site/versioned_docs/version-2.5.1/delete/delete-screens.md",sourceDirName:"delete",slug:"/delete/delete-screens",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-screens",draft:!1,tags:[],version:"2.5.1",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Delete Components",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-components"},next:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-navigations"}},c={},o=[{value:"Delete a Screen",id:"delete-a-screen",level:2},{value:"Delete multiple Screens",id:"delete-multiple-screens",level:2},{value:"Delete a Screens in a Specific Folder",id:"delete-a-screens-in-a-specific-folder",level:2}],p={toc:o};function d(e){let{components:n,...t}=e;return(0,l.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"delete-screens"},"Delete Screens"),(0,l.yg)("h2",{id:"delete-a-screen"},"Delete a Screen"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete a screen simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"This will delete the screen with the given name ",(0,l.yg)("inlineCode",{parentName:"p"},"<screen-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder.")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"If the screen does not exist, ",(0,l.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/<screen-name>/ does not exist\n")),(0,l.yg)("h2",{id:"delete-multiple-screens"},"Delete multiple Screens"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete multiple screens run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ...\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,l.yg)("h2",{id:"delete-a-screens-in-a-specific-folder"},"Delete a Screens in a Specific Folder"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To delete one or multiple screens that resides in a specific path under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will delete only the existed screens with the given inputs that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8e0033f8.b3b56c1f.js b/assets/js/8e0033f8.b3b56c1f.js new file mode 100644 index 0000000..2517de6 --- /dev/null +++ b/assets/js/8e0033f8.b3b56c1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8750],{3110:e=>{e.exports=JSON.parse('{"permalink":"/react-native-help-create/blog/tags/docusaurus","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/925b3f96.2e780561.js b/assets/js/925b3f96.2e780561.js new file mode 100644 index 0000000..d36c67a --- /dev/null +++ b/assets/js/925b3f96.2e780561.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8609],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>f});var o=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(r),g=n,f=p["".concat(l,".").concat(g)]||p[g]||m[g]||a;return r?o.createElement(f,i(i({ref:t},c),{},{components:r})):o.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var u=2;u<a;u++)i[u]=r[u];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}g.displayName="MDXCreateElement"},7495:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var o=r(9668),n=(r(6540),r(5680));const a={slug:"first-blog-post",title:"First Blog Post",authors:{name:"Gao Wei",title:"Docusaurus Core Team",url:"https://github.com/wgao19",image_url:"https://github.com/wgao19.png"},tags:["hola","docusaurus"]},i=void 0,s={permalink:"/react-native-help-create/blog/first-blog-post",source:"@site/blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet",date:"2019-05-28T00:00:00.000Z",formattedDate:"May 28, 2019",tags:[{label:"hola",permalink:"/react-native-help-create/blog/tags/hola"},{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:.12,hasTruncateMarker:!1,authors:[{name:"Gao Wei",title:"Docusaurus Core Team",url:"https://github.com/wgao19",image_url:"https://github.com/wgao19.png",imageURL:"https://github.com/wgao19.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"Gao Wei",title:"Docusaurus Core Team",url:"https://github.com/wgao19",image_url:"https://github.com/wgao19.png",imageURL:"https://github.com/wgao19.png"},tags:["hola","docusaurus"]},prevItem:{title:"Long Blog Post",permalink:"/react-native-help-create/blog/long-blog-post"}},l={authorsImageUrls:[void 0]},u=[],c={toc:u};function p(e){let{components:t,...r}=e;return(0,n.yg)("wrapper",(0,o.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.9d51f2c5.js b/assets/js/935f2afb.9d51f2c5.js new file mode 100644 index 0000000..9e12cb2 --- /dev/null +++ b/assets/js/935f2afb.9d51f2c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"2.7.0 (current)","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Summary","href":"/react-native-help-create/docs/intro","docId":"intro"},{"type":"link","label":"Getting Started","href":"/react-native-help-create/docs/getting-started","docId":"getting-started"},{"type":"category","label":"Create","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/create/intro","docId":"create/intro"},{"type":"link","label":"Create Components","href":"/react-native-help-create/docs/create/create-components","docId":"create/create-components"},{"type":"link","label":"Create Screens","href":"/react-native-help-create/docs/create/create-screens","docId":"create/create-screens"},{"type":"link","label":"Create Navigations","href":"/react-native-help-create/docs/create/create-navigations","docId":"create/create-navigations"},{"type":"link","label":"Using Templates","href":"/react-native-help-create/docs/create/using-templates","docId":"create/using-templates"},{"type":"link","label":"Create Redux","href":"/react-native-help-create/docs/create/create-redux","docId":"create/create-redux"},{"type":"link","label":"Using Configuration","href":"/react-native-help-create/docs/create/using-configuration","docId":"create/using-configuration"}],"href":"/react-native-help-create/docs/category/create"},{"type":"category","label":"Delete","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/delete/intro","docId":"delete/intro"},{"type":"link","label":"Delete Components","href":"/react-native-help-create/docs/delete/delete-components","docId":"delete/delete-components"},{"type":"link","label":"Delete Screens","href":"/react-native-help-create/docs/delete/delete-screens","docId":"delete/delete-screens"},{"type":"link","label":"Delete Navigations","href":"/react-native-help-create/docs/delete/delete-navigations","docId":"delete/delete-navigations"},{"type":"link","label":"Delete Redux","href":"/react-native-help-create/docs/delete/delete-redux","docId":"delete/delete-redux"},{"type":"link","label":"Delete Configuration","href":"/react-native-help-create/docs/delete/delete-configuration","docId":"delete/delete-configuration"}],"href":"/react-native-help-create/docs/category/delete"},{"type":"category","label":"Combine","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/combine/intro","docId":"combine/intro"},{"type":"link","label":"Combine Components","href":"/react-native-help-create/docs/combine/combine-components","docId":"combine/combine-components"},{"type":"link","label":"Combine Screens","href":"/react-native-help-create/docs/combine/combine-screens","docId":"combine/combine-screens"}],"href":"/react-native-help-create/docs/category/combine"},{"type":"link","label":"Notes","href":"/react-native-help-create/docs/notes","docId":"notes"}]},"docs":{"combine/combine-components":{"id":"combine/combine-components","title":"Combine Components","description":"To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/combine-screens":{"id":"combine/combine-screens","title":"Combine Screens","description":"To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/intro":{"id":"combine/intro","title":"Intro","description":"With rnhc you can combine your components or screens in a specific path.","sidebar":"tutorialSidebar"},"create/create-components":{"id":"create/create-components","title":"Create Components","description":"Create a Component","sidebar":"tutorialSidebar"},"create/create-navigations":{"id":"create/create-navigations","title":"Create Navigations","description":"Navigations are the relations between chosen screens.","sidebar":"tutorialSidebar"},"create/create-redux":{"id":"create/create-redux","title":"Create Redux","description":"To create a redux implementation run:","sidebar":"tutorialSidebar"},"create/create-screens":{"id":"create/create-screens","title":"Create Screens","description":"Create a Screen","sidebar":"tutorialSidebar"},"create/intro":{"id":"create/intro","title":"Intro","description":"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.","sidebar":"tutorialSidebar"},"create/using-configuration":{"id":"create/using-configuration","title":"Using Configuration","description":"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.","sidebar":"tutorialSidebar"},"create/using-templates":{"id":"create/using-templates","title":"Using Templates","description":"You can create your screens and components with your defined templates by following these steps:","sidebar":"tutorialSidebar"},"delete/delete-components":{"id":"delete/delete-components","title":"Delete Components","description":"Delete a Component","sidebar":"tutorialSidebar"},"delete/delete-configuration":{"id":"delete/delete-configuration","title":"Delete Configuration","description":"To delete a configuration file run:","sidebar":"tutorialSidebar"},"delete/delete-navigations":{"id":"delete/delete-navigations","title":"Delete Navigations","description":"Delete the root Navigation","sidebar":"tutorialSidebar"},"delete/delete-redux":{"id":"delete/delete-redux","title":"Delete Redux","description":"To delete a redux implementation run:","sidebar":"tutorialSidebar"},"delete/delete-screens":{"id":"delete/delete-screens","title":"Delete Screens","description":"Delete a Screen","sidebar":"tutorialSidebar"},"delete/intro":{"id":"delete/intro","title":"Intro","description":"With rnhc you can delete what you already created with create commands.","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"- To install it globally in your system run:","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Summary","description":"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.","sidebar":"tutorialSidebar"},"notes":{"id":"notes","title":"Notes","description":"- To see the available commands for rnhc you can run:","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9551.c51e0fc1.js b/assets/js/9551.c51e0fc1.js new file mode 100644 index 0000000..f406073 --- /dev/null +++ b/assets/js/9551.c51e0fc1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9551],{1943:(e,n,t)=>{t.d(n,{A:()=>m});var a=t(6540),l=t(1312),i=t(7559),r=t(9668),o=t(53);const c="iconEdit_Z9Sw";function s(e){let{className:n,...t}=e;return a.createElement("svg",(0,r.A)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.A)(c,n),"aria-hidden":"true"},t),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function m(e){let{editUrl:n}=e;return a.createElement("a",{href:n,target:"_blank",rel:"noreferrer noopener",className:i.G.common.editThisPage},a.createElement(s,null),a.createElement(l.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},1107:(e,n,t)=>{t.d(n,{A:()=>m});var a=t(9668),l=t(6540),i=t(53),r=t(1312),o=t(6342);const c="anchorWithStickyNavbar_LWe7",s="anchorWithHideOnScrollNavbar_WYt5";function m(e){let{as:n,id:t,...m}=e;const{navbar:{hideOnScroll:d}}=(0,o.p)();return"h1"!==n&&t?l.createElement(n,(0,a.A)({},m,{className:(0,i.A)("anchor",d?s:c),id:t}),m.children,l.createElement("a",{className:"hash-link",href:`#${t}`,title:(0,r.T)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):l.createElement(n,(0,a.A)({},m,{id:void 0}))}},6886:(e,n,t)=>{t.d(n,{A:()=>V});var a=t(6540),l=t(5680),i=t(9668),r=t(5260);var o=t(7964);var c=t(5489);var s=t(53),m=t(2303),d=t(1422);const u="details_lb9f",p="isBrowser_bmU9",h="collapsibleContent_i85q";function f(e){return!!e&&("SUMMARY"===e.tagName||f(e.parentElement))}function E(e,n){return!!e&&(e===n||E(e.parentElement,n))}function g(e){let{summary:n,children:t,...l}=e;const r=(0,m.A)(),o=(0,a.useRef)(null),{collapsed:c,setCollapsed:g}=(0,d.u)({initialState:!l.open}),[v,A]=(0,a.useState)(l.open);return a.createElement("details",(0,i.A)({},l,{ref:o,open:v,"data-collapsed":c,className:(0,s.A)(u,r&&p,l.className),onMouseDown:e=>{f(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;f(n)&&E(n,o.current)&&(e.preventDefault(),c?(g(!1),A(!0)):g(!0))}}),n??a.createElement("summary",null,"Details"),a.createElement(d.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{g(e),A(!e)}},a.createElement("div",{className:h},t)))}const v="details_b_Ee";function A(e){let{...n}=e;return a.createElement(g,(0,i.A)({},n,{className:(0,s.A)("alert alert--info",v,n.className)}))}var b=t(1107);function N(e){return a.createElement(b.A,e)}const C="containsTaskList_mC6p";const _="img_ev3q";var y=t(7559),T=t(1312);const k="admonition_LlT9",z="admonitionHeading_tbUL",x="admonitionIcon_kALy",w="admonitionContent_S0QG";const M={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(T.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(T.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(T.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(T.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(T.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},L={secondary:"note",important:"info",success:"tip",warning:"danger"};function S(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=a.Children.toArray(e),t=n.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),l=a.createElement(a.Fragment,null,n.filter((e=>e!==t)));return{mdxAdmonitionTitle:t,rest:l}}(e.children);return{...e,title:e.title??n,children:t}}const H={head:function(e){const n=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:n,originalType:t,...l}=e.props;return a.createElement(e.props.originalType,l)}return e}(e):e));return a.createElement(r.A,e,n)},code:function(e){const n=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&n.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(o.A,e)},a:function(e){return a.createElement(c.A,e)},pre:function(e){return a.createElement(o.A,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const n=a.Children.toArray(e.children),t=n.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),l=a.createElement(a.Fragment,null,n.filter((e=>e!==t)));return a.createElement(A,(0,i.A)({},e,{summary:t}),l)},ul:function(e){return a.createElement("ul",(0,i.A)({},e,{className:(n=e.className,(0,s.A)(n,n?.includes("contains-task-list")&&C))}));var n},img:function(e){return a.createElement("img",(0,i.A)({loading:"lazy"},e,{className:(n=e.className,(0,s.A)(n,_))}));var n},h1:e=>a.createElement(N,(0,i.A)({as:"h1"},e)),h2:e=>a.createElement(N,(0,i.A)({as:"h2"},e)),h3:e=>a.createElement(N,(0,i.A)({as:"h3"},e)),h4:e=>a.createElement(N,(0,i.A)({as:"h4"},e)),h5:e=>a.createElement(N,(0,i.A)({as:"h5"},e)),h6:e=>a.createElement(N,(0,i.A)({as:"h6"},e)),admonition:function(e){const{children:n,type:t,title:l,icon:i}=S(e),r=function(e){const n=L[e]??e,t=M[n];return t||(console.warn(`No admonition config found for admonition type "${n}". Using Info as fallback.`),M.info)}(t),o=l??r.label,{iconComponent:c}=r,m=i??a.createElement(c,null);return a.createElement("div",{className:(0,s.A)(y.G.common.admonition,y.G.common.admonitionType(e.type),"alert",`alert--${r.infimaClassName}`,k)},a.createElement("div",{className:z},a.createElement("span",{className:x},m),o),a.createElement("div",{className:w},n))},mermaid:()=>null};function V(e){let{children:n}=e;return a.createElement(l.xA,{components:H},n)}},9022:(e,n,t)=>{t.d(n,{A:()=>r});var a=t(6540),l=t(53),i=t(5489);function r(e){const{permalink:n,title:t,subLabel:r,isNext:o}=e;return a.createElement(i.A,{className:(0,l.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n},r&&a.createElement("div",{className:"pagination-nav__sublabel"},r),a.createElement("div",{className:"pagination-nav__label"},t))}},6133:(e,n,t)=>{t.d(n,{A:()=>s});var a=t(6540),l=t(53),i=t(5489);const r="tag_zVej",o="tagRegular_sFm0",c="tagWithCount_h2kH";function s(e){let{permalink:n,label:t,count:s}=e;return a.createElement(i.A,{href:n,className:(0,l.A)(r,s?c:o)},t,s&&a.createElement("span",null,s))}},2053:(e,n,t)=>{t.d(n,{A:()=>s});var a=t(6540),l=t(53),i=t(1312),r=t(6133);const o="tags_jXut",c="tag_QGVx";function s(e){let{tags:n}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(i.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,l.A)(o,"padding--none","margin-left--sm")},n.map((e=>{let{label:n,permalink:t}=e;return a.createElement("li",{key:t,className:c},a.createElement(r.A,{label:n,permalink:t}))}))))}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.6e219e9b.js b/assets/js/9e4087bc.6e219e9b.js new file mode 100644 index 0000000..26f3ee8 --- /dev/null +++ b/assets/js/9e4087bc.6e219e9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2711],{9331:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(6540),l=a(5489),n=a(1312),c=a(9024),m=a(5933);function s(e){let{year:t,posts:a}=e;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((e=>r.createElement("li",{key:e.metadata.date},r.createElement(l.A,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))))))}function i(e){let{years:t}=e;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map(((e,t)=>r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(s,e)))))))}function o(e){let{archive:t}=e;const a=(0,n.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),l=(0,n.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),s=function(e){const t=e.reduceRight(((e,t)=>{const a=t.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[t,...r])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return r.createElement(r.Fragment,null,r.createElement(c.be,{title:a,description:l}),r.createElement(m.A,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},a),r.createElement("p",{className:"hero__subtitle"},l))),r.createElement("main",null,s.length>0&&r.createElement(i,{years:s}))))}}}]); \ No newline at end of file diff --git a/assets/js/a191ded7.78158bfa.js b/assets/js/a191ded7.78158bfa.js new file mode 100644 index 0000000..dba0790 --- /dev/null +++ b/assets/js/a191ded7.78158bfa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6817],{2945:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/a436d11f.7d0c33fc.js b/assets/js/a436d11f.7d0c33fc.js new file mode 100644 index 0000000..a42db54 --- /dev/null +++ b/assets/js/a436d11f.7d0c33fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1163],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),g=a,f=p["".concat(c,".").concat(g)]||p[g]||u[g]||i;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var s=2;s<i;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}g.displayName="MDXCreateElement"},5055:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var r=n(9668),a=(n(6540),n(5680));const i={sidebar_position:4},l="Delete Navigations",o={unversionedId:"delete/delete-navigations",id:"delete/delete-navigations",title:"Delete Navigations",description:"Delete the root Navigation",source:"@site/docs/delete/delete-navigations.md",sourceDirName:"delete",slug:"/delete/delete-navigations",permalink:"/react-native-help-create/docs/delete/delete-navigations",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Delete Screens",permalink:"/react-native-help-create/docs/delete/delete-screens"},next:{title:"Delete Redux",permalink:"/react-native-help-create/docs/delete/delete-redux"}},c={},s=[{value:"Delete the root Navigation",id:"delete-the-root-navigation",level:2},{value:"Delete a Navigation in a Specific Folder",id:"delete-a-navigation-in-a-specific-folder",level:2}],d={toc:s};function p(e){let{components:t,...n}=e;return(0,a.yg)("wrapper",(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"delete-navigations"},"Delete Navigations"),(0,a.yg)("h2",{id:"delete-the-root-navigation"},"Delete the root Navigation"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete the navigation file if it exists, if not ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"It seems there is no navigation file in src/screens/\n")),(0,a.yg)("h2",{id:"delete-a-navigation-in-a-specific-folder"},"Delete a Navigation in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete a navigation file that resides in a specific path that resides under ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -n -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete the navigation file if it does exist under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.44cfb3a1.js b/assets/js/a6aa9e1f.44cfb3a1.js new file mode 100644 index 0000000..f669d05 --- /dev/null +++ b/assets/js/a6aa9e1f.44cfb3a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7643],{7785:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var n=a(6540),r=a(53),l=a(4586),i=a(9024),o=a(7559),s=a(6669),c=a(7713),m=a(1463),g=a(3892);function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,l.A)(),{blogDescription:r,blogTitle:o,permalink:s}=t,c="/"===s?a:o;return n.createElement(n.Fragment,null,n.createElement(i.be,{title:c,description:r}),n.createElement(m.A,{tag:"blog_posts_list"}))}function d(e){const{metadata:t,items:a,sidebar:r}=e;return n.createElement(s.A,{sidebar:r},n.createElement(g.A,{items:a}),n.createElement(c.A,{metadata:t}))}function u(e){return n.createElement(i.e3,{className:(0,r.A)(o.G.wrapper.blogPages,o.G.page.blogListPage)},n.createElement(p,e),n.createElement(d,e))}},7713:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(6540),r=a(1312),l=a(9022);function i(e){const{metadata:t}=e,{previousPage:a,nextPage:i}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,r.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(l.A,{permalink:a,title:n.createElement(r.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),i&&n.createElement(l.A,{permalink:i,title:n.createElement(r.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},3892:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(6540),r=a(7131),l=a(8258);function i(e){let{items:t,component:a=l.A}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(r.i,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}}}]); \ No newline at end of file diff --git a/assets/js/a8af8446.58661777.js b/assets/js/a8af8446.58661777.js new file mode 100644 index 0000000..efa228c --- /dev/null +++ b/assets/js/a8af8446.58661777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7519],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>g});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function l(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function s(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?l(Object(r),!0).forEach((function(n){a(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function c(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},l=Object.keys(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=t.createContext({}),o=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):s(s({},n),e)),r},p=function(e){var n=o(e.components);return t.createElement(i.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=o(r),y=a,g=u["".concat(i,".").concat(y)]||u[y]||m[y]||l;return r?t.createElement(g,s(s({ref:n},p),{},{components:r})):t.createElement(g,s({ref:n},p))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=r.length,s=new Array(l);s[0]=y;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[u]="string"==typeof e?e:a,s[1]=c;for(var o=2;o<l;o++)s[o]=r[o];return t.createElement.apply(null,s)}return t.createElement.apply(null,r)}y.displayName="MDXCreateElement"},3276:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>o});var t=r(9668),a=(r(6540),r(5680));const l={sidebar_position:3},s="Create Screens",c={unversionedId:"create/create-screens",id:"version-2.3.4/create/create-screens",title:"Create Screens",description:"Create a Screen",source:"@site/versioned_docs/version-2.3.4/create/create-screens.md",sourceDirName:"create",slug:"/create/create-screens",permalink:"/react-native-help-create/docs/2.3.4/create/create-screens",draft:!1,tags:[],version:"2.3.4",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Create Components",permalink:"/react-native-help-create/docs/2.3.4/create/create-components"},next:{title:"Create Navigations",permalink:"/react-native-help-create/docs/2.3.4/create/create-navigations"}},i={},o=[{value:"Create a Screen",id:"create-a-screen",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Screens",id:"create-multiple-screens",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Screens in a Specific Folder",id:"create-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-2",level:3}],p={toc:o};function u(e){let{components:n,...r}=e;return(0,a.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-screens"},"Create Screens"),(0,a.yg)("h2",{id:"create-a-screen"},"Create a Screen"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your screen simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a screen after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"screen-name")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s test-screen\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u2514\u2500\u2500\u2500test-screen\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," represent the screen which is nothing but a React FC component that contains the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import React from "react";\nimport { Text, View } from "react-native";\n\nimport {} from "./functions";\nimport { TestScreenStyles } from "./styles";\n\nexport const TestScreenScreen = () => {\n return (\n <View>\n <Text>TestScreen screen created!</Text>\n </View>\n );\n};\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"As for ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.js")," you will find:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},'import { StyleSheet } from "react-native";\n\nexport const TestScreenStyles = StyleSheet.create({});\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And under the ",(0,a.yg)("inlineCode",{parentName:"li"},"functions")," folder you should write your screen's functions and export them in ",(0,a.yg)("inlineCode",{parentName:"li"},"function/index.js")," file, which by default it will contain the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"// write your TestScreen screen functions here\n")),(0,a.yg)("h2",{id:"create-multiple-screens"},"Create multiple Screens"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple screens simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u251c\u2500\u2500\u2500screen-1\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-2\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,a.yg)("h2",{id:"create-screens-in-a-specific-folder"},"Create Screens in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or multiple screens in a specific path that resides under ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>")," folder.")),(0,a.yg)("h3",{id:"example-2"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u2514\u2500\u2500\u2500foo\n \u2514\u2500\u2500\u2500bar\n \u251c\u2500\u2500\u2500screen-1\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-2\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aca5172c.31f945aa.js b/assets/js/aca5172c.31f945aa.js new file mode 100644 index 0000000..2c7b6bc --- /dev/null +++ b/assets/js/aca5172c.31f945aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4672],{3397:e=>{e.exports=JSON.parse('{"permalink":"/react-native-help-create/blog/tags/hello","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/acf1a8e6.66943eee.js b/assets/js/acf1a8e6.66943eee.js new file mode 100644 index 0000000..69feca1 --- /dev/null +++ b/assets/js/acf1a8e6.66943eee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9978],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),p=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=p(e.components);return r.createElement(c.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=p(t),y=a,g=m["".concat(c,".").concat(y)]||m[y]||u[y]||o;return t?r.createElement(g,l(l({ref:n},s),{},{components:t})):r.createElement(g,l({ref:n},s))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var p=2;p<o;p++)l[p]=t[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},7439:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:6},l="Notes",i={unversionedId:"notes",id:"version-2.6.0/notes",title:"Notes",description:"- To see the available commands for rnhc you can run:",source:"@site/versioned_docs/version-2.6.0/notes.md",sourceDirName:".",slug:"/notes",permalink:"/react-native-help-create/docs/2.6.0/notes",draft:!1,tags:[],version:"2.6.0",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Combine Screens",permalink:"/react-native-help-create/docs/2.6.0/combine/combine-screens"}},c={},p=[],s={toc:p};function m(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"notes"},"Notes"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To see the available commands for ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc --help\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To see the available positionals and options for a specific command like ",(0,a.yg)("inlineCode",{parentName:"li"},"create")," you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --help\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"In order to ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"You don't seem to be at the root of a react native project\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In ",(0,a.yg)("inlineCode",{parentName:"p"},"create")," command, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If you are in a JavaScript project and somehow you want to create your component or screen in TypeScript, you can use the ",(0,a.yg)("inlineCode",{parentName:"p"},"--typescript")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"--ts")," option:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s test-screen --ts\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"It doesn't matter what case you name your component or screen, ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will always create a component or screen with the same name, but with the first letter in uppercase, and the folder will be in kebab case. So if you name your component with ",(0,a.yg)("inlineCode",{parentName:"li"},"test-comp"),", it will create a component or screen with the name ",(0,a.yg)("inlineCode",{parentName:"li"},"TestComp")," in the ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," file under the ",(0,a.yg)("inlineCode",{parentName:"li"},"./src/components/test-comp/")," folder. Check the example below:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-comp\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c testComp\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestComp\n")),(0,a.yg)("p",null,"The above commands produce the same outcome:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-comp\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"You can always overwrite your implementation using the ",(0,a.yg)("inlineCode",{parentName:"li"},"--overwrite")," or ",(0,a.yg)("inlineCode",{parentName:"li"},"-o")," option, for example:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-component -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s TestScreen -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -r -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --reducer testReducer -o\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --action testReducer test-action -o\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This is helpful when you want to update your navigation files, for example you already have a navigation file in ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder and you want to update it with the new screens you created:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack --overwrite\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"When creating reducers you should have already a redux implmentation created with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," so it can work.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"When creating actions, you should have already a redux implementation created with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create -r")," as well as an existed reducer with ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc create --reducer <reducer-name>")," so it can create actions for that specific reducer.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/redux/")," folder (Or your specified path for the root of redux folder in ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc.config.json"),").")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You can use the ",(0,a.yg)("inlineCode",{parentName:"p"},"--silent")," option to avoid the prompts for all commands:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c foo --silent\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("inlineCode",{parentName:"li"},"rnhc")," will recommend you similar commands if you type a command that doesn't exist. For example, if you type ",(0,a.yg)("inlineCode",{parentName:"li"},"rnhc crete -c"),", it will prompt you with the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc <command> [option]\n\nCommands:\n rnhc create [name] Create components, screens, navigations and redux\n implementation\n rnhc delete [name] Delete components, screens, navigations and redux\n implementation\n rnhc combine [name] Combine components or screens in a folder\n\nOptions:\n --version Show version number [boolean]\n --silent Do not show log messages [boolean]\n --help Show help [boolean]\n\nDid you mean create?\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2d63eab.d0975501.js b/assets/js/b2d63eab.d0975501.js new file mode 100644 index 0000000..10c2e47 --- /dev/null +++ b/assets/js/b2d63eab.d0975501.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5076],{7757:e=>{e.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/b40c2fb5.816387ce.js b/assets/js/b40c2fb5.816387ce.js new file mode 100644 index 0000000..af94468 --- /dev/null +++ b/assets/js/b40c2fb5.816387ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4929],{9577:e=>{e.exports=JSON.parse('{"title":"Combine","description":"How to combine components or screens?","slug":"/category/combine","permalink":"/react-native-help-create/docs/2.3.4/category/combine","navigation":{"previous":{"title":"Delete Configuration","permalink":"/react-native-help-create/docs/2.3.4/delete/delete-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.3.4/combine/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b4c9f6d8.dbbc835b.js b/assets/js/b4c9f6d8.dbbc835b.js new file mode 100644 index 0000000..08a9286 --- /dev/null +++ b/assets/js/b4c9f6d8.dbbc835b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2789],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>g});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function l(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function s(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?l(Object(r),!0).forEach((function(n){a(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function c(e,n){if(null==e)return{};var r,t,a=function(e,n){if(null==e)return{};var r,t,a={},l=Object.keys(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t<l.length;t++)r=l[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=t.createContext({}),o=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):s(s({},n),e)),r},p=function(e){var n=o(e.components);return t.createElement(i.Provider,{value:n},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=o(r),m=a,g=u["".concat(i,".").concat(m)]||u[m]||y[m]||l;return r?t.createElement(g,s(s({ref:n},p),{},{components:r})):t.createElement(g,s({ref:n},p))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=r.length,s=new Array(l);s[0]=m;var c={};for(var i in n)hasOwnProperty.call(n,i)&&(c[i]=n[i]);c.originalType=e,c[u]="string"==typeof e?e:a,s[1]=c;for(var o=2;o<l;o++)s[o]=r[o];return t.createElement.apply(null,s)}return t.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6445:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>o});var t=r(9668),a=(r(6540),r(5680));const l={sidebar_position:3},s="Create Screens",c={unversionedId:"create/create-screens",id:"version-2.5.1/create/create-screens",title:"Create Screens",description:"Create a Screen",source:"@site/versioned_docs/version-2.5.1/create/create-screens.md",sourceDirName:"create",slug:"/create/create-screens",permalink:"/react-native-help-create/docs/2.5.1/create/create-screens",draft:!1,tags:[],version:"2.5.1",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Create Components",permalink:"/react-native-help-create/docs/2.5.1/create/create-components"},next:{title:"Create Navigations",permalink:"/react-native-help-create/docs/2.5.1/create/create-navigations"}},i={},o=[{value:"Create a Screen",id:"create-a-screen",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Screens",id:"create-multiple-screens",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Screens in a Specific Folder",id:"create-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-2",level:3}],p={toc:o};function u(e){let{components:n,...r}=e;return(0,a.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-screens"},"Create Screens"),(0,a.yg)("h2",{id:"create-a-screen"},"Create a Screen"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your screen simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a screen after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"screen-name")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s testScreen\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 test-screen\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," represent the screen which is nothing but a React FC component that contains the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import { Text, View } from "react-native";\nimport {} from "./functions";\nimport { TestScreenStyles } from "./styles";\n\nconst TestScreenScreen = () => {\n return (\n <View>\n <Text>TestScreen screen created!</Text>\n </View>\n );\n};\nexport default TestScreenScreen;\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"As for ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.js")," you will find:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},'import { StyleSheet } from "react-native";\n\nexport const TestScreenStyles = StyleSheet.create({});\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And under the ",(0,a.yg)("inlineCode",{parentName:"li"},"functions")," folder you should write your screen's functions and export them in ",(0,a.yg)("inlineCode",{parentName:"li"},"function/index.js")," file, which by default it will contain the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"// write your TestScreen screen functions here\n")),(0,a.yg)("h2",{id:"create-multiple-screens"},"Create multiple Screens"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple screens simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("h2",{id:"create-screens-in-a-specific-folder"},"Create Screens in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or multiple screens in a specific path that resides under ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>")," folder.")),(0,a.yg)("h3",{id:"example-2"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b7866efb.34f24dad.js b/assets/js/b7866efb.34f24dad.js new file mode 100644 index 0000000..6d2755e --- /dev/null +++ b/assets/js/b7866efb.34f24dad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6519],{4955:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"2.3.4","label":"2.3.4","banner":"unmaintained","badge":true,"noIndex":false,"className":"docs-version-2.3.4","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Summary","href":"/react-native-help-create/docs/2.3.4/intro","docId":"intro"},{"type":"link","label":"Getting Started","href":"/react-native-help-create/docs/2.3.4/getting-started","docId":"getting-started"},{"type":"category","label":"Create","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.3.4/create/intro","docId":"create/intro"},{"type":"link","label":"Create Components","href":"/react-native-help-create/docs/2.3.4/create/create-components","docId":"create/create-components"},{"type":"link","label":"Create Screens","href":"/react-native-help-create/docs/2.3.4/create/create-screens","docId":"create/create-screens"},{"type":"link","label":"Create Navigations","href":"/react-native-help-create/docs/2.3.4/create/create-navigations","docId":"create/create-navigations"},{"type":"link","label":"Using Templates","href":"/react-native-help-create/docs/2.3.4/create/using-templates","docId":"create/using-templates"},{"type":"link","label":"Create Redux","href":"/react-native-help-create/docs/2.3.4/create/create-redux","docId":"create/create-redux"},{"type":"link","label":"Using Configuration","href":"/react-native-help-create/docs/2.3.4/create/using-configuration","docId":"create/using-configuration"}],"href":"/react-native-help-create/docs/2.3.4/category/create"},{"type":"category","label":"Delete","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.3.4/delete/intro","docId":"delete/intro"},{"type":"link","label":"Delete Components","href":"/react-native-help-create/docs/2.3.4/delete/delete-components","docId":"delete/delete-components"},{"type":"link","label":"Delete Screens","href":"/react-native-help-create/docs/2.3.4/delete/delete-screens","docId":"delete/delete-screens"},{"type":"link","label":"Delete Navigations","href":"/react-native-help-create/docs/2.3.4/delete/delete-navigations","docId":"delete/delete-navigations"},{"type":"link","label":"Delete Redux","href":"/react-native-help-create/docs/2.3.4/delete/delete-redux","docId":"delete/delete-redux"},{"type":"link","label":"Delete Configuration","href":"/react-native-help-create/docs/2.3.4/delete/delete-configuration","docId":"delete/delete-configuration"}],"href":"/react-native-help-create/docs/2.3.4/category/delete"},{"type":"category","label":"Combine","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.3.4/combine/intro","docId":"combine/intro"},{"type":"link","label":"Combine Components","href":"/react-native-help-create/docs/2.3.4/combine/combine-components","docId":"combine/combine-components"},{"type":"link","label":"Combine Screens","href":"/react-native-help-create/docs/2.3.4/combine/combine-screens","docId":"combine/combine-screens"}],"href":"/react-native-help-create/docs/2.3.4/category/combine"},{"type":"link","label":"Notes","href":"/react-native-help-create/docs/2.3.4/notes","docId":"notes"}]},"docs":{"combine/combine-components":{"id":"combine/combine-components","title":"Combine Components","description":"- To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/combine-screens":{"id":"combine/combine-screens","title":"Combine Screens","description":"- To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/intro":{"id":"combine/intro","title":"Intro","description":"With rnhc you can combine your components or screens in a specific path.","sidebar":"tutorialSidebar"},"create/create-components":{"id":"create/create-components","title":"Create Components","description":"Create a Component","sidebar":"tutorialSidebar"},"create/create-navigations":{"id":"create/create-navigations","title":"Create Navigations","description":"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.","sidebar":"tutorialSidebar"},"create/create-redux":{"id":"create/create-redux","title":"Create Redux","description":"- To create a redux implementation run:","sidebar":"tutorialSidebar"},"create/create-screens":{"id":"create/create-screens","title":"Create Screens","description":"Create a Screen","sidebar":"tutorialSidebar"},"create/intro":{"id":"create/intro","title":"Intro","description":"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.","sidebar":"tutorialSidebar"},"create/using-configuration":{"id":"create/using-configuration","title":"Using Configuration","description":"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.","sidebar":"tutorialSidebar"},"create/using-templates":{"id":"create/using-templates","title":"Using Templates","description":"You can create your screens and components with your defined templates by following these steps:","sidebar":"tutorialSidebar"},"delete/delete-components":{"id":"delete/delete-components","title":"Delete Components","description":"Delete a Component","sidebar":"tutorialSidebar"},"delete/delete-configuration":{"id":"delete/delete-configuration","title":"Delete Configuration","description":"- To delete a configuration file run:","sidebar":"tutorialSidebar"},"delete/delete-navigations":{"id":"delete/delete-navigations","title":"Delete Navigations","description":"Delete the root Navigation","sidebar":"tutorialSidebar"},"delete/delete-redux":{"id":"delete/delete-redux","title":"Delete Redux","description":"- To delete a redux implementation run:","sidebar":"tutorialSidebar"},"delete/delete-screens":{"id":"delete/delete-screens","title":"Delete Screens","description":"Delete a Screen","sidebar":"tutorialSidebar"},"delete/intro":{"id":"delete/intro","title":"Intro","description":"With rnhc you can delete what you already created with create commands.","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"- To install it globally in your system run:","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Summary","description":"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.","sidebar":"tutorialSidebar"},"notes":{"id":"notes","title":"Notes","description":"- To see the available commands for rnhc you can run:","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b7c5fcf6.4109d86b.js b/assets/js/b7c5fcf6.4109d86b.js new file mode 100644 index 0000000..74b4649 --- /dev/null +++ b/assets/js/b7c5fcf6.4109d86b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6795],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(t),y=a,m=d["".concat(c,".").concat(y)]||d[y]||u[y]||o;return t?r.createElement(m,i(i({ref:n},p),{},{components:t})):r.createElement(m,i({ref:n},p))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=t[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},8807:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:1},i="Summary",s={unversionedId:"intro",id:"version-2.3.4/intro",title:"Summary",description:"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.",source:"@site/versioned_docs/version-2.3.4/intro.md",sourceDirName:".",slug:"/intro",permalink:"/react-native-help-create/docs/2.3.4/intro",draft:!1,tags:[],version:"2.3.4",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Getting Started",permalink:"/react-native-help-create/docs/2.3.4/getting-started"}},c={},l=[],p={toc:l};function d(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"summary"},"Summary"),(0,a.yg)("p",null,"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code."),(0,a.yg)("p",null,"The following project structure is used by this command:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"src\n\u251c\u2500\u2500\u2500components\n\u2502 \u251c\u2500\u2500\u2500comp-one\n\u2502 \u2502 index.jsx\n\u2502 \u2502 styles.js\n\u2502 \u2502\n\u2502 \u251c\u2500\u2500\u2500comp-two\n\u2502 \u2502 index.jsx\n\u2502 \u2502 styles.js\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500folder\n\u2502 \u2514\u2500\u2500\u2500comp-three\n\u2502 index.jsx\n\u2502 styles.js\n\u2502\n\u251c\u2500\u2500\u2500redux\n\u2502 \u2502 index.js\n\u2502 \u2502\n\u2502 \u251c\u2500\u2500\u2500actions\n\u2502 \u2502 \u2514\u2500\u2500\u2500general\n\u2502 \u2502 index.js\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500reducers\n\u2502 \u2502 index.js\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500general\n\u2502 index.js\n\u2502\n\u2514\u2500\u2500\u2500screens\n \u2502 navigation.jsx\n \u2502\n \u251c\u2500\u2500\u2500folder\n \u2502 \u2502 navigation.jsx\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500\u2500screen-four\n \u2502 \u2502 \u2502 index.jsx\n \u2502 \u2502 \u2502 styles.js\n \u2502 \u2502 \u2502\n \u2502 \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 \u2502 index.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500screen-three\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u251c\u2500\u2500\u2500screen-one\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-two\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"As you can see above, the ",(0,a.yg)("inlineCode",{parentName:"p"},"src")," folder is the folder that resides at the root of your React Native project and under this folder, you will find the ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," folder which contains all the shared components that are used through out the screen. The ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folder contains the app's screens that can uses some of the shared components above it.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In each component you will find ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," that contains the components ",(0,a.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,a.yg)("inlineCode",{parentName:"p"},"styles.js")," that contains the styles for that component.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In each screen you will find ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," that contains the ",(0,a.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,a.yg)("inlineCode",{parentName:"p"},"styles.js")," that contains the screen's styles and ",(0,a.yg)("inlineCode",{parentName:"p"},"functions")," folder which will contain the screen's specific functions.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Each screen can use one of the shared components that are defined in ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," folder, and you can pass the functions to those components hence there is not ",(0,a.yg)("inlineCode",{parentName:"p"},"functions")," folder under a component subfolder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," part you can find ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.jsx")," files that shows the relation between the screens that resides in the same folder. For example, the ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.jsx")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folder represent a stack navigation between ",(0,a.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-two"),". As for the ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.jsx")," file under the ",(0,a.yg)("inlineCode",{parentName:"p"},"folder")," folder is represent a drawer navigation between ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-four"),".")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"As for the ",(0,a.yg)("inlineCode",{parentName:"p"},"redux")," folder you can see there is ",(0,a.yg)("inlineCode",{parentName:"p"},"index.js")," which contain the redux store, and ",(0,a.yg)("inlineCode",{parentName:"p"},"actions")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"reducers")," folders are next to it so you can find only things that are related to redux in one single place.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options."))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/be05523b.399f257d.js b/assets/js/be05523b.399f257d.js new file mode 100644 index 0000000..6034d85 --- /dev/null +++ b/assets/js/be05523b.399f257d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9311],{5680:(e,n,a)=>{a.d(n,{xA:()=>p,yg:()=>u});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function i(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function o(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?i(Object(a),!0).forEach((function(n){r(e,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}))}return e}function s(e,n){if(null==e)return{};var a,t,r=function(e,n){if(null==e)return{};var a,t,r={},i=Object.keys(e);for(t=0;t<i.length;t++)a=i[t],n.indexOf(a)>=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)a=i[t],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=t.createContext({}),c=function(e){var n=t.useContext(l),a=n;return e&&(a="function"==typeof e?e(n):o(o({},n),e)),a},p=function(e){var n=c(e.components);return t.createElement(l.Provider,{value:n},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),g=c(a),d=r,u=g["".concat(l,".").concat(d)]||g[d]||m[d]||i;return a?t.createElement(u,o(o({ref:n},p),{},{components:a})):t.createElement(u,o({ref:n},p))}));function u(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=d;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[g]="string"==typeof e?e:r,o[1]=s;for(var c=2;c<i;c++)o[c]=a[c];return t.createElement.apply(null,o)}return t.createElement.apply(null,a)}d.displayName="MDXCreateElement"},3982:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var t=a(9668),r=(a(6540),a(5680));const i={sidebar_position:4},o="Create Navigations",s={unversionedId:"create/create-navigations",id:"version-2.3.4/create/create-navigations",title:"Create Navigations",description:"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.",source:"@site/versioned_docs/version-2.3.4/create/create-navigations.md",sourceDirName:"create",slug:"/create/create-navigations",permalink:"/react-native-help-create/docs/2.3.4/create/create-navigations",draft:!1,tags:[],version:"2.3.4",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Create Screens",permalink:"/react-native-help-create/docs/2.3.4/create/create-screens"},next:{title:"Using Templates",permalink:"/react-native-help-create/docs/2.3.4/create/using-templates"}},l={},c=[{value:"Create Navigation for specific screens",id:"create-navigation-for-specific-screens",level:2},{value:"Example",id:"example",level:3},{value:"Create Navigation for specific screens in a specific folder",id:"create-navigation-for-specific-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Navigation that depends on other navigations",id:"create-navigation-that-depends-on-other-navigations",level:2},{value:"Example",id:"example-2",level:3},{value:"Create Navigation for all screens",id:"create-navigation-for-all-screens",level:2}],p={toc:c};function g(e){let{components:n,...a}=e;return(0,r.yg)("wrapper",(0,t.A)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-navigations"},"Create Navigations"),(0,r.yg)("p",null,"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation."),(0,r.yg)("h2",{id:"create-navigation-for-specific-screens"},"Create Navigation for specific screens"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation between two or more screens, simply run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"<navigation-type>")," can be either of these types: ",(0,r.yg)("inlineCode",{parentName:"p"},"stack")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"drawer")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"tab"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The number of given screens should be 2 or more.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If one of the screens does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will try to create the ",(0,r.yg)("inlineCode",{parentName:"p"},"navigation.jsx")," file that resides next to the existed screens.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If all screens does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rhnc")," will prompt you the following:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"None of these screens exist\n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack screen-1 screen-2\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file next to ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-1")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-2")," screens as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u2502 navigation.jsx\n \u2502\n \u251c\u2500\u2500\u2500screen-1\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-2\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The content for the ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file is as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import React from "react";\n\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport { Screen1Screen } from "./screen-1";\nimport { Screen2Screen } from "./screen-2";\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nexport const Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\n')),(0,r.yg)("h2",{id:"create-navigation-for-specific-screens-in-a-specific-folder"},"Create Navigation for specific screens in a specific folder"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation file for screens that resides in a specific path under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create the ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder for the screens that resides in the same location.")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rhnc create -n drawer screen-1 screen-2 -f foo/bar\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/foo/bar/")," folder which contains the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import React from "react";\n\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport { Screen1Screen } from "./screen-1";\nimport { Screen2Screen } from "./screen-2";\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nexport const Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\n')),(0,r.yg)("h2",{id:"create-navigation-that-depends-on-other-navigations"},"Create Navigation that depends on other navigations"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation that depends on another navigation you can run the same command as this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file that resides in the same location for the given inputs.")),(0,r.yg)("h3",{id:"example-2"},"Example"),(0,r.yg)("p",null,"In this example, we have the following structure:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u251c\u2500\u2500\u2500folder\n \u2502 \u2502 navigation.jsx\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500\u2500screen-one\n \u2502 \u2502 \u2502 index.jsx\n \u2502 \u2502 \u2502 styles.js\n \u2502 \u2502 \u2502\n \u2502 \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 \u2502 index.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500screen-two\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-three\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,r.yg)("p",null,"Where we have a drawer navigation between ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-two")," under the ",(0,r.yg)("inlineCode",{parentName:"p"},"folder")," folder. And we want to create a stack navigation between ",(0,r.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-three"),". And to show that ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will continue to run for the existed screens we added in the command line ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-four")," which does not exist as the following:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack folder screen-three screen-four\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The command will output the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/screen-four/ does not exist\nsrc/screens/navigation.jsx created\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will add a new ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," that resides between ",(0,r.yg)("inlineCode",{parentName:"li"},"folder")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-three")," as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u2502 navigation.jsx\n \u2502\n \u251c\u2500\u2500\u2500folder\n \u2502 \u2502 navigation.jsx\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500\u2500screen-one\n \u2502 \u2502 \u2502 index.jsx\n \u2502 \u2502 \u2502 styles.js\n \u2502 \u2502 \u2502\n \u2502 \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 \u2502 index.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500screen-two\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-three\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the content of the new ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file will be like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import React from "react";\n\nimport { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport { Navigation as Folder } from "./folder/navigation";\nimport { ScreenThreeScreen } from "./screen-three";\n\nconst routes = [\n {\n name: "folder",\n component: Folder,\n },\n {\n name: "screen-three",\n component: ScreenThreeScreen,\n },\n];\n\nexport const Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\n')),(0,r.yg)("h2",{id:"create-navigation-for-all-screens"},"Create Navigation for all screens"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation file for multiple screens that resides at the root of the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create the navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,r.yg)("p",null,"You can also run this command to create a navigation file for multiple screens that resides in a specific path under the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This will create the navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This also work for the nested navigations.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500screens\n \u2502 navigation.jsx\n \u2502\n \u251c\u2500\u2500\u2500folder\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500\u2500screen-one\n \u2502 \u2502 \u2502 index.jsx\n \u2502 \u2502 \u2502 styles.js\n \u2502 \u2502 \u2502\n \u2502 \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 \u2502 index.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500screen-two\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u251c\u2500\u2500\u2500screen-three\n \u2502 \u2502 index.jsx\n \u2502 \u2502 styles.js\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500\u2500functions\n \u2502 index.js\n \u2502\n \u2514\u2500\u2500\u2500screen-four\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500functions\n index.js\n")),(0,r.yg)("p",null,"When you try to create a navigation like this:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack\n")),(0,r.yg)("p",null,"It will contain only ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-four")," because the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/folder")," does not contain a navigation file."),(0,r.yg)("p",null,"So if you want to create a navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one."),(0,r.yg)("p",null,"By updating it means overwriting in other words, so you can just do this:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack -o\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bff7cbd0.d6b9c834.js b/assets/js/bff7cbd0.d6b9c834.js new file mode 100644 index 0000000..7dad275 --- /dev/null +++ b/assets/js/bff7cbd0.d6b9c834.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[473],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=c(n),y=a,d=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return n?r.createElement(d,i(i({ref:t},s),{},{components:n})):r.createElement(d,i({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},2337:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(9668),a=(n(6540),n(5680));const o={sidebar_position:5},i="Using Templates",l={unversionedId:"create/using-templates",id:"create/using-templates",title:"Using Templates",description:"You can create your screens and components with your defined templates by following these steps:",source:"@site/docs/create/using-templates.md",sourceDirName:"create",slug:"/create/using-templates",permalink:"/react-native-help-create/docs/create/using-templates",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Create Navigations",permalink:"/react-native-help-create/docs/create/create-navigations"},next:{title:"Create Redux",permalink:"/react-native-help-create/docs/create/create-redux"}},p={},c=[{value:"Example",id:"example",level:3}],s={toc:c};function m(e){let{components:t,...n}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"using-templates"},"Using Templates"),(0,a.yg)("p",null,"You can create your screens and components with your defined templates by following these steps:"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"First thing to do is to create a ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder at the root of your react project.")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"Inside the ",(0,a.yg)("inlineCode",{parentName:"p"},".template")," folder you can add your template, for example ",(0,a.yg)("inlineCode",{parentName:"p"},"componentWithUseEffect.tsx")," (the file extension doesn't matter so it could be ",(0,a.yg)("inlineCode",{parentName:"p"},"*.jsx"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"*.js")," or ",(0,a.yg)("inlineCode",{parentName:"p"},"*.tsx"),"):"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import React, { useEffect } from "react";\nimport { View, Text } from "react-native";\n\nexport default function __COMPONENT__() {\n useEffect(() => {}, []);\n\n return (\n <View>\n <Text>Hello, World!</Text>\n </View>\n );\n}\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"There is a restriction in naming these templates which is you should not put dots (",(0,a.yg)("inlineCode",{parentName:"p"},"."),") between the name, like this (",(0,a.yg)("inlineCode",{parentName:"p"},"component.WithUseEffect.jsx"),"). It should only contain one dot that makes the extension file like we're doing above.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You should type ",(0,a.yg)("inlineCode",{parentName:"p"},"__COMPONENT__")," in the template file and it will be replaced with the component name you want to create."))),(0,a.yg)("ol",{start:3},(0,a.yg)("li",{parentName:"ol"},"After creating your template you can use them to create components or screens as the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name> -t <template-name>\n")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name> -t <template-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And of course, you can create multiple components or screens with the same template.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("p",null,"As for our example it can be used like this for the above template:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp -t componentWithUseEffect\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will create ",(0,a.yg)("inlineCode",{parentName:"p"},"comp")," component under ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder and the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for this component will contain the same code written in the template.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the screen case, the ",(0,a.yg)("inlineCode",{parentName:"p"},"index.jsx")," for that screen will contain the code written in the template."))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c0debe47.6f8dc215.js b/assets/js/c0debe47.6f8dc215.js new file mode 100644 index 0000000..6ba1451 --- /dev/null +++ b/assets/js/c0debe47.6f8dc215.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1047],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(n),f=o,g=s["".concat(c,".").concat(f)]||s[f]||d[f]||i;return n?r.createElement(g,a(a({ref:t},u),{},{components:n})):r.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var p=2;p<i;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},498:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=n(9668),o=(n(6540),n(5680));const i={sidebar_position:6},a="Delete Configuration",l={unversionedId:"delete/delete-configuration",id:"version-2.6.0/delete/delete-configuration",title:"Delete Configuration",description:"To delete a configuration file run:",source:"@site/versioned_docs/version-2.6.0/delete/delete-configuration.md",sourceDirName:"delete",slug:"/delete/delete-configuration",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-configuration",draft:!1,tags:[],version:"2.6.0",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Delete Redux",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-redux"},next:{title:"Combine",permalink:"/react-native-help-create/docs/2.6.0/category/combine"}},c={},p=[],u={toc:p};function s(e){let{components:t,...n}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-configuration"},"Delete Configuration"),(0,o.yg)("p",null,"To delete a configuration file run:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file at the root of the project.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc.config.json does not exist\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c11e5137.2cc7e9b1.js b/assets/js/c11e5137.2cc7e9b1.js new file mode 100644 index 0000000..45a13bb --- /dev/null +++ b/assets/js/c11e5137.2cc7e9b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7357],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var l=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n&&(l=l.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,l)}return t}function r(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,l,a=function(e,n){if(null==e)return{};var t,l,a={},o=Object.keys(e);for(l=0;l<o.length;l++)t=o[l],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l<o.length;l++)t=o[l],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=l.createContext({}),m=function(e){var n=l.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},s=function(e){var n=m(e.components);return l.createElement(p.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return l.createElement(l.Fragment,{},n)}},d=l.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=m(t),d=a,g=c["".concat(p,".").concat(d)]||c[d]||u[d]||o;return t?l.createElement(g,r(r({ref:n},s),{},{components:t})):l.createElement(g,r({ref:n},s))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,r=new Array(o);r[0]=d;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[c]="string"==typeof e?e:a,r[1]=i;for(var m=2;m<o;m++)r[m]=t[m];return l.createElement.apply(null,r)}return l.createElement.apply(null,t)}d.displayName="MDXCreateElement"},2750:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>r,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var l=t(9668),a=(t(6540),t(5680));const o={sidebar_position:2},r="Delete Components",i={unversionedId:"delete/delete-components",id:"delete/delete-components",title:"Delete Components",description:"Delete a Component",source:"@site/docs/delete/delete-components.md",sourceDirName:"delete",slug:"/delete/delete-components",permalink:"/react-native-help-create/docs/delete/delete-components",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/delete/intro"},next:{title:"Delete Screens",permalink:"/react-native-help-create/docs/delete/delete-screens"}},p={},m=[{value:"Delete a Component",id:"delete-a-component",level:2},{value:"Delete multiple Components",id:"delete-multiple-components",level:2},{value:"Delete a Components in a Specific Folder",id:"delete-a-components-in-a-specific-folder",level:2},{value:"Delete Atoms",id:"delete-atoms",level:2},{value:"Delete Molecules",id:"delete-molecules",level:2},{value:"Delete Organisms",id:"delete-organisms",level:2}],s={toc:m};function c(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,l.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"delete-components"},"Delete Components"),(0,a.yg)("h2",{id:"delete-a-component"},"Delete a Component"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete a component simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete the component with the given name ",(0,a.yg)("inlineCode",{parentName:"p"},"<component-name>")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If the component does not exist, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/<component-name>/ does not exist\n")),(0,a.yg)("h2",{id:"delete-multiple-components"},"Delete multiple Components"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete multiple components run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,a.yg)("h2",{id:"delete-a-components-in-a-specific-folder"},"Delete a Components in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete one or multiple components that resides in a specific path under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, you can run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")),(0,a.yg)("h2",{id:"delete-atoms"},"Delete Atoms"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <atom-name> --atom\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete the atom with the given name ",(0,a.yg)("inlineCode",{parentName:"p"},"<atom-name>")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/atoms/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If the atom does not exist, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/atoms/<atom-name>/ does not exist\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete multiple atoms run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <atom-name-1> <atom-name-2> ... --atom\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete only the existed atoms with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/atoms/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"To delete one or multiple atoms that resides in a specific path under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, you can run:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <atom-name-1> <atom-name-2> ... -f <folder-path> --atom\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete only the existed atoms with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/atoms/")," folder.")),(0,a.yg)("h2",{id:"delete-molecules"},"Delete Molecules"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete a molecule simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <molecule-name> --molecule\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete the molecule with the given name ",(0,a.yg)("inlineCode",{parentName:"p"},"<molecule-name>")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/molecules/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If the molecule does not exist, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/molecules/<molecule-name>/ does not exist\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete multiple molecules run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <molecule-name-1> <molecule-name-2> ... --molecule\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete only the existed molecules with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/molecules/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"To delete one or multiple molecules that resides in a specific path under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, you can run:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <molecule-name-1> <molecule-name-2> ... -f <folder-path> --molecule\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete only the existed molecules with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/molecules/")," folder.")),(0,a.yg)("h2",{id:"delete-organisms"},"Delete Organisms"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete an organism simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <organism-name> --organism\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete the organism with the given name ",(0,a.yg)("inlineCode",{parentName:"p"},"<organism-name>")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/organisms/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"If the organism does not exist, ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/organisms/<organism-name>/ does not exist\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To delete multiple organisms run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <organism-name-1> <organism-name-2> ... --organism\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This will delete only the existed organisms with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/organisms/")," folder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"To delete one or multiple organisms that resides in a specific path under the ",(0,a.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, you can run:"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <organism-name-1> <organism-name-2> ... -f <folder-path> --organism\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will delete only the existed organisms with the given inputs that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/organisms/")," folder.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c14765b5.8bf2063f.js b/assets/js/c14765b5.8bf2063f.js new file mode 100644 index 0000000..80b7a79 --- /dev/null +++ b/assets/js/c14765b5.8bf2063f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[7248],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),c=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(p.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(t),u=o,y=m["".concat(p,".").concat(u)]||m[u]||d[u]||l;return t?r.createElement(y,a(a({ref:n},s),{},{components:t})):r.createElement(y,a({ref:n},s))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var l=t.length,a=new Array(l);a[0]=u;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[m]="string"==typeof e?e:o,a[1]=i;for(var c=2;c<l;c++)a[c]=t[c];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},8726:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=t(9668),o=(t(6540),t(5680));const l={sidebar_position:2},a="Delete Components",i={unversionedId:"delete/delete-components",id:"version-2.6.0/delete/delete-components",title:"Delete Components",description:"Delete a Component",source:"@site/versioned_docs/version-2.6.0/delete/delete-components.md",sourceDirName:"delete",slug:"/delete/delete-components",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-components",draft:!1,tags:[],version:"2.6.0",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.6.0/delete/intro"},next:{title:"Delete Screens",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-screens"}},p={},c=[{value:"Delete a Component",id:"delete-a-component",level:2},{value:"Delete multiple Components",id:"delete-multiple-components",level:2},{value:"Delete a Components in a Specific Folder",id:"delete-a-components-in-a-specific-folder",level:2}],s={toc:c};function m(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-components"},"Delete Components"),(0,o.yg)("h2",{id:"delete-a-component"},"Delete a Component"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete a component simply run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the component with the given name ",(0,o.yg)("inlineCode",{parentName:"p"},"<component-name>")," under the ",(0,o.yg)("inlineCode",{parentName:"p"},"src/components/")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If the component does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/<component-name>/ does not exist\n")),(0,o.yg)("h2",{id:"delete-multiple-components"},"Delete multiple Components"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete multiple components run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ...\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,o.yg)("h2",{id:"delete-a-components-in-a-specific-folder"},"Delete a Components in a Specific Folder"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete one or multiple components that resides in a specific path under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, you can run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c298cc3c.e6c6fe6c.js b/assets/js/c298cc3c.e6c6fe6c.js new file mode 100644 index 0000000..be59163 --- /dev/null +++ b/assets/js/c298cc3c.e6c6fe6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[759],{5680:(e,n,r)=>{r.d(n,{xA:()=>p,yg:()=>f});var t=r(6540);function o(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function a(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function c(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?a(Object(r),!0).forEach((function(n){o(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function s(e,n){if(null==e)return{};var r,t,o=function(e,n){if(null==e)return{};var r,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)r=a[t],n.indexOf(r)>=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t<a.length;t++)r=a[t],n.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=t.createContext({}),l=function(e){var n=t.useContext(i),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=l(e.components);return t.createElement(i.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=o,f=m["".concat(i,".").concat(d)]||m[d]||u[d]||a;return r?t.createElement(f,c(c({ref:n},p),{},{components:r})):t.createElement(f,c({ref:n},p))}));function f(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var s={};for(var i in n)hasOwnProperty.call(n,i)&&(s[i]=n[i]);s.originalType=e,s[m]="string"==typeof e?e:o,c[1]=s;for(var l=2;l<a;l++)c[l]=r[l];return t.createElement.apply(null,c)}return t.createElement.apply(null,r)}d.displayName="MDXCreateElement"},9249:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var t=r(9668),o=(r(6540),r(5680));const a={sidebar_position:3},c="Combine Screens",s={unversionedId:"combine/combine-screens",id:"combine/combine-screens",title:"Combine Screens",description:"To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:",source:"@site/docs/combine/combine-screens.md",sourceDirName:"combine",slug:"/combine/combine-screens",permalink:"/react-native-help-create/docs/combine/combine-screens",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Combine Components",permalink:"/react-native-help-create/docs/combine/combine-components"},next:{title:"Notes",permalink:"/react-native-help-create/docs/notes"}},i={},l=[{value:"Example",id:"example",level:2}],p={toc:l};function m(e){let{components:n,...r}=e;return(0,o.yg)("wrapper",(0,t.A)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"combine-screens"},"Combine Screens"),(0,o.yg)("p",null,"To combine screens that resides in ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder to a specific path that resides under that same folder you can run:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will move the existed screens for the given inputs to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If somehome one of the given screens does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these screens exist\n")),(0,o.yg)("h2",{id:"example"},"Example"),(0,o.yg)("p",null,"In this example, we have ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-1")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"screen-2")," that exists under ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, and we want to move them to ",(0,o.yg)("inlineCode",{parentName:"p"},"src/screens/foo/bar/")," folder:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -s screen-1 screen-2 -f foo/bar\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"screen-1 screen moved to src/screens/foo/bar/\nscreen-2 screen moved to src/screens/foo/bar/\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c3201987.c554db24.js b/assets/js/c3201987.c554db24.js new file mode 100644 index 0000000..8979b77 --- /dev/null +++ b/assets/js/c3201987.c554db24.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6758],{4712:e=>{e.exports=JSON.parse('{"permalink":"/react-native-help-create/blog/tags/facebook","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/c48ecffd.7ea2c5d9.js b/assets/js/c48ecffd.7ea2c5d9.js new file mode 100644 index 0000000..fe072e1 --- /dev/null +++ b/assets/js/c48ecffd.7ea2c5d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3142],{8532:e=>{e.exports=JSON.parse('{"permalink":"/react-native-help-create/blog/tags/hola","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.4b054d37.js b/assets/js/ccc49370.4b054d37.js new file mode 100644 index 0000000..5c010eb --- /dev/null +++ b/assets/js/ccc49370.4b054d37.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3249],{4029:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});var a=n(6540),l=n(53),r=n(9024),o=n(7559),i=n(7131),c=n(6669),s=n(8258),m=n(9668),d=n(1312),u=n(9022);function g(e){const{nextItem:t,prevItem:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,d.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n&&a.createElement(u.A,(0,m.A)({},n,{subLabel:a.createElement(d.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")})),t&&a.createElement(u.A,(0,m.A)({},t,{subLabel:a.createElement(d.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post"),isNext:!0})))}function f(){const{assets:e,metadata:t}=(0,i.e)(),{title:n,description:l,date:o,tags:c,authors:s,frontMatter:m}=t,{keywords:d}=m,u=e.image??m.image;return a.createElement(r.be,{title:n,description:l,keywords:d,image:u},a.createElement("meta",{property:"og:type",content:"article"}),a.createElement("meta",{property:"article:published_time",content:o}),s.some((e=>e.url))&&a.createElement("meta",{property:"article:author",content:s.map((e=>e.url)).filter(Boolean).join(",")}),c.length>0&&a.createElement("meta",{property:"article:tag",content:c.map((e=>e.label)).join(",")}))}var v=n(7763);function p(e){let{sidebar:t,children:n}=e;const{metadata:l,toc:r}=(0,i.e)(),{nextItem:o,prevItem:m,frontMatter:d}=l,{hide_table_of_contents:u,toc_min_heading_level:f,toc_max_heading_level:p}=d;return a.createElement(c.A,{sidebar:t,toc:!u&&r.length>0?a.createElement(v.A,{toc:r,minHeadingLevel:f,maxHeadingLevel:p}):void 0},a.createElement(s.A,null,n),(o||m)&&a.createElement(g,{nextItem:o,prevItem:m}))}function h(e){const t=e.content;return a.createElement(i.i,{content:e.content,isBlogPostPage:!0},a.createElement(r.e3,{className:(0,l.A)(o.G.wrapper.blogPages,o.G.page.blogPostPage)},a.createElement(f,null),a.createElement(p,{sidebar:e.sidebar},a.createElement(t,null))))}},7763:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(9668),l=n(6540),r=n(53),o=n(5195);const i="tableOfContents_bqdL";function c(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.A)(i,"thin-scrollbar",t)},l.createElement(o.A,(0,a.A)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},5195:(e,t,n)=>{n.d(t,{A:()=>f});var a=n(9668),l=n(6540),r=n(6342);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function c(e){const t=e.getBoundingClientRect();return t.top===t.bottom?c(e.parentNode):t}function s(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>c(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(c(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function m(){const e=(0,l.useRef)(0),{navbar:{hideOnScroll:t}}=(0,r.p)();return(0,l.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,l.useRef)(void 0),n=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=s(i,{anchorTopOffset:n.current}),m=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const g=l.memo(u);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...f}=e;const v=(0,r.p)(),p=m??v.tableOfContents.minHeadingLevel,h=u??v.tableOfContents.maxHeadingLevel,b=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:h});return d((0,l.useMemo)((()=>{if(c&&s)return{linkClassName:c,linkActiveClassName:s,minHeadingLevel:p,maxHeadingLevel:h}}),[c,s,p,h])),l.createElement(g,(0,a.A)({toc:b,className:n,linkClassName:c},f))}}}]); \ No newline at end of file diff --git a/assets/js/cf6f483b.02c832b3.js b/assets/js/cf6f483b.02c832b3.js new file mode 100644 index 0000000..c462bbd --- /dev/null +++ b/assets/js/cf6f483b.02c832b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9023],{5680:(e,n,t)=>{t.d(n,{xA:()=>m,yg:()=>f});var o=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,o,r=function(e,n){if(null==e)return{};var t,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)t=a[o],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)t=a[o],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=o.createContext({}),l=function(e){var n=o.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},m=function(e){var n=l(e.components);return o.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},d=o.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=r,f=s["".concat(p,".").concat(d)]||s[d]||u[d]||a;return t?o.createElement(f,c(c({ref:n},m),{},{components:t})):o.createElement(f,c({ref:n},m))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,c=new Array(a);c[0]=d;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[s]="string"==typeof e?e:r,c[1]=i;for(var l=2;l<a;l++)c[l]=t[l];return o.createElement.apply(null,c)}return o.createElement.apply(null,t)}d.displayName="MDXCreateElement"},2916:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=t(9668),r=(t(6540),t(5680));const a={sidebar_position:2},c="Combine Components",i={unversionedId:"combine/combine-components",id:"version-2.5.1/combine/combine-components",title:"Combine Components",description:"To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:",source:"@site/versioned_docs/version-2.5.1/combine/combine-components.md",sourceDirName:"combine",slug:"/combine/combine-components",permalink:"/react-native-help-create/docs/2.5.1/combine/combine-components",draft:!1,tags:[],version:"2.5.1",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.5.1/combine/intro"},next:{title:"Combine Screens",permalink:"/react-native-help-create/docs/2.5.1/combine/combine-screens"}},p={},l=[{value:"Example",id:"example",level:2}],m={toc:l};function s(e){let{components:n,...t}=e;return(0,r.yg)("wrapper",(0,o.A)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"combine-components"},"Combine Components"),(0,r.yg)("p",null,"To combine components that resides in ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/")," folder to a specific path that resides under that same folder you can run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This will move the existed components for the given inputs to ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/<folder-path>/")," folder.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If somehome one of the given components does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"Check if all of these components exist\n")),(0,r.yg)("h2",{id:"example"},"Example"),(0,r.yg)("p",null,"In this example, we have ",(0,r.yg)("inlineCode",{parentName:"p"},"comp-1")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"comp-2")," that exists under ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/")," folder, and we want to move them to ",(0,r.yg)("inlineCode",{parentName:"p"},"src/components/foo/bar/")," folder:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc combine -c comp-1 comp-2 -f foo/bar\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The command will outputs the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"comp-1 component moved to src/components/foo/bar/\ncomp-2 component moved to src/components/foo/bar/\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cfff384b.e70b9e66.js b/assets/js/cfff384b.e70b9e66.js new file mode 100644 index 0000000..2ff65a1 --- /dev/null +++ b/assets/js/cfff384b.e70b9e66.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3735],{2405:e=>{e.exports=JSON.parse('{"permalink":"/react-native-help-create/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/d70a8b9c.b4d0bdfe.js b/assets/js/d70a8b9c.b4d0bdfe.js new file mode 100644 index 0000000..b6f3353 --- /dev/null +++ b/assets/js/d70a8b9c.b4d0bdfe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[399],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),g=a,d=s["".concat(c,".").concat(g)]||s[g]||y[g]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=g;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}g.displayName="MDXCreateElement"},9358:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(9668),a=(r(6540),r(5680));const o={sidebar_position:2},i="Getting Started",l={unversionedId:"getting-started",id:"version-2.6.0/getting-started",title:"Getting Started",description:"- To install it globally in your system run:",source:"@site/versioned_docs/version-2.6.0/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/react-native-help-create/docs/2.6.0/getting-started",draft:!1,tags:[],version:"2.6.0",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Summary",permalink:"/react-native-help-create/docs/2.6.0/intro"},next:{title:"Create",permalink:"/react-native-help-create/docs/2.6.0/category/create"}},c={},p=[],u={toc:p};function s(e){let{components:t,...r}=e;return(0,a.yg)("wrapper",(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"getting-started"},"Getting Started"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To install it globally in your system run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"npm i react-native-help-create -g\n")),(0,a.yg)("p",null,"Or"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"yarn global add react-native-help-create\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To install it as a dev dependency in your react native project run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"npm i react-native-help-create --save-dev\n")),(0,a.yg)("p",null,"Or"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"yarn add react-native-help-create --dev\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"If you want to use it without installing it (using npm cache) run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"npx react-native-help-create --help\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d91b870f.b42682be.js b/assets/js/d91b870f.b42682be.js new file mode 100644 index 0000000..9d62f1e --- /dev/null +++ b/assets/js/d91b870f.b42682be.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3150],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(t),y=a,m=d["".concat(c,".").concat(y)]||d[y]||u[y]||o;return t?r.createElement(m,i(i({ref:n},p),{},{components:t})):r.createElement(m,i({ref:n},p))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=t[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},9124:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:1},i="Summary",s={unversionedId:"intro",id:"version-2.6.0/intro",title:"Summary",description:"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.",source:"@site/versioned_docs/version-2.6.0/intro.md",sourceDirName:".",slug:"/intro",permalink:"/react-native-help-create/docs/2.6.0/intro",draft:!1,tags:[],version:"2.6.0",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Getting Started",permalink:"/react-native-help-create/docs/2.6.0/getting-started"}},c={},l=[],p={toc:l};function d(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"summary"},"Summary"),(0,a.yg)("p",null,"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code."),(0,a.yg)("p",null,"The following project structure is used by this command:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"src/\n\u251c\u2500\u2500 components\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-one\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-two\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 folder\n\u2502\xa0\xa0 \u2514\u2500\u2500 comp-three\n\u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u251c\u2500\u2500 redux\n\u2502\xa0\xa0 \u251c\u2500\u2500 actions\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 reducers\n\u2502\xa0\xa0 \u251c\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-three\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u251c\u2500\u2500 navigation.tsx\n \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-two\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"As you can see above, the ",(0,a.yg)("inlineCode",{parentName:"p"},"src")," folder is the folder that resides at the root of your React Native project and under this folder, you will find the ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," folder which contains all the shared components that are used through out the screen. The ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folder contains the app's screens that can uses some of the shared components above it.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In each component you will find ",(0,a.yg)("inlineCode",{parentName:"p"},"index.tsx")," that contains the components ",(0,a.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,a.yg)("inlineCode",{parentName:"p"},"styles.ts")," that contains the styles for that component.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In each screen you will find ",(0,a.yg)("inlineCode",{parentName:"p"},"index.tsx")," that contains the ",(0,a.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,a.yg)("inlineCode",{parentName:"p"},"styles.ts")," that contains the screen's styles and ",(0,a.yg)("inlineCode",{parentName:"p"},"functions")," folder which will contain the screen's specific functions.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"Each screen can use one of the shared components that are defined in ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," folder, and you can pass the functions to those components hence there is not ",(0,a.yg)("inlineCode",{parentName:"p"},"functions")," folder under a component subfolder.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"For the ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," part you can find ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," files that shows the relation between the screens that resides in the same folder. For example, the ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," under the ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folder represent a stack navigation between ",(0,a.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-two"),". As for the ",(0,a.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," file under the ",(0,a.yg)("inlineCode",{parentName:"p"},"folder")," folder is represent a drawer navigation between ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screen-four"),".")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"In both the ",(0,a.yg)("inlineCode",{parentName:"p"},"components")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"screens")," folders, you can find ",(0,a.yg)("inlineCode",{parentName:"p"},"__tests__")," folder that contains the tests for the component or screen.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"As for the ",(0,a.yg)("inlineCode",{parentName:"p"},"redux")," folder you can see there is ",(0,a.yg)("inlineCode",{parentName:"p"},"index.ts")," which contain the redux store, and ",(0,a.yg)("inlineCode",{parentName:"p"},"actions")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"reducers")," folders are next to it so you can find only things that are related to redux in one single place.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"You can override the usage of the default behavior of this command line by modifying the ",(0,a.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file (more details can be found ",(0,a.yg)("a",{parentName:"p",href:"./create/using-configuration"},"here"),")."))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d9d437a8.6acf5129.js b/assets/js/d9d437a8.6acf5129.js new file mode 100644 index 0000000..05f156e --- /dev/null +++ b/assets/js/d9d437a8.6acf5129.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4883],{6542:e=>{e.exports=JSON.parse('{"title":"Delete","description":"How to delete files in the project?","slug":"/category/delete","permalink":"/react-native-help-create/docs/2.5.1/category/delete","navigation":{"previous":{"title":"Using Configuration","permalink":"/react-native-help-create/docs/2.5.1/create/using-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.5.1/delete/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d9e3fcc8.82139ee4.js b/assets/js/d9e3fcc8.82139ee4.js new file mode 100644 index 0000000..5b03521 --- /dev/null +++ b/assets/js/d9e3fcc8.82139ee4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9654],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p<a;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},1656:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(9668),o=(r(6540),r(5680));const a={sidebar_position:1},i="Intro",c={unversionedId:"delete/intro",id:"version-2.5.1/delete/intro",title:"Intro",description:"With rnhc you can delete what you already created with create commands.",source:"@site/versioned_docs/version-2.5.1/delete/intro.md",sourceDirName:"delete",slug:"/delete/intro",permalink:"/react-native-help-create/docs/2.5.1/delete/intro",draft:!1,tags:[],version:"2.5.1",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Delete",permalink:"/react-native-help-create/docs/2.5.1/category/delete"},next:{title:"Delete Components",permalink:"/react-native-help-create/docs/2.5.1/delete/delete-components"}},l={},p=[],s={toc:p};function d(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can delete what you already created with ",(0,o.yg)("a",{parentName:"p",href:"/docs/category/create"},(0,o.yg)("inlineCode",{parentName:"a"},"create")," commands"),"."),(0,o.yg)("p",null,"The following points shows how to deal with deleting your files with the ",(0,o.yg)("inlineCode",{parentName:"p"},"delete")," command."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d9f32620.bba7d103.js b/assets/js/d9f32620.bba7d103.js new file mode 100644 index 0000000..d38da9c --- /dev/null +++ b/assets/js/d9f32620.bba7d103.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5557],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>b});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,i=u(e,["components","mdxType","originalType","parentName"]),p=c(r),m=o,b=p["".concat(s,".").concat(m)]||p[m]||g[m]||a;return r?n.createElement(b,l(l({ref:t},i),{},{components:r})):n.createElement(b,l({ref:t},i))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[p]="string"==typeof e?e:o,l[1]=u;for(var c=2;c<a;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},6460:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(9668),o=(r(6540),r(5680));const a={slug:"welcome",title:"Welcome",authors:["slorber","yangshun"],tags:["facebook","hello","docusaurus"]},l=void 0,u={permalink:"/react-native-help-create/blog/welcome",source:"@site/blog/2021-08-26-welcome/index.md",title:"Welcome",description:"Docusaurus blogging features are powered by the blog plugin.",date:"2021-08-26T00:00:00.000Z",formattedDate:"August 26, 2021",tags:[{label:"facebook",permalink:"/react-native-help-create/blog/tags/facebook"},{label:"hello",permalink:"/react-native-help-create/blog/tags/hello"},{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:.405,hasTruncateMarker:!1,authors:[{name:"S\xe9bastien Lorber",title:"Docusaurus maintainer",url:"https://sebastienlorber.com",imageURL:"https://github.com/slorber.png",key:"slorber"},{name:"Yangshun Tay",title:"Front End Engineer @ Facebook",url:"https://github.com/yangshun",imageURL:"https://github.com/yangshun.png",key:"yangshun"}],frontMatter:{slug:"welcome",title:"Welcome",authors:["slorber","yangshun"],tags:["facebook","hello","docusaurus"]},nextItem:{title:"MDX Blog Post",permalink:"/react-native-help-create/blog/mdx-blog-post"}},s={authorsImageUrls:[void 0,void 0]},c=[],i={toc:c};function p(e){let{components:t,...a}=e;return(0,o.yg)("wrapper",(0,n.A)({},i,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://docusaurus.io/docs/blog"},"Docusaurus blogging features")," are powered by the ",(0,o.yg)("a",{parentName:"p",href:"https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog"},"blog plugin"),"."),(0,o.yg)("p",null,"Simply add Markdown files (or folders) to the ",(0,o.yg)("inlineCode",{parentName:"p"},"blog")," directory."),(0,o.yg)("p",null,"Regular blog authors can be added to ",(0,o.yg)("inlineCode",{parentName:"p"},"authors.yml"),"."),(0,o.yg)("p",null,"The blog post date can be extracted from filenames, such as:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"2019-05-30-welcome.md")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"2019-05-30-welcome/index.md"))),(0,o.yg)("p",null,"A blog post folder can be convenient to co-locate blog post images:"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"Docusaurus Plushie",src:r(4393).A,width:"1500",height:"500"})),(0,o.yg)("p",null,"The blog supports tags as well!"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"And if you don't want a blog"),": just delete this directory, and use ",(0,o.yg)("inlineCode",{parentName:"p"},"blog: false")," in your Docusaurus config."))}p.isMDXComponent=!0},4393:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/docusaurus-plushie-banner-a60f7593abca1e3eef26a9afa244e4fb.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/db5af1ce.6f2a96d7.js b/assets/js/db5af1ce.6f2a96d7.js new file mode 100644 index 0000000..872272e --- /dev/null +++ b/assets/js/db5af1ce.6f2a96d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[1504],{5680:(e,n,t)=>{t.d(n,{xA:()=>i,yg:()=>d});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},i=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),m=s(t),y=a,d=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return t?r.createElement(d,l(l({ref:n},i),{},{components:t})):r.createElement(d,l({ref:n},i))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[m]="string"==typeof e?e:a,l[1]=c;for(var s=2;s<o;s++)l[s]=t[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},4270:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:2},l="Create Components",c={unversionedId:"create/create-components",id:"version-2.5.1/create/create-components",title:"Create Components",description:"Create a Component",source:"@site/versioned_docs/version-2.5.1/create/create-components.md",sourceDirName:"create",slug:"/create/create-components",permalink:"/react-native-help-create/docs/2.5.1/create/create-components",draft:!1,tags:[],version:"2.5.1",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.5.1/create/intro"},next:{title:"Create Screens",permalink:"/react-native-help-create/docs/2.5.1/create/create-screens"}},p={},s=[{value:"Create a Component",id:"create-a-component",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Components",id:"create-multiple-components",level:2},{value:"Exmaple",id:"exmaple",level:3},{value:"Create a Components in a Specific Folder",id:"create-a-components-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3}],i={toc:s};function m(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},i,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-components"},"Create Components"),(0,a.yg)("h2",{id:"create-a-component"},"Create a Component"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your components simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a component named after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"<component-name>")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<component-name>/")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestComponent\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/test-component/"),":")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-component\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," represents the React FC component that contains the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import { Text, View } from "react-native";\nimport { TestComponentStyles } from "./styles";\n\nconst TestComponent = () => {\n return (\n <View>\n <Text>TestComponent component created!</Text>\n </View>\n );\n};\nexport default TestComponent;\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And for the ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.js")," you will see:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},'import { StyleSheet } from "react-native";\n\nexport const TestComponentStyles = StyleSheet.create({});\n')),(0,a.yg)("h2",{id:"create-multiple-components"},"Create multiple Components"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple components simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple components for the given names under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,a.yg)("h3",{id:"exmaple"},"Exmaple"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u2502 \u251c\u2500\u2500 index.jsx\n \u2502 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,a.yg)("h2",{id:"create-a-components-in-a-specific-folder"},"Create a Components in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or mutliple components in a specified path that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your components under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u2502 \u251c\u2500\u2500 index.jsx\n \u2502 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e273c56f.b5d4c5ac.js b/assets/js/e273c56f.b5d4c5ac.js new file mode 100644 index 0000000..5e540bc --- /dev/null +++ b/assets/js/e273c56f.b5d4c5ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9328],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>f});var o=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),u=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(r),g=n,f=p["".concat(l,".").concat(g)]||p[g]||m[g]||a;return r?o.createElement(f,i(i({ref:t},c),{},{components:r})):o.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var u=2;u<a;u++)i[u]=r[u];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}g.displayName="MDXCreateElement"},9317:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var o=r(9668),n=(r(6540),r(5680));const a={slug:"first-blog-post",title:"First Blog Post",authors:{name:"Gao Wei",title:"Docusaurus Core Team",url:"https://github.com/wgao19",image_url:"https://github.com/wgao19.png"},tags:["hola","docusaurus"]},i=void 0,s={permalink:"/react-native-help-create/blog/first-blog-post",source:"@site/blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet",date:"2019-05-28T00:00:00.000Z",formattedDate:"May 28, 2019",tags:[{label:"hola",permalink:"/react-native-help-create/blog/tags/hola"},{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:.12,hasTruncateMarker:!1,authors:[{name:"Gao Wei",title:"Docusaurus Core Team",url:"https://github.com/wgao19",image_url:"https://github.com/wgao19.png",imageURL:"https://github.com/wgao19.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"Gao Wei",title:"Docusaurus Core Team",url:"https://github.com/wgao19",image_url:"https://github.com/wgao19.png",imageURL:"https://github.com/wgao19.png"},tags:["hola","docusaurus"]},prevItem:{title:"Long Blog Post",permalink:"/react-native-help-create/blog/long-blog-post"}},l={authorsImageUrls:[void 0]},u=[],c={toc:u};function p(e){let{components:t,...r}=e;return(0,n.yg)("wrapper",(0,o.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("p",null,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e680db30.a6011358.js b/assets/js/e680db30.a6011358.js new file mode 100644 index 0000000..7614051 --- /dev/null +++ b/assets/js/e680db30.a6011358.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2505],{1110:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"2.6.0","label":"2.6.0","banner":"unmaintained","badge":true,"noIndex":false,"className":"docs-version-2.6.0","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Summary","href":"/react-native-help-create/docs/2.6.0/intro","docId":"intro"},{"type":"link","label":"Getting Started","href":"/react-native-help-create/docs/2.6.0/getting-started","docId":"getting-started"},{"type":"category","label":"Create","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.6.0/create/intro","docId":"create/intro"},{"type":"link","label":"Create Components","href":"/react-native-help-create/docs/2.6.0/create/create-components","docId":"create/create-components"},{"type":"link","label":"Create Screens","href":"/react-native-help-create/docs/2.6.0/create/create-screens","docId":"create/create-screens"},{"type":"link","label":"Create Navigations","href":"/react-native-help-create/docs/2.6.0/create/create-navigations","docId":"create/create-navigations"},{"type":"link","label":"Using Templates","href":"/react-native-help-create/docs/2.6.0/create/using-templates","docId":"create/using-templates"},{"type":"link","label":"Create Redux","href":"/react-native-help-create/docs/2.6.0/create/create-redux","docId":"create/create-redux"},{"type":"link","label":"Using Configuration","href":"/react-native-help-create/docs/2.6.0/create/using-configuration","docId":"create/using-configuration"}],"href":"/react-native-help-create/docs/2.6.0/category/create"},{"type":"category","label":"Delete","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.6.0/delete/intro","docId":"delete/intro"},{"type":"link","label":"Delete Components","href":"/react-native-help-create/docs/2.6.0/delete/delete-components","docId":"delete/delete-components"},{"type":"link","label":"Delete Screens","href":"/react-native-help-create/docs/2.6.0/delete/delete-screens","docId":"delete/delete-screens"},{"type":"link","label":"Delete Navigations","href":"/react-native-help-create/docs/2.6.0/delete/delete-navigations","docId":"delete/delete-navigations"},{"type":"link","label":"Delete Redux","href":"/react-native-help-create/docs/2.6.0/delete/delete-redux","docId":"delete/delete-redux"},{"type":"link","label":"Delete Configuration","href":"/react-native-help-create/docs/2.6.0/delete/delete-configuration","docId":"delete/delete-configuration"}],"href":"/react-native-help-create/docs/2.6.0/category/delete"},{"type":"category","label":"Combine","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/react-native-help-create/docs/2.6.0/combine/intro","docId":"combine/intro"},{"type":"link","label":"Combine Components","href":"/react-native-help-create/docs/2.6.0/combine/combine-components","docId":"combine/combine-components"},{"type":"link","label":"Combine Screens","href":"/react-native-help-create/docs/2.6.0/combine/combine-screens","docId":"combine/combine-screens"}],"href":"/react-native-help-create/docs/2.6.0/category/combine"},{"type":"link","label":"Notes","href":"/react-native-help-create/docs/2.6.0/notes","docId":"notes"}]},"docs":{"combine/combine-components":{"id":"combine/combine-components","title":"Combine Components","description":"To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/combine-screens":{"id":"combine/combine-screens","title":"Combine Screens","description":"To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:","sidebar":"tutorialSidebar"},"combine/intro":{"id":"combine/intro","title":"Intro","description":"With rnhc you can combine your components or screens in a specific path.","sidebar":"tutorialSidebar"},"create/create-components":{"id":"create/create-components","title":"Create Components","description":"Create a Component","sidebar":"tutorialSidebar"},"create/create-navigations":{"id":"create/create-navigations","title":"Create Navigations","description":"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.","sidebar":"tutorialSidebar"},"create/create-redux":{"id":"create/create-redux","title":"Create Redux","description":"To create a redux implementation run:","sidebar":"tutorialSidebar"},"create/create-screens":{"id":"create/create-screens","title":"Create Screens","description":"Create a Screen","sidebar":"tutorialSidebar"},"create/intro":{"id":"create/intro","title":"Intro","description":"rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.","sidebar":"tutorialSidebar"},"create/using-configuration":{"id":"create/using-configuration","title":"Using Configuration","description":"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.","sidebar":"tutorialSidebar"},"create/using-templates":{"id":"create/using-templates","title":"Using Templates","description":"You can create your screens and components with your defined templates by following these steps:","sidebar":"tutorialSidebar"},"delete/delete-components":{"id":"delete/delete-components","title":"Delete Components","description":"Delete a Component","sidebar":"tutorialSidebar"},"delete/delete-configuration":{"id":"delete/delete-configuration","title":"Delete Configuration","description":"To delete a configuration file run:","sidebar":"tutorialSidebar"},"delete/delete-navigations":{"id":"delete/delete-navigations","title":"Delete Navigations","description":"Delete the root Navigation","sidebar":"tutorialSidebar"},"delete/delete-redux":{"id":"delete/delete-redux","title":"Delete Redux","description":"To delete a redux implementation run:","sidebar":"tutorialSidebar"},"delete/delete-screens":{"id":"delete/delete-screens","title":"Delete Screens","description":"Delete a Screen","sidebar":"tutorialSidebar"},"delete/intro":{"id":"delete/intro","title":"Intro","description":"With rnhc you can delete what you already created with create commands.","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"- To install it globally in your system run:","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Summary","description":"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.","sidebar":"tutorialSidebar"},"notes":{"id":"notes","title":"Notes","description":"- To see the available commands for rnhc you can run:","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/e69809d4.8ce71b64.js b/assets/js/e69809d4.8ce71b64.js new file mode 100644 index 0000000..73d136b --- /dev/null +++ b/assets/js/e69809d4.8ce71b64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6368],{6258:e=>{e.exports=JSON.parse('{"title":"Create","description":"How to create files in the project?","slug":"/category/create","permalink":"/react-native-help-create/docs/2.5.1/category/create","navigation":{"previous":{"title":"Getting Started","permalink":"/react-native-help-create/docs/2.5.1/getting-started"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.5.1/create/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/ed086f67.31bb86da.js b/assets/js/ed086f67.31bb86da.js new file mode 100644 index 0000000..d2cfc7c --- /dev/null +++ b/assets/js/ed086f67.31bb86da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9757],{9365:(e,n,t)=>{t.d(n,{A:()=>l});var r=t(6540),a=t(53);const s="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.A)(s,l),hidden:t},n)}},4865:(e,n,t)=>{t.d(n,{A:()=>m});var r=t(9668),a=t(6540),s=t(53),l=t(2303),c=t(1682),i=t(6976),o=t(3104);const u="tabList__CuJ",p="tabItem_LNqP";function d(e){const{lazy:n,block:t,defaultValue:l,values:d,groupId:m,className:y}=e,g=a.Children.map(e.children,(e=>{if((0,a.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})),x=d??g.map((e=>{let{props:{value:n,label:t,attributes:r}}=e;return{value:n,label:t,attributes:r}})),T=(0,c.X)(x,((e,n)=>e.value===n.value));if(T.length>0)throw new Error(`Docusaurus error: Duplicate values "${T.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`);const f=null===l?l:l??g.find((e=>e.props.default))?.props.value??g[0].props.value;if(null!==f&&!x.some((e=>e.value===f)))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${f}" but none of its children has the corresponding value. Available values are: ${x.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:h,setTabGroupChoices:b}=(0,i.x)(),[v,S]=(0,a.useState)(f),_=[],{blockElementScrollPositionUntilNextRender:A}=(0,o.a_)();if(null!=m){const e=h[m];null!=e&&e!==v&&x.some((n=>n.value===e))&&S(e)}const C=e=>{const n=e.currentTarget,t=_.indexOf(n),r=x[t].value;r!==v&&(A(n),S(r),null!=m&&b(m,String(r)))},N=e=>{let n=null;switch(e.key){case"Enter":C(e);break;case"ArrowRight":{const t=_.indexOf(e.currentTarget)+1;n=_[t]??_[0];break}case"ArrowLeft":{const t=_.indexOf(e.currentTarget)-1;n=_[t]??_[_.length-1];break}}n?.focus()};return a.createElement("div",{className:(0,s.A)("tabs-container",u)},a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},y)},x.map((e=>{let{value:n,label:t,attributes:l}=e;return a.createElement("li",(0,r.A)({role:"tab",tabIndex:v===n?0:-1,"aria-selected":v===n,key:n,ref:e=>_.push(e),onKeyDown:N,onClick:C},l,{className:(0,s.A)("tabs__item",p,l?.className,{"tabs__item--active":v===n})}),t??n)}))),n?(0,a.cloneElement)(g.filter((e=>e.props.value===v))[0],{className:"margin-top--md"}):a.createElement("div",{className:"margin-top--md"},g.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==v})))))}function m(e){const n=(0,l.A)();return a.createElement(d,(0,r.A)({key:String(n)},e))}},2283:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var r=t(9668),a=(t(6540),t(5680)),s=t(4865),l=t(9365),c=t(7964);const i={sidebar_position:3},o="Create Screens",u={unversionedId:"create/create-screens",id:"create/create-screens",title:"Create Screens",description:"Create a Screen",source:"@site/docs/create/create-screens.mdx",sourceDirName:"create",slug:"/create/create-screens",permalink:"/react-native-help-create/docs/create/create-screens",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Create Components",permalink:"/react-native-help-create/docs/create/create-components"},next:{title:"Create Navigations",permalink:"/react-native-help-create/docs/create/create-navigations"}},p={},d=[{value:"Create a Screen",id:"create-a-screen",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Screens",id:"create-multiple-screens",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Screens in a Specific Folder",id:"create-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-2",level:3}],m={toc:d};function y(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-screens"},"Create Screens"),(0,a.yg)("h2",{id:"create-a-screen"},"Create a Screen"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your screen simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a screen after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"screen-name")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s testScreen\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 test-screen\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 test-screen\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.*")," represent the screen which is nothing but a React FC component that contains the following:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{language:"jsx",mdxType:"CodeBlock"},'import { Text, View } from "react-native";\nimport {} from "./functions";\nimport { TestScreenStyles } from "./styles";\n\nconst TestScreenScreen = () => {\n return (\n <View>\n <Text>TestScreen screen created!</Text>\n </View>\n );\n};\nexport default TestScreenScreen;\n')),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{language:"tsx",mdxType:"CodeBlock"},'import { FC } from "react";\nimport { Text, View } from "react-native";\nimport {} from "./functions";\nimport { TestScreenStyles } from "./styles";\n\ninterface TestScreenScreenProps {}\n\nconst TestScreenScreen: FC<TestScreenScreenProps> = ({}) => {\n return (\n <View>\n <Text>TestScreen screen created!</Text>\n </View>\n );\n};\nexport default TestScreenScreen;\n'))),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"As for ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.*")," you will find:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{language:"jsx",mdxType:"CodeBlock"},'import { StyleSheet } from "react-native";\n\nexport const TestScreenStyles = StyleSheet.create({});\n')),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{language:"tsx",mdxType:"CodeBlock"},'import { StyleSheet } from "react-native";\n\nexport const TestScreenStyles = StyleSheet.create({});\n'))),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And ",(0,a.yg)("inlineCode",{parentName:"li"},"index.spec.*")," will contain:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{language:"jsx",mdxType:"CodeBlock"},'import "react-native";\n\nimport React from "react";\nimport TestScreenScreen from "..";\nimport renderer from "react-test-renderer";\n\nit("renders correctly", () => {\n renderer.create(<TestScreenScreen />);\n});\n')),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{language:"tsx",mdxType:"CodeBlock"},'import "react-native";\n\nimport TestScreenScreen from "../";\nimport React from "react";\nimport renderer from "react-test-renderer";\n\nit("renders correctly", () => {\n renderer.create(<TestScreenScreen />);\n});\n'))),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And under the ",(0,a.yg)("inlineCode",{parentName:"li"},"functions")," folder you should write your screen's functions and export them in ",(0,a.yg)("inlineCode",{parentName:"li"},"function/index.*")," file, which by default it will contain the following:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{language:"jsx",mdxType:"CodeBlock"},"// write your TestScreen screen functions here\n")),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{language:"tsx",mdxType:"CodeBlock"},"// write your TestScreen screen functions here\nexport {};\n"))),(0,a.yg)("h2",{id:"create-multiple-screens"},"Create multiple Screens"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple screens simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,a.yg)("h2",{id:"create-screens-in-a-specific-folder"},"Create Screens in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or multiple screens in a specific path that resides under ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your screens under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>")," folder.")),(0,a.yg)("h3",{id:"example-2"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -s screen-1 screen-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create the following:")),(0,a.yg)(s.A,{groupId:"language",mdxType:"Tabs"},(0,a.yg)(l.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,a.yg)(c.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,a.yg)(l.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,a.yg)(c.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 screens\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ef7bddec.c8c2b965.js b/assets/js/ef7bddec.c8c2b965.js new file mode 100644 index 0000000..ea23944 --- /dev/null +++ b/assets/js/ef7bddec.c8c2b965.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3293],{4209:e=>{e.exports=JSON.parse('{"title":"Combine","description":"How to combine components or screens?","slug":"/category/combine","permalink":"/react-native-help-create/docs/2.6.0/category/combine","navigation":{"previous":{"title":"Delete Configuration","permalink":"/react-native-help-create/docs/2.6.0/delete/delete-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.6.0/combine/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/effad21f.51215d58.js b/assets/js/effad21f.51215d58.js new file mode 100644 index 0000000..f36d4ea --- /dev/null +++ b/assets/js/effad21f.51215d58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5910],{1066:e=>{e.exports=JSON.parse('{"title":"Combine","description":"How to combine components or screens?","slug":"/category/combine","permalink":"/react-native-help-create/docs/category/combine","navigation":{"previous":{"title":"Delete Configuration","permalink":"/react-native-help-create/docs/delete/delete-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/combine/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f042d6b5.24ddc106.js b/assets/js/f042d6b5.24ddc106.js new file mode 100644 index 0000000..384198d --- /dev/null +++ b/assets/js/f042d6b5.24ddc106.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[890],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)t=l[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),c=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(p.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,l=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(t),u=o,y=m["".concat(p,".").concat(u)]||m[u]||d[u]||l;return t?r.createElement(y,a(a({ref:n},s),{},{components:t})):r.createElement(y,a({ref:n},s))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var l=t.length,a=new Array(l);a[0]=u;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[m]="string"==typeof e?e:o,a[1]=i;for(var c=2;c<l;c++)a[c]=t[c];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}u.displayName="MDXCreateElement"},3599:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=t(9668),o=(t(6540),t(5680));const l={sidebar_position:2},a="Delete Components",i={unversionedId:"delete/delete-components",id:"version-2.3.4/delete/delete-components",title:"Delete Components",description:"Delete a Component",source:"@site/versioned_docs/version-2.3.4/delete/delete-components.md",sourceDirName:"delete",slug:"/delete/delete-components",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-components",draft:!1,tags:[],version:"2.3.4",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.3.4/delete/intro"},next:{title:"Delete Screens",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-screens"}},p={},c=[{value:"Delete a Component",id:"delete-a-component",level:2},{value:"Delete multiple Components",id:"delete-multiple-components",level:2},{value:"Delete a Components in a Specific Folder",id:"delete-a-components-in-a-specific-folder",level:2}],s={toc:c};function m(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"delete-components"},"Delete Components"),(0,o.yg)("h2",{id:"delete-a-component"},"Delete a Component"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete a component simply run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"This will delete the component with the given name ",(0,o.yg)("inlineCode",{parentName:"p"},"<component-name>")," under the ",(0,o.yg)("inlineCode",{parentName:"p"},"src/components/")," folder.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},"If the component does not exist, ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt the following:"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"src/components/<component-name>/ does not exist\n")),(0,o.yg)("h2",{id:"delete-multiple-components"},"Delete multiple Components"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete multiple components run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ...\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,o.yg)("h2",{id:"delete-a-components-in-a-specific-folder"},"Delete a Components in a Specific Folder"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To delete one or multiple components that resides in a specific path under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, you can run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will delete only the existed components with the given inputs that resides under the ",(0,o.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1bdf090.fb3aed32.js b/assets/js/f1bdf090.fb3aed32.js new file mode 100644 index 0000000..ed7c95d --- /dev/null +++ b/assets/js/f1bdf090.fb3aed32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[5163],{9365:(e,n,t)=>{t.d(n,{A:()=>r});var a=t(6540),l=t(53);const o="tabItem_Ymn6";function r(e){let{children:n,hidden:t,className:r}=e;return a.createElement("div",{role:"tabpanel",className:(0,l.A)(o,r),hidden:t},n)}},4865:(e,n,t)=>{t.d(n,{A:()=>d});var a=t(9668),l=t(6540),o=t(53),r=t(2303),s=t(1682),m=t(6976),c=t(3104);const p="tabList__CuJ",i="tabItem_LNqP";function u(e){const{lazy:n,block:t,defaultValue:r,values:u,groupId:d,className:g}=e,y=l.Children.map(e.children,(e=>{if((0,l.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})),x=u??y.map((e=>{let{props:{value:n,label:t,attributes:a}}=e;return{value:n,label:t,attributes:a}})),h=(0,s.X)(x,((e,n)=>e.value===n.value));if(h.length>0)throw new Error(`Docusaurus error: Duplicate values "${h.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`);const T=null===r?r:r??y.find((e=>e.props.default))?.props.value??y[0].props.value;if(null!==T&&!x.some((e=>e.value===T)))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${T}" but none of its children has the corresponding value. Available values are: ${x.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:f,setTabGroupChoices:C}=(0,m.x)(),[v,b]=(0,l.useState)(T),N=[],{blockElementScrollPositionUntilNextRender:_}=(0,c.a_)();if(null!=d){const e=f[d];null!=e&&e!==v&&x.some((n=>n.value===e))&&b(e)}const A=e=>{const n=e.currentTarget,t=N.indexOf(n),a=x[t].value;a!==v&&(_(n),b(a),null!=d&&C(d,String(a)))},w=e=>{let n=null;switch(e.key){case"Enter":A(e);break;case"ArrowRight":{const t=N.indexOf(e.currentTarget)+1;n=N[t]??N[0];break}case"ArrowLeft":{const t=N.indexOf(e.currentTarget)-1;n=N[t]??N[N.length-1];break}}n?.focus()};return l.createElement("div",{className:(0,o.A)("tabs-container",p)},l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":t},g)},x.map((e=>{let{value:n,label:t,attributes:r}=e;return l.createElement("li",(0,a.A)({role:"tab",tabIndex:v===n?0:-1,"aria-selected":v===n,key:n,ref:e=>N.push(e),onKeyDown:w,onClick:A},r,{className:(0,o.A)("tabs__item",i,r?.className,{"tabs__item--active":v===n})}),t??n)}))),n?(0,l.cloneElement)(y.filter((e=>e.props.value===v))[0],{className:"margin-top--md"}):l.createElement("div",{className:"margin-top--md"},y.map(((e,n)=>(0,l.cloneElement)(e,{key:n,hidden:e.props.value!==v})))))}function d(e){const n=(0,r.A)();return l.createElement(u,(0,a.A)({key:String(n)},e))}},8458:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>g,frontMatter:()=>m,metadata:()=>p,toc:()=>u});var a=t(9668),l=(t(6540),t(5680)),o=t(4865),r=t(9365),s=t(7964);const m={sidebar_position:2},c="Create Components",p={unversionedId:"create/create-components",id:"create/create-components",title:"Create Components",description:"Create a Component",source:"@site/docs/create/create-components.mdx",sourceDirName:"create",slug:"/create/create-components",permalink:"/react-native-help-create/docs/create/create-components",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/create/intro"},next:{title:"Create Screens",permalink:"/react-native-help-create/docs/create/create-screens"}},i={},u=[{value:"Create a Component",id:"create-a-component",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Components",id:"create-multiple-components",level:2},{value:"Exmaple",id:"exmaple",level:3},{value:"Create a Components in a Specific Folder",id:"create-a-components-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3},{value:"Create a Component in the Atom Design Pattern",id:"create-a-component-in-the-atom-design-pattern",level:2},{value:"Create an Atom Component",id:"create-an-atom-component",level:3},{value:"Example",id:"example-2",level:3},{value:"Create a Molecule Component",id:"create-a-molecule-component",level:3},{value:"Example",id:"example-3",level:3},{value:"Create an Organism Component",id:"create-an-organism-component",level:3},{value:"Example",id:"example-4",level:3},{value:"Create a Component in the Atomic Design Pattern in a Specific Folder",id:"create-a-component-in-the-atomic-design-pattern-in-a-specific-folder",level:2}],d={toc:u};function g(e){let{components:n,...t}=e;return(0,l.yg)("wrapper",(0,a.A)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"create-components"},"Create Components"),(0,l.yg)("h2",{id:"create-a-component"},"Create a Component"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To create your components simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will create a component named after the given name ",(0,l.yg)("inlineCode",{parentName:"li"},"<component-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/<component-name>/")," folder.")),(0,l.yg)("h3",{id:"example"},"Example"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestComponent\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/test-component/"),":")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-component\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 test-component\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"Where ",(0,l.yg)("inlineCode",{parentName:"li"},"index.*")," represents the React FC component that contains the following:")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{language:"jsx",mdxType:"CodeBlock"},'import { Text, View } from "react-native";\nimport { TestComponentStyles } from "./styles";\n\nconst TestComponent = () => {\n return (\n <View>\n <Text>TestComponent component created!</Text>\n </View>\n );\n};\nexport default TestComponent;\n')),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{language:"tsx",mdxType:"CodeBlock"},'import { FC } from "react";\nimport { Text, View } from "react-native"\nimport { TestComponentStyles } from "./styles";\n\ninterface TestComponentProps {}\n\nconst TestComponent: FC<TestComponentProps> = ({}) => {\n return (\n <View>\n <Text>TestComponent component created!</Text>\n </View>\n );\n};\nexport default TestComponent;\n'))),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"And for the ",(0,l.yg)("inlineCode",{parentName:"li"},"styles.*")," you will see:")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{language:"jsx",mdxType:"CodeBlock"},'import { StyleSheet } from "react-native";\n\nexport const TestComponentStyles = StyleSheet.create({});\n')),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{language:"tsx",mdxType:"CodeBlock"},'import { StyleSheet } from "react-native";\n\nexport const TestComponentStyles = StyleSheet.create({});\n'))),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"And for the ",(0,l.yg)("inlineCode",{parentName:"li"},"index.spec.*")," you will see:")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{language:"jsx",mdxType:"CodeBlock"},'import "react-native";\n\nimport TestComponent from "../";\nimport React from "react";\nimport renderer from "react-test-renderer";\n\nit("renders correctly", () => {\n renderer.create(<TestComponent />);\n});\n')),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{language:"tsx",mdxType:"CodeBlock"},'import "react-native";\n\nimport TestComponent from "../";\nimport React from "react";\nimport renderer from "react-test-renderer";\n\nit("renders correctly", () => {\n renderer.create(<TestComponent />);\n});\n'))),(0,l.yg)("h2",{id:"create-multiple-components"},"Create multiple Components"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To create multiple components simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ...\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will create multiple components for the given names under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,l.yg)("h3",{id:"exmaple"},"Exmaple"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This command will create under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u2502 \u251c\u2500\u2500 index.jsx\n \u2502 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u2502 \u251c\u2500\u2500 index.tsx\n \u2502 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,l.yg)("h2",{id:"create-a-components-in-a-specific-folder"},"Create a Components in a Specific Folder"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To create one or mutliple components in a specified path that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will create your components under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")),(0,l.yg)("h3",{id:"example-1"},"Example"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2 -f foo/bar\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This command will create under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u2502 \u251c\u2500\u2500 index.jsx\n \u2502 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 foo\n \u2514\u2500\u2500 bar\n \u251c\u2500\u2500 comp-1\n \u2502 \u251c\u2500\u2500 __tests__\n \u2502 \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u2502 \u251c\u2500\u2500 index.tsx\n \u2502 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 comp-2\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,l.yg)("h2",{id:"create-a-component-in-the-atom-design-pattern"},"Create a Component in the Atom Design Pattern"),(0,l.yg)("p",null,"You can also create your components in atom design pattern, which is a design pattern that is used to create small and reusable components. You can read more about it ",(0,l.yg)("a",{parentName:"p",href:"https://atomicdesign.bradfrost.com/chapter-2/"},"here"),"."),(0,l.yg)("h3",{id:"create-an-atom-component"},"Create an Atom Component"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To create your atoms simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <atom-name> --atom\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will create an atom named after the given name ",(0,l.yg)("inlineCode",{parentName:"li"},"<atom-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/atoms/<atom-name>/")," folder.")),(0,l.yg)("h3",{id:"example-2"},"Example"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestAtom --atom\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/atoms/test-atom/"),":")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 atoms\n \u2514\u2500\u2500 test-atom\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 atoms\n \u2514\u2500\u2500 test-atom\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,l.yg)("h3",{id:"create-a-molecule-component"},"Create a Molecule Component"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To create your molecules simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <molecule-name> --molecule\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will create a molecule named after the given name ",(0,l.yg)("inlineCode",{parentName:"li"},"<molecule-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/molecules/<molecule-name>/")," folder.")),(0,l.yg)("h3",{id:"example-3"},"Example"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestMolecule --molecule\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/molecules/test-molecule/"),":")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 molecules\n \u2514\u2500\u2500 test-molecule\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 molecules\n \u2514\u2500\u2500 test-molecule\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,l.yg)("h3",{id:"create-an-organism-component"},"Create an Organism Component"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"To create your organisms simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <organism-name> --organism\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This will create an organism named after the given name ",(0,l.yg)("inlineCode",{parentName:"li"},"<organism-name>")," under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/organisms/<organism-name>/")," folder.")),(0,l.yg)("h3",{id:"example-4"},"Example"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c TestOrganism --organism\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/organisms/test-organism/"),":")),(0,l.yg)(o.A,{groupId:"language",mdxType:"Tabs"},(0,l.yg)(r.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 organisms\n \u2514\u2500\u2500 test-organism\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,l.yg)(r.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,l.yg)(s.A,{mdxType:"CodeBlock"},"src/\n\u2514\u2500\u2500 components\n \u2514\u2500\u2500 organisms\n \u2514\u2500\u2500 test-organism\n \u251c\u2500\u2500 __tests__\n \u2502 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,l.yg)("h2",{id:"create-a-component-in-the-atomic-design-pattern-in-a-specific-folder"},"Create a Component in the Atomic Design Pattern in a Specific Folder"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"You can also create your components in a specified path that resides under the ",(0,l.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, simply run:")),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path> --atom\n")),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"This will create your components under the ",(0,l.yg)("inlineCode",{parentName:"p"},"src/components/<folder-path>/atoms/")," folder.")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("p",{parentName:"li"},"The same goes for molecules and organisms."))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f29d18fc.d3639805.js b/assets/js/f29d18fc.d3639805.js new file mode 100644 index 0000000..36afe6b --- /dev/null +++ b/assets/js/f29d18fc.d3639805.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9706],{5680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function a(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),u=s(t),f=o,y=u["".concat(p,".").concat(f)]||u[f]||m[f]||i;return t?r.createElement(y,c(c({ref:n},l),{},{components:t})):r.createElement(y,c({ref:n},l))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=f;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var s=2;s<i;s++)c[s]=t[s];return r.createElement.apply(null,c)}return r.createElement.apply(null,t)}f.displayName="MDXCreateElement"},269:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>s});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:1},c="Intro",a={unversionedId:"combine/intro",id:"version-2.3.4/combine/intro",title:"Intro",description:"With rnhc you can combine your components or screens in a specific path.",source:"@site/versioned_docs/version-2.3.4/combine/intro.md",sourceDirName:"combine",slug:"/combine/intro",permalink:"/react-native-help-create/docs/2.3.4/combine/intro",draft:!1,tags:[],version:"2.3.4",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Combine",permalink:"/react-native-help-create/docs/2.3.4/category/combine"},next:{title:"Combine Components",permalink:"/react-native-help-create/docs/2.3.4/combine/combine-components"}},p={},s=[],l={toc:s};function u(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"intro"},"Intro"),(0,o.yg)("p",null,"With ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," you can combine your components or screens in a specific path."),(0,o.yg)("p",null,"The following points shows how to user the ",(0,o.yg)("inlineCode",{parentName:"p"},"combine")," command."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f4f34a3a.fa592520.js b/assets/js/f4f34a3a.fa592520.js new file mode 100644 index 0000000..9a1c2f3 --- /dev/null +++ b/assets/js/f4f34a3a.fa592520.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3637],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>b});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},i="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),i=u(r),g=o,b=i["".concat(l,".").concat(g)]||i[g]||m[g]||a;return r?n.createElement(b,c(c({ref:t},p),{},{components:r})):n.createElement(b,c({ref:t},p))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[i]="string"==typeof e?e:o,c[1]=s;for(var u=2;u<a;u++)c[u]=r[u];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}g.displayName="MDXCreateElement"},5111:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>i,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var n=r(9668),o=(r(6540),r(5680));const a={slug:"mdx-blog-post",title:"MDX Blog Post",authors:["slorber"],tags:["docusaurus"]},c=void 0,s={permalink:"/react-native-help-create/blog/mdx-blog-post",source:"@site/blog/2021-08-01-mdx-blog-post.mdx",title:"MDX Blog Post",description:"Blog posts support Docusaurus Markdown features, such as MDX.",date:"2021-08-01T00:00:00.000Z",formattedDate:"August 1, 2021",tags:[{label:"docusaurus",permalink:"/react-native-help-create/blog/tags/docusaurus"}],readingTime:.175,hasTruncateMarker:!1,authors:[{name:"S\xe9bastien Lorber",title:"Docusaurus maintainer",url:"https://sebastienlorber.com",imageURL:"https://github.com/slorber.png",key:"slorber"}],frontMatter:{slug:"mdx-blog-post",title:"MDX Blog Post",authors:["slorber"],tags:["docusaurus"]},prevItem:{title:"Welcome",permalink:"/react-native-help-create/blog/welcome"},nextItem:{title:"Long Blog Post",permalink:"/react-native-help-create/blog/long-blog-post"}},l={authorsImageUrls:[void 0]},u=[],p={toc:u};function i(e){let{components:t,...r}=e;return(0,o.yg)("wrapper",(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Blog posts support ",(0,o.yg)("a",{parentName:"p",href:"https://docusaurus.io/docs/markdown-features"},"Docusaurus Markdown features"),", such as ",(0,o.yg)("a",{parentName:"p",href:"https://mdxjs.com/"},"MDX"),"."),(0,o.yg)("admonition",{type:"tip"},(0,o.yg)("p",{parentName:"admonition"},"Use the power of React to create interactive blog posts."),(0,o.yg)("pre",{parentName:"admonition"},(0,o.yg)("code",{parentName:"pre",className:"language-js"},"<button onClick={() => alert('button clicked!')}>Click me!</button>\n")),(0,o.yg)("button",{onClick:()=>alert("button clicked!")},"Click me!")))}i.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7ba0a2e.5369fd96.js b/assets/js/f7ba0a2e.5369fd96.js new file mode 100644 index 0000000..0f07522 --- /dev/null +++ b/assets/js/f7ba0a2e.5369fd96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4155],{8637:e=>{e.exports=JSON.parse('{"title":"Delete","description":"How to delete files in the project?","slug":"/category/delete","permalink":"/react-native-help-create/docs/2.6.0/category/delete","navigation":{"previous":{"title":"Using Configuration","permalink":"/react-native-help-create/docs/2.6.0/create/using-configuration"},"next":{"title":"Intro","permalink":"/react-native-help-create/docs/2.6.0/delete/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f8409a7e.5c0b2fd2.js b/assets/js/f8409a7e.5c0b2fd2.js new file mode 100644 index 0000000..8fec830 --- /dev/null +++ b/assets/js/f8409a7e.5c0b2fd2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6903],{9365:(e,n,t)=>{t.d(n,{A:()=>i});var a=t(6540),s=t(53);const r="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,s.A)(r,i),hidden:t},n)}},4865:(e,n,t)=>{t.d(n,{A:()=>m});var a=t(9668),s=t(6540),r=t(53),i=t(2303),o=t(1682),l=t(6976),d=t(3104);const c="tabList__CuJ",p="tabItem_LNqP";function u(e){const{lazy:n,block:t,defaultValue:i,values:u,groupId:m,className:y}=e,h=s.Children.map(e.children,(e=>{if((0,s.isValidElement)(e)&&"value"in e.props)return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})),g=u??h.map((e=>{let{props:{value:n,label:t,attributes:a}}=e;return{value:n,label:t,attributes:a}})),f=(0,o.X)(g,((e,n)=>e.value===n.value));if(f.length>0)throw new Error(`Docusaurus error: Duplicate values "${f.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`);const x=null===i?i:i??h.find((e=>e.props.default))?.props.value??h[0].props.value;if(null!==x&&!g.some((e=>e.value===x)))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${x}" but none of its children has the corresponding value. Available values are: ${g.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);const{tabGroupChoices:_,setTabGroupChoices:N}=(0,l.x)(),[b,v]=(0,s.useState)(x),C=[],{blockElementScrollPositionUntilNextRender:w}=(0,d.a_)();if(null!=m){const e=_[m];null!=e&&e!==b&&g.some((n=>n.value===e))&&v(e)}const j=e=>{const n=e.currentTarget,t=C.indexOf(n),a=g[t].value;a!==b&&(w(n),v(a),null!=m&&N(m,String(a)))},T=e=>{let n=null;switch(e.key){case"Enter":j(e);break;case"ArrowRight":{const t=C.indexOf(e.currentTarget)+1;n=C[t]??C[0];break}case"ArrowLeft":{const t=C.indexOf(e.currentTarget)-1;n=C[t]??C[C.length-1];break}}n?.focus()};return s.createElement("div",{className:(0,r.A)("tabs-container",c)},s.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":t},y)},g.map((e=>{let{value:n,label:t,attributes:i}=e;return s.createElement("li",(0,a.A)({role:"tab",tabIndex:b===n?0:-1,"aria-selected":b===n,key:n,ref:e=>C.push(e),onKeyDown:T,onClick:j},i,{className:(0,r.A)("tabs__item",p,i?.className,{"tabs__item--active":b===n})}),t??n)}))),n?(0,s.cloneElement)(h.filter((e=>e.props.value===b))[0],{className:"margin-top--md"}):s.createElement("div",{className:"margin-top--md"},h.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==b})))))}function m(e){const n=(0,i.A)();return s.createElement(u,(0,a.A)({key:String(n)},e))}},7532:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>y,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=t(9668),s=(t(6540),t(5680)),r=t(4865),i=t(9365),o=t(7964);const l={sidebar_position:1},d="Summary",c={unversionedId:"intro",id:"intro",title:"Summary",description:"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.",source:"@site/docs/intro.mdx",sourceDirName:".",slug:"/intro",permalink:"/react-native-help-create/docs/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Getting Started",permalink:"/react-native-help-create/docs/getting-started"}},p={},u=[],m={toc:u};function y(e){let{components:n,...t}=e;return(0,s.yg)("wrapper",(0,a.A)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,s.yg)("h1",{id:"summary"},"Summary"),(0,s.yg)("p",null,"This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code."),(0,s.yg)("p",null,"The following project structure is used by this command:"),(0,s.yg)(r.A,{groupId:"language",mdxType:"Tabs"},(0,s.yg)(i.A,{value:"js",label:"JavaScript",default:!0,mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u251c\u2500\u2500 components\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-one\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-two\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n\u2502\xa0\xa0 \u2514\u2500\u2500 folder\n\u2502\xa0\xa0 \u2514\u2500\u2500 comp-three\n\u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n\u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n\u251c\u2500\u2500 redux\n\u2502\xa0\xa0 \u251c\u2500\u2500 actions\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.js\n\u2502\xa0\xa0 \u2514\u2500\u2500 reducers\n\u2502\xa0\xa0 \u251c\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n\u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-three\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-two\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js")),(0,s.yg)(i.A,{value:"ts",label:"TypeScript",mdxType:"TabItem"},(0,s.yg)(o.A,{mdxType:"CodeBlock"},"src/\n\u251c\u2500\u2500 components\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-one\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u2502\xa0\xa0 \u251c\u2500\u2500 comp-two\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 folder\n\u2502\xa0\xa0 \u2514\u2500\u2500 comp-three\n\u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n\u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n\u251c\u2500\u2500 redux\n\u2502\xa0\xa0 \u251c\u2500\u2500 actions\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u251c\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 reducers\n\u2502\xa0\xa0 \u251c\u2500\u2500 general\n\u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2502\xa0\xa0 \u2514\u2500\u2500 index.ts\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-three\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u251c\u2500\u2500 navigation.tsx\n \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.tsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.ts\n \u2514\u2500\u2500 screen-two\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.tsx\n \u251c\u2500\u2500 index.tsx\n \u2514\u2500\u2500 styles.ts"))),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"As you can see above, the ",(0,s.yg)("inlineCode",{parentName:"p"},"src")," folder is the folder that resides at the root of your React Native project and under this folder, you will find the ",(0,s.yg)("inlineCode",{parentName:"p"},"components")," folder which contains all the shared components that are used through out the screen. The ",(0,s.yg)("inlineCode",{parentName:"p"},"screens")," folder contains the app's screens that can uses some of the shared components above it.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"In each component you will find ",(0,s.yg)("inlineCode",{parentName:"p"},"index.tsx")," that contains the components ",(0,s.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,s.yg)("inlineCode",{parentName:"p"},"styles.ts")," that contains the styles for that component.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"In each screen you will find ",(0,s.yg)("inlineCode",{parentName:"p"},"index.tsx")," that contains the ",(0,s.yg)("inlineCode",{parentName:"p"},"JSX.Element")," syntaxes, and ",(0,s.yg)("inlineCode",{parentName:"p"},"styles.ts")," that contains the screen's styles and ",(0,s.yg)("inlineCode",{parentName:"p"},"functions")," folder which will contain the screen's specific functions.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"Each screen can use one of the shared components that are defined in ",(0,s.yg)("inlineCode",{parentName:"p"},"components")," folder, and you can pass the functions to those components hence there is not ",(0,s.yg)("inlineCode",{parentName:"p"},"functions")," folder under a component subfolder.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"For the ",(0,s.yg)("inlineCode",{parentName:"p"},"screens")," part you can find ",(0,s.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," files that shows the relation between the screens that resides in the same folder. For example, the ",(0,s.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," under the ",(0,s.yg)("inlineCode",{parentName:"p"},"screens")," folder represent a stack navigation between ",(0,s.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-two"),". As for the ",(0,s.yg)("inlineCode",{parentName:"p"},"navigation.tsx")," file under the ",(0,s.yg)("inlineCode",{parentName:"p"},"folder")," folder is represent a drawer navigation between ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screen-four"),".")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"In both the ",(0,s.yg)("inlineCode",{parentName:"p"},"components")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"screens")," folders, you can find ",(0,s.yg)("inlineCode",{parentName:"p"},"__tests__")," folder that contains the tests for the component or screen.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"As for the ",(0,s.yg)("inlineCode",{parentName:"p"},"redux")," folder you can see there is ",(0,s.yg)("inlineCode",{parentName:"p"},"index.ts")," which contain the redux store, and ",(0,s.yg)("inlineCode",{parentName:"p"},"actions")," and ",(0,s.yg)("inlineCode",{parentName:"p"},"reducers")," folders are next to it so you can find only things that are related to redux in one single place.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("p",{parentName:"li"},"You can override the usage of the default behavior of this command line by modifying the ",(0,s.yg)("inlineCode",{parentName:"p"},"rnhc.config.json")," file (more details can be found ",(0,s.yg)("a",{parentName:"p",href:"./create/using-configuration"},"here"),")."))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa9d45bc.5990ca96.js b/assets/js/fa9d45bc.5990ca96.js new file mode 100644 index 0000000..7fe4ade --- /dev/null +++ b/assets/js/fa9d45bc.5990ca96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6155],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>g});var l=t(6540);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);r&&(l=l.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function o(e,r){if(null==e)return{};var t,l,n=function(e,r){if(null==e)return{};var t,l,n={},a=Object.keys(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var c=l.createContext({}),u=function(e){var r=l.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=u(e.components);return l.createElement(c.Provider,{value:r},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return l.createElement(l.Fragment,{},r)}},m=l.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=u(t),m=n,g=s["".concat(c,".").concat(m)]||s[m]||p[m]||a;return t?l.createElement(g,i(i({ref:r},d),{},{components:t})):l.createElement(g,i({ref:r},d))}));function g(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=m;var o={};for(var c in r)hasOwnProperty.call(r,c)&&(o[c]=r[c]);o.originalType=e,o[s]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<a;u++)i[u]=t[u];return l.createElement.apply(null,i)}return l.createElement.apply(null,t)}m.displayName="MDXCreateElement"},897:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var l=t(9668),n=(t(6540),t(5680));const a={sidebar_position:5},i="Delete Redux",o={unversionedId:"delete/delete-redux",id:"version-2.3.4/delete/delete-redux",title:"Delete Redux",description:"- To delete a redux implementation run:",source:"@site/versioned_docs/version-2.3.4/delete/delete-redux.md",sourceDirName:"delete",slug:"/delete/delete-redux",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-redux",draft:!1,tags:[],version:"2.3.4",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-navigations"},next:{title:"Delete Configuration",permalink:"/react-native-help-create/docs/2.3.4/delete/delete-configuration"}},c={},u=[{value:"Delete a reducer",id:"delete-a-reducer",level:2},{value:"Delete multiple reducers",id:"delete-multiple-reducers",level:2},{value:"Delete all reducers",id:"delete-all-reducers",level:2},{value:"Delete an action",id:"delete-an-action",level:2},{value:"Delete multiple actions",id:"delete-multiple-actions",level:2},{value:"Delete all actions for a specific reducer",id:"delete-all-actions-for-a-specific-reducer",level:2}],d={toc:u};function s(e){let{components:r,...t}=e;return(0,n.yg)("wrapper",(0,l.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"delete-redux"},"Delete Redux"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete a redux implementation run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -r\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"This will delete the ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," folder under ",(0,n.yg)("inlineCode",{parentName:"p"},"src/")," with all of its files and subfolders.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"If ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," does not exist, ",(0,n.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"src/redux/ does not exist\n")),(0,n.yg)("h1",{id:"reducers"},"Reducers"),(0,n.yg)("h2",{id:"delete-a-reducer"},"Delete a reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete a reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"This will delete the existed reducer under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder, if not ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the ",(0,n.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder to remove it from the import list as well as from the ",(0,n.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,n.yg)("h2",{id:"delete-multiple-reducers"},"Delete multiple reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple reducers at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-reducers"},"Delete all reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all reducers run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer\n")),(0,n.yg)("h1",{id:"actions"},"Actions"),(0,n.yg)("h2",{id:"delete-an-action"},"Delete an action"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete an action run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"If the reducer does not exist, ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/actions/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts"),".")),(0,n.yg)("h2",{id:"delete-multiple-actions"},"Delete multiple actions"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple actions for a specific reducer at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-actions-for-a-specific-reducer"},"Delete all actions for a specific reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all actions for a specific reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name>\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb61dd4c.be359fe0.js b/assets/js/fb61dd4c.be359fe0.js new file mode 100644 index 0000000..f28e58a --- /dev/null +++ b/assets/js/fb61dd4c.be359fe0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[2219],{7597:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"welcome","metadata":{"permalink":"/react-native-help-create/blog/welcome","source":"@site/blog/2021-08-26-welcome/index.md","title":"Welcome","description":"Docusaurus blogging features are powered by the blog plugin.","date":"2021-08-26T00:00:00.000Z","formattedDate":"August 26, 2021","tags":[{"label":"facebook","permalink":"/react-native-help-create/blog/tags/facebook"},{"label":"hello","permalink":"/react-native-help-create/blog/tags/hello"},{"label":"docusaurus","permalink":"/react-native-help-create/blog/tags/docusaurus"}],"readingTime":0.405,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","imageURL":"https://github.com/slorber.png","key":"slorber"},{"name":"Yangshun Tay","title":"Front End Engineer @ Facebook","url":"https://github.com/yangshun","imageURL":"https://github.com/yangshun.png","key":"yangshun"}],"frontMatter":{"slug":"welcome","title":"Welcome","authors":["slorber","yangshun"],"tags":["facebook","hello","docusaurus"]},"nextItem":{"title":"MDX Blog Post","permalink":"/react-native-help-create/blog/mdx-blog-post"}},"content":"[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).\\n\\nSimply add Markdown files (or folders) to the `blog` directory.\\n\\nRegular blog authors can be added to `authors.yml`.\\n\\nThe blog post date can be extracted from filenames, such as:\\n\\n- `2019-05-30-welcome.md`\\n- `2019-05-30-welcome/index.md`\\n\\nA blog post folder can be convenient to co-locate blog post images:\\n\\n![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg)\\n\\nThe blog supports tags as well!\\n\\n**And if you don\'t want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config."},{"id":"mdx-blog-post","metadata":{"permalink":"/react-native-help-create/blog/mdx-blog-post","source":"@site/blog/2021-08-01-mdx-blog-post.mdx","title":"MDX Blog Post","description":"Blog posts support Docusaurus Markdown features, such as MDX.","date":"2021-08-01T00:00:00.000Z","formattedDate":"August 1, 2021","tags":[{"label":"docusaurus","permalink":"/react-native-help-create/blog/tags/docusaurus"}],"readingTime":0.175,"hasTruncateMarker":false,"authors":[{"name":"S\xe9bastien Lorber","title":"Docusaurus maintainer","url":"https://sebastienlorber.com","imageURL":"https://github.com/slorber.png","key":"slorber"}],"frontMatter":{"slug":"mdx-blog-post","title":"MDX Blog Post","authors":["slorber"],"tags":["docusaurus"]},"prevItem":{"title":"Welcome","permalink":"/react-native-help-create/blog/welcome"},"nextItem":{"title":"Long Blog Post","permalink":"/react-native-help-create/blog/long-blog-post"}},"content":"Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).\\n\\n:::tip\\n\\nUse the power of React to create interactive blog posts.\\n\\n```js\\n<button onClick={() => alert(\'button clicked!\')}>Click me!</button>\\n```\\n\\n<button onClick={() => alert(\'button clicked!\')}>Click me!</button>\\n\\n:::"},{"id":"long-blog-post","metadata":{"permalink":"/react-native-help-create/blog/long-blog-post","source":"@site/blog/2019-05-29-long-blog-post.md","title":"Long Blog Post","description":"This is the summary of a very long blog post,","date":"2019-05-29T00:00:00.000Z","formattedDate":"May 29, 2019","tags":[{"label":"hello","permalink":"/react-native-help-create/blog/tags/hello"},{"label":"docusaurus","permalink":"/react-native-help-create/blog/tags/docusaurus"}],"readingTime":2.05,"hasTruncateMarker":true,"authors":[{"name":"Endilie Yacop Sucipto","title":"Maintainer of Docusaurus","url":"https://github.com/endiliey","imageURL":"https://github.com/endiliey.png","key":"endi"}],"frontMatter":{"slug":"long-blog-post","title":"Long Blog Post","authors":"endi","tags":["hello","docusaurus"]},"prevItem":{"title":"MDX Blog Post","permalink":"/react-native-help-create/blog/mdx-blog-post"},"nextItem":{"title":"First Blog Post","permalink":"/react-native-help-create/blog/first-blog-post"}},"content":"This is the summary of a very long blog post,\\n\\nUse a `\x3c!--` `truncate` `--\x3e` comment to limit blog post size in the list view.\\n\\n\x3c!--truncate--\x3e\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"},{"id":"first-blog-post","metadata":{"permalink":"/react-native-help-create/blog/first-blog-post","source":"@site/blog/2019-05-28-first-blog-post.md","title":"First Blog Post","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet","date":"2019-05-28T00:00:00.000Z","formattedDate":"May 28, 2019","tags":[{"label":"hola","permalink":"/react-native-help-create/blog/tags/hola"},{"label":"docusaurus","permalink":"/react-native-help-create/blog/tags/docusaurus"}],"readingTime":0.12,"hasTruncateMarker":false,"authors":[{"name":"Gao Wei","title":"Docusaurus Core Team","url":"https://github.com/wgao19","image_url":"https://github.com/wgao19.png","imageURL":"https://github.com/wgao19.png"}],"frontMatter":{"slug":"first-blog-post","title":"First Blog Post","authors":{"name":"Gao Wei","title":"Docusaurus Core Team","url":"https://github.com/wgao19","image_url":"https://github.com/wgao19.png","imageURL":"https://github.com/wgao19.png"},"tags":["hola","docusaurus"]},"prevItem":{"title":"Long Blog Post","permalink":"/react-native-help-create/blog/long-blog-post"}},"content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet"}]}')}}]); \ No newline at end of file diff --git a/assets/js/fbed3bcb.e0979693.js b/assets/js/fbed3bcb.e0979693.js new file mode 100644 index 0000000..f5339cf --- /dev/null +++ b/assets/js/fbed3bcb.e0979693.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8524],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function c(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),i=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=i(e.components);return r.createElement(p.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),m=i(t),y=a,g=m["".concat(p,".").concat(y)]||m[y]||u[y]||o;return t?r.createElement(g,l(l({ref:n},s),{},{components:t})):r.createElement(g,l({ref:n},s))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[m]="string"==typeof e?e:a,l[1]=c;for(var i=2;i<o;i++)l[i]=t[i];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}y.displayName="MDXCreateElement"},3225:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var r=t(9668),a=(t(6540),t(5680));const o={sidebar_position:2},l="Create Components",c={unversionedId:"create/create-components",id:"version-2.3.4/create/create-components",title:"Create Components",description:"Create a Component",source:"@site/versioned_docs/version-2.3.4/create/create-components.md",sourceDirName:"create",slug:"/create/create-components",permalink:"/react-native-help-create/docs/2.3.4/create/create-components",draft:!1,tags:[],version:"2.3.4",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/react-native-help-create/docs/2.3.4/create/intro"},next:{title:"Create Screens",permalink:"/react-native-help-create/docs/2.3.4/create/create-screens"}},p={},i=[{value:"Create a Component",id:"create-a-component",level:2},{value:"Example",id:"example",level:3},{value:"Create multiple Components",id:"create-multiple-components",level:2},{value:"Exmaple",id:"exmaple",level:3},{value:"Create a Components in a Specific Folder",id:"create-a-components-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3}],s={toc:i};function m(e){let{components:n,...t}=e;return(0,a.yg)("wrapper",(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"create-components"},"Create Components"),(0,a.yg)("h2",{id:"create-a-component"},"Create a Component"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create your components simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create a component named after the given name ",(0,a.yg)("inlineCode",{parentName:"li"},"<component-name>")," under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<component-name>/")," folder.")),(0,a.yg)("h3",{id:"example"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c test-component\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create the following directory ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/test-component/"),":")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500components\n \u2514\u2500\u2500\u2500test-component\n index.jsx\n styles.js\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Where ",(0,a.yg)("inlineCode",{parentName:"li"},"index.jsx")," represents the React FC component that contains the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-jsx"},'import React from "react";\nimport { Text, View } from "react-native";\nimport { TestComponentStyles } from "./styles";\n\nexport const TestComponent = () => {\n return (\n <View>\n <Text>TestComponent component created!</Text>\n </View>\n );\n};\n')),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"And for the ",(0,a.yg)("inlineCode",{parentName:"li"},"styles.js")," you will see:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},'import { StyleSheet } from "react-native";\n\nexport const TestComponentStyles = StyleSheet.create({});\n')),(0,a.yg)("h2",{id:"create-multiple-components"},"Create multiple Components"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create multiple components simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ...\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create multiple components for the given names under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder.")),(0,a.yg)("h3",{id:"exmaple"},"Exmaple"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500components\n \u251c\u2500\u2500\u2500comp-1\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500comp-2\n index.jsx\n styles.js\n")),(0,a.yg)("h2",{id:"create-a-components-in-a-specific-folder"},"Create a Components in a Specific Folder"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"To create one or mutliple components in a specified path that resides under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder, simply run:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This will create your components under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/<folder-path>/")," folder.")),(0,a.yg)("h3",{id:"example-1"},"Example"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -c comp-1 comp-2 -f foo/bar\n")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"This command will create under the ",(0,a.yg)("inlineCode",{parentName:"li"},"src/components/")," folder the following:")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sh"},"src\n\u2514\u2500\u2500\u2500components\n \u2514\u2500\u2500\u2500foo\n \u2514\u2500\u2500\u2500bar\n \u251c\u2500\u2500\u2500comp-1\n \u2502 index.jsx\n \u2502 styles.js\n \u2502\n \u2514\u2500\u2500\u2500comp-2\n index.jsx\n styles.js\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fcaff347.5edcc437.js b/assets/js/fcaff347.5edcc437.js new file mode 100644 index 0000000..dd65426 --- /dev/null +++ b/assets/js/fcaff347.5edcc437.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[4253],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>y});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){o(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),d=o,y=p["".concat(s,".").concat(d)]||p[d]||f[d]||i;return t?r.createElement(y,a(a({ref:n},u),{},{components:t})):r.createElement(y,a({ref:n},u))}));function y(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=d;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var c=2;c<i;c++)a[c]=t[c];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}d.displayName="MDXCreateElement"},9028:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=t(9668),o=(t(6540),t(5680));const i={sidebar_position:7},a="Using Configuration",l={unversionedId:"create/using-configuration",id:"version-2.6.0/create/using-configuration",title:"Using Configuration",description:"With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.",source:"@site/versioned_docs/version-2.6.0/create/using-configuration.md",sourceDirName:"create",slug:"/create/using-configuration",permalink:"/react-native-help-create/docs/2.6.0/create/using-configuration",draft:!1,tags:[],version:"2.6.0",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Create Redux",permalink:"/react-native-help-create/docs/2.6.0/create/create-redux"},next:{title:"Delete",permalink:"/react-native-help-create/docs/2.6.0/category/delete"}},s={},c=[],u={toc:c};function p(e){let{components:n,...t}=e;return(0,o.yg)("wrapper",(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"using-configuration"},"Using Configuration"),(0,o.yg)("p",null,"With the above steps, you can now create a configuration file which will be used by ",(0,o.yg)("inlineCode",{parentName:"p"},"rnhc")," to create your files with your custom config."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"To create a default configuration file run:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create --config\n")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"This will create a ",(0,o.yg)("inlineCode",{parentName:"li"},"rnhc.config.json")," file at the root of your project. The file will contain the following:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n "withStyles": true,\n "withFunctions": true,\n "withProps": true,\n "withTests": true,\n "defaultExports": true,\n "componentsRoot": "./src/components",\n "screensRoot": "./src/screens",\n "reduxRoot": "./src/redux",\n "applyReduxThunk": true\n}\n')),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withStyles"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file for components and screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.js")," (or ",(0,o.yg)("inlineCode",{parentName:"li"},"styles.ts"),") file, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withFunctions"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder for screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"functions")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withProps"),": if true, create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface")," for components and screens (in TS only), if false, don't create props ",(0,o.yg)("inlineCode",{parentName:"li"},"interface"),", default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"withTests"),": if true, create ",(0,o.yg)("inlineCode",{parentName:"li"},"__tests__")," folder for components and screens, if false, don't create ",(0,o.yg)("inlineCode",{parentName:"li"},"__tests__")," folder, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"defaultExports"),": if true, create default export for components and pages, if false, create named export for components and pages, default is true."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"componentsRoot"),": the root folder for components, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/components"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"screensRoot"),": the root folder for screens, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/screens"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"reduxRoot"),": the root folder for redux, default is ",(0,o.yg)("inlineCode",{parentName:"li"},"./src/redux"),"."),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("inlineCode",{parentName:"li"},"applyReduxThunk"),": if true, apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware to the store, if false, don't apply ",(0,o.yg)("inlineCode",{parentName:"li"},"redux-thunk")," middleware, default is true.")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fea5ad44.d69a8c1c.js b/assets/js/fea5ad44.d69a8c1c.js new file mode 100644 index 0000000..704ff0a --- /dev/null +++ b/assets/js/fea5ad44.d69a8c1c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[6385],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>g});var l=t(6540);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);r&&(l=l.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function o(e,r){if(null==e)return{};var t,l,n=function(e,r){if(null==e)return{};var t,l,n={},a=Object.keys(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l<a.length;l++)t=a[l],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var c=l.createContext({}),u=function(e){var r=l.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=u(e.components);return l.createElement(c.Provider,{value:r},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return l.createElement(l.Fragment,{},r)}},m=l.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=u(t),m=n,g=s["".concat(c,".").concat(m)]||s[m]||p[m]||a;return t?l.createElement(g,i(i({ref:r},d),{},{components:t})):l.createElement(g,i({ref:r},d))}));function g(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=m;var o={};for(var c in r)hasOwnProperty.call(r,c)&&(o[c]=r[c]);o.originalType=e,o[s]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<a;u++)i[u]=t[u];return l.createElement.apply(null,i)}return l.createElement.apply(null,t)}m.displayName="MDXCreateElement"},1174:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var l=t(9668),n=(t(6540),t(5680));const a={sidebar_position:5},i="Delete Redux",o={unversionedId:"delete/delete-redux",id:"version-2.6.0/delete/delete-redux",title:"Delete Redux",description:"To delete a redux implementation run:",source:"@site/versioned_docs/version-2.6.0/delete/delete-redux.md",sourceDirName:"delete",slug:"/delete/delete-redux",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-redux",draft:!1,tags:[],version:"2.6.0",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Delete Navigations",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-navigations"},next:{title:"Delete Configuration",permalink:"/react-native-help-create/docs/2.6.0/delete/delete-configuration"}},c={},u=[{value:"Delete a reducer",id:"delete-a-reducer",level:2},{value:"Delete multiple reducers",id:"delete-multiple-reducers",level:2},{value:"Delete all reducers",id:"delete-all-reducers",level:2},{value:"Delete an action",id:"delete-an-action",level:2},{value:"Delete multiple actions",id:"delete-multiple-actions",level:2},{value:"Delete all actions for a specific reducer",id:"delete-all-actions-for-a-specific-reducer",level:2}],d={toc:u};function s(e){let{components:r,...t}=e;return(0,n.yg)("wrapper",(0,l.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"delete-redux"},"Delete Redux"),(0,n.yg)("p",null,"To delete a redux implementation run:"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete -r\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"This will delete the ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," folder under ",(0,n.yg)("inlineCode",{parentName:"p"},"src/")," with all of its files and subfolders.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},"If ",(0,n.yg)("inlineCode",{parentName:"p"},"redux")," does not exist, ",(0,n.yg)("inlineCode",{parentName:"p"},"rnhc")," will prompt:"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"src/redux/ does not exist\n")),(0,n.yg)("h1",{id:"reducers"},"Reducers"),(0,n.yg)("h2",{id:"delete-a-reducer"},"Delete a reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete a reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"This will delete the existed reducer under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder, if not ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/reducers/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the ",(0,n.yg)("inlineCode",{parentName:"li"},"index.js")," file under ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/reducer/")," folder to remove it from the import list as well as from the ",(0,n.yg)("inlineCode",{parentName:"li"},"combineReducers")," function.")),(0,n.yg)("h2",{id:"delete-multiple-reducers"},"Delete multiple reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple reducers at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-reducers"},"Delete all reducers"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all reducers run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --reducer\n")),(0,n.yg)("h1",{id:"actions"},"Actions"),(0,n.yg)("h2",{id:"delete-an-action"},"Delete an action"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete an action run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name>\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"If the reducer does not exist, ",(0,n.yg)("inlineCode",{parentName:"li"},"rnhc")," will prompt the following:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"./src/redux/actions/<reducer-name>/ does not exist\n")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the ",(0,n.yg)("inlineCode",{parentName:"li"},"src/redux/index.ts"),".")),(0,n.yg)("h2",{id:"delete-multiple-actions"},"Delete multiple actions"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"You can even delete multiple actions for a specific reducer at once:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...\n")),(0,n.yg)("h2",{id:"delete-all-actions-for-a-specific-reducer"},"Delete all actions for a specific reducer"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"To delete all actions for a specific reducer run:")),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc delete --action <reducer-name>\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/feab8900.e80a5c35.js b/assets/js/feab8900.e80a5c35.js new file mode 100644 index 0000000..0d9e3c8 --- /dev/null +++ b/assets/js/feab8900.e80a5c35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[3092],{5680:(e,n,a)=>{a.d(n,{xA:()=>p,yg:()=>u});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function i(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function s(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?i(Object(a),!0).forEach((function(n){r(e,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))}))}return e}function o(e,n){if(null==e)return{};var a,t,r=function(e,n){if(null==e)return{};var a,t,r={},i=Object.keys(e);for(t=0;t<i.length;t++)a=i[t],n.indexOf(a)>=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)a=i[t],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=t.createContext({}),c=function(e){var n=t.useContext(l),a=n;return e&&(a="function"==typeof e?e(n):s(s({},n),e)),a},p=function(e){var n=c(e.components);return t.createElement(l.Provider,{value:n},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},m=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),g=c(a),m=r,u=g["".concat(l,".").concat(m)]||g[m]||d[m]||i;return a?t.createElement(u,s(s({ref:n},p),{},{components:a})):t.createElement(u,s({ref:n},p))}));function u(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=a.length,s=new Array(i);s[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[g]="string"==typeof e?e:r,s[1]=o;for(var c=2;c<i;c++)s[c]=a[c];return t.createElement.apply(null,s)}return t.createElement.apply(null,a)}m.displayName="MDXCreateElement"},1999:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var t=a(9668),r=(a(6540),a(5680));const i={sidebar_position:4},s="Create Navigations",o={unversionedId:"create/create-navigations",id:"version-2.5.1/create/create-navigations",title:"Create Navigations",description:"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.",source:"@site/versioned_docs/version-2.5.1/create/create-navigations.md",sourceDirName:"create",slug:"/create/create-navigations",permalink:"/react-native-help-create/docs/2.5.1/create/create-navigations",draft:!1,tags:[],version:"2.5.1",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Create Screens",permalink:"/react-native-help-create/docs/2.5.1/create/create-screens"},next:{title:"Using Templates",permalink:"/react-native-help-create/docs/2.5.1/create/using-templates"}},l={},c=[{value:"Create Navigation for specific screens",id:"create-navigation-for-specific-screens",level:2},{value:"Example",id:"example",level:3},{value:"Create Navigation for specific screens in a specific folder",id:"create-navigation-for-specific-screens-in-a-specific-folder",level:2},{value:"Example",id:"example-1",level:3},{value:"Create Navigation that depends on other navigations",id:"create-navigation-that-depends-on-other-navigations",level:2},{value:"Example",id:"example-2",level:3},{value:"Create Navigation for all screens",id:"create-navigation-for-all-screens",level:2}],p={toc:c};function g(e){let{components:n,...a}=e;return(0,r.yg)("wrapper",(0,t.A)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"create-navigations"},"Create Navigations"),(0,r.yg)("p",null,"Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation."),(0,r.yg)("h2",{id:"create-navigation-for-specific-screens"},"Create Navigation for specific screens"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation between two or more screens, simply run:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The ",(0,r.yg)("inlineCode",{parentName:"p"},"<navigation-type>")," can be either of these types: ",(0,r.yg)("inlineCode",{parentName:"p"},"stack"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"native-stack"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"drawer"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"bottom-tabs"),", ",(0,r.yg)("inlineCode",{parentName:"p"},"material-bottom-tabs")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"material-top-tabs"),".")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"The number of given screens should be 2 or more.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If one of the screens does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will try to create the ",(0,r.yg)("inlineCode",{parentName:"p"},"navigation.jsx")," file that resides next to the existed screens.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"If all screens does not exist, ",(0,r.yg)("inlineCode",{parentName:"p"},"rhnc")," will prompt you the following:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"None of these screens exist\n")),(0,r.yg)("h3",{id:"example"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack screen-1 screen-2\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create a ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file next to ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-1")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-2")," screens as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-1\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-2\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The content for the ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file is as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport Screen1Screen from "./screen-1";\nimport Screen2Screen from "./screen-2";\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,r.yg)("h2",{id:"create-navigation-for-specific-screens-in-a-specific-folder"},"Create Navigation for specific screens in a specific folder"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation file for screens that resides in a specific path under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create the ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file under the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/<folder-path>/")," folder for the screens that resides in the same location.")),(0,r.yg)("h3",{id:"example-1"},"Example"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rhnc create -n drawer screen-1 screen-2 -f foo/bar\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file under ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/foo/bar/")," folder which contains the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport Screen1Screen from "./screen-1";\nimport Screen2Screen from "./screen-2";\n\nconst routes = [\n {\n name: "screen-1",\n component: Screen1Screen,\n },\n {\n name: "screen-2",\n component: Screen2Screen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,r.yg)("h2",{id:"create-navigation-that-depends-on-other-navigations"},"Create Navigation that depends on other navigations"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation that depends on another navigation you can run the same command as this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file that resides in the same location for the given inputs.")),(0,r.yg)("h3",{id:"example-2"},"Example"),(0,r.yg)("p",null,"In this example, we have the following structure:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("p",null,"Where we have a drawer navigation between ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-one")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-two")," under the ",(0,r.yg)("inlineCode",{parentName:"p"},"folder")," folder. And we want to create a stack navigation between ",(0,r.yg)("inlineCode",{parentName:"p"},"folder")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-three"),". And to show that ",(0,r.yg)("inlineCode",{parentName:"p"},"rnhc")," will continue to run for the existed screens we added in the command line ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-four")," which does not exist as the following:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack folder screen-three screen-four\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"The command will output the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/screens/screen-four/ does not exist\nsrc/screens/navigation.jsx created\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And it will add a new ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," that resides between ",(0,r.yg)("inlineCode",{parentName:"li"},"folder")," and ",(0,r.yg)("inlineCode",{parentName:"li"},"screen-three")," as the following:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 navigation.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"And the content of the new ",(0,r.yg)("inlineCode",{parentName:"li"},"navigation.jsx")," file will be like this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-jsx"},'import { createStackNavigator } from "@react-navigation/stack";\nconst { Navigator, Screen } = createStackNavigator();\n\nimport FolderNavigation from "./folder/navigation";\nimport ScreenThreeScreen from "./screen-three";\n\nconst routes = [\n {\n name: "folder",\n component: FolderNavigation,\n },\n {\n name: "screen-three",\n component: ScreenThreeScreen,\n },\n];\n\nconst Navigation = () => {\n return (\n <Navigator>\n {routes.map(({ name, component }) => (\n <Screen key={name} name={name} component={component} />\n ))}\n </Navigator>\n );\n};\nexport default Navigation;\n')),(0,r.yg)("h2",{id:"create-navigation-for-all-screens"},"Create Navigation for all screens"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"To create a navigation file for multiple screens that resides at the root of the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder, you can run this:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"This will create the navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"li"},"src/screens/")," folder.")),(0,r.yg)("p",null,"You can also run this command to create a navigation file for multiple screens that resides in a specific path under the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n <navigation-type> -f <folder-path>\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This will create the navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/<folder-path>/")," folder.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"This also work for the nested navigations.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},"All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"src/\n\u2514\u2500\u2500 screens\n \u251c\u2500\u2500 folder\n \u2502\xa0\xa0 \u251c\u2500\u2500 screen-one\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2502\xa0\xa0 \u2514\u2500\u2500 screen-two\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u251c\u2500\u2500 navigation.jsx\n \u251c\u2500\u2500 screen-four\n \u2502\xa0\xa0 \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u2502\xa0\xa0 \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u2502\xa0\xa0 \u251c\u2500\u2500 index.jsx\n \u2502\xa0\xa0 \u2514\u2500\u2500 styles.js\n \u2514\u2500\u2500 screen-three\n \u251c\u2500\u2500 __tests__\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.spec.jsx\n \u251c\u2500\u2500 functions\n \u2502\xa0\xa0 \u2514\u2500\u2500 index.js\n \u251c\u2500\u2500 index.jsx\n \u2514\u2500\u2500 styles.js\n")),(0,r.yg)("p",null,"When you try to create a navigation like this:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack\n")),(0,r.yg)("p",null,"It will output the following:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"./src/screens/folder/navigation.jsx does not exist\n./src/screens/navigation.jsx created\n")),(0,r.yg)("p",null,"And the ",(0,r.yg)("inlineCode",{parentName:"p"},"./src/screens/navigation.jsx")," file will only contain ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-three")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"screen-four")," because the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/folder")," does not contain a navigation file."),(0,r.yg)("p",null,"So if you want to create a navigation file for all existed screens in the ",(0,r.yg)("inlineCode",{parentName:"p"},"src/screens/")," folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one."),(0,r.yg)("p",null,"By updating it means overwriting in other words, so you can just do this:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-sh"},"rnhc create -n stack -o\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff4a0856.6dc84f9d.js b/assets/js/ff4a0856.6dc84f9d.js new file mode 100644 index 0000000..5d10a98 --- /dev/null +++ b/assets/js/ff4a0856.6dc84f9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[9719],{1188:e=>{e.exports=JSON.parse('{"label":"docusaurus","permalink":"/react-native-help-create/blog/tags/docusaurus","allTagsPath":"/react-native-help-create/blog/tags","count":4}')}}]); \ No newline at end of file diff --git a/assets/js/ff79eae6.802736eb.js b/assets/js/ff79eae6.802736eb.js new file mode 100644 index 0000000..0e2874c --- /dev/null +++ b/assets/js/ff79eae6.802736eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8084],{2814:e=>{e.exports=JSON.parse('{"label":"hello","permalink":"/react-native-help-create/blog/tags/hello","allTagsPath":"/react-native-help-create/blog/tags","count":2}')}}]); \ No newline at end of file diff --git a/assets/js/main.e0dd02d9.js b/assets/js/main.e0dd02d9.js new file mode 100644 index 0000000..8e01a22 --- /dev/null +++ b/assets/js/main.e0dd02d9.js @@ -0,0 +1,2 @@ +/*! For license information please see main.e0dd02d9.js.LICENSE.txt */ +(self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[]).push([[8792],{9188:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(6540);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),a=n(9668),o=n(3259),i=n.n(o),l=n(4054);const c={"0093adb5":[()=>Promise.all([n.e(1869),n.e(1553),n.e(2443)]).then(n.bind(n,1133)),"@site/docs/notes.mdx",1133],"010256eb":[()=>n.e(7084).then(n.bind(n,5463)),"@site/versioned_docs/version-2.5.1/create/intro.md",5463],"0110d8c5":[()=>n.e(8385).then(n.bind(n,731)),"@site/versioned_docs/version-2.3.4/delete/intro.md",731],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9158)),"@theme/BlogTagsListPage",9158],"03d65c99":[()=>n.e(8120).then(n.bind(n,8580)),"@site/versioned_docs/version-2.6.0/create/create-components.md",8580],"0471b42f":[()=>n.e(5593).then(n.bind(n,1533)),"@site/versioned_docs/version-2.5.1/notes.md",1533],"05f2ec11":[()=>n.e(7748).then(n.bind(n,4682)),"@site/versioned_docs/version-2.5.1/create/using-configuration.md",4682],"080cd42f":[()=>n.e(1548).then(n.t.bind(n,915,19)),"~blog/default/react-native-help-create-blog-tags-tags-e49.json",915],"09bedf3b":[()=>n.e(1312).then(n.bind(n,4299)),"@site/versioned_docs/version-2.5.1/create/using-templates.md",4299],"0acbe1f8":[()=>n.e(6869).then(n.t.bind(n,8469,19)),"~blog/default/react-native-help-create-blog-tags-hola-b5f.json",8469],"0d2b0ba6":[()=>n.e(7776).then(n.bind(n,8815)),"@site/versioned_docs/version-2.3.4/combine/combine-components.md",8815],"0eaa31cb":[()=>n.e(1447).then(n.bind(n,26)),"@site/versioned_docs/version-2.3.4/combine/combine-screens.md",26],"10504b84":[()=>n.e(2681).then(n.bind(n,769)),"@site/docs/create/intro.md",769],"1092b69f":[()=>n.e(3912).then(n.bind(n,4932)),"@site/versioned_docs/version-2.6.0/create/create-redux.md",4932],"11cb2c20":[()=>n.e(2513).then(n.bind(n,7269)),"@site/versioned_docs/version-2.5.1/delete/delete-navigations.md",7269],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,4136)),"@theme/DocCategoryGeneratedIndexPage",4136],17896441:[()=>Promise.all([n.e(1869),n.e(1553),n.e(9551),n.e(8401)]).then(n.bind(n,4799)),"@theme/DocItem",4799],"19152fe9":[()=>n.e(4797).then(n.bind(n,6490)),"@site/docs/combine/intro.md",6490],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,4604)),"@theme/SearchPage",4604],"1be78505":[()=>Promise.all([n.e(1869),n.e(8714)]).then(n.bind(n,10)),"@theme/DocPage",10],"1dc6b685":[()=>n.e(3414).then(n.bind(n,9610)),"@site/versioned_docs/version-2.5.1/intro.md",9610],"1df93b7f":[()=>Promise.all([n.e(1869),n.e(4583)]).then(n.bind(n,5579)),"@site/src/pages/index.tsx",5579],"1f05f735":[()=>n.e(6550).then(n.bind(n,5360)),"@site/versioned_docs/version-2.3.4/delete/delete-navigations.md",5360],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(1553),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"1fa58c83":[()=>n.e(832).then(n.bind(n,7546)),"@site/versioned_docs/version-2.3.4/delete/delete-screens.md",7546],21584035:[()=>Promise.all([n.e(1869),n.e(1553),n.e(2223)]).then(n.bind(n,413)),"@site/docs/create/create-redux.mdx",413],25116770:[()=>n.e(2294).then(n.bind(n,8629)),"@site/versioned_docs/version-2.3.4/getting-started.md",8629],"2e8452ff":[()=>n.e(7537).then(n.bind(n,2393)),"@site/versioned_docs/version-2.6.0/combine/combine-screens.md",2393],"300bd883":[()=>n.e(9847).then(n.bind(n,9973)),"@site/versioned_docs/version-2.3.4/delete/delete-configuration.md",9973],"3021cf83":[()=>Promise.all([n.e(1869),n.e(1553),n.e(2857)]).then(n.bind(n,3418)),"@site/docs/getting-started.mdx",3418],"30c671dd":[()=>n.e(7485).then(n.bind(n,337)),"@site/versioned_docs/version-2.3.4/create/using-configuration.md",337],"3355fecc":[()=>n.e(6774).then(n.bind(n,9259)),"@site/versioned_docs/version-2.3.4/create/create-redux.md",9259],"3607ff89":[()=>n.e(3458).then(n.bind(n,3129)),"@site/versioned_docs/version-2.6.0/create/using-templates.md",3129],"36ebbe5d":[()=>n.e(1057).then(n.bind(n,8811)),"@site/versioned_docs/version-2.6.0/create/create-screens.md",8811],"374bac64":[()=>n.e(3785).then(n.t.bind(n,9413,19)),"~docs/default/category-react-native-help-createdocs-tutorialsidebar-category-delete-3b1.json",9413],39362015:[()=>n.e(2860).then(n.bind(n,844)),"@site/docs/create/using-configuration.md",844],"393be207":[()=>n.e(4134).then(n.bind(n,1509)),"@site/src/pages/markdown-page.md",1509],"3ca5a089":[()=>n.e(3937).then(n.bind(n,6026)),"@site/docs/delete/intro.md",6026],"427447cf":[()=>n.e(7544).then(n.bind(n,2269)),"@site/docs/delete/delete-screens.md",2269],"4316656d":[()=>n.e(1024).then(n.t.bind(n,157,19)),"~docs/default/category-react-native-help-createdocs-251-tutorialsidebar-category-combine-355.json",157],"43cefd7b":[()=>n.e(7801).then(n.bind(n,5450)),"@site/docs/delete/delete-configuration.md",5450],"477cf694":[()=>n.e(7069).then(n.t.bind(n,4074,19)),"~docs/default/category-react-native-help-createdocs-260-tutorialsidebar-category-create-704.json",4074],"487aa75b":[()=>n.e(554).then(n.bind(n,869)),"@site/versioned_docs/version-2.6.0/delete/delete-screens.md",869],"4df3b9a3":[()=>n.e(9609).then(n.t.bind(n,1966,19)),"/home/runner/work/react-native-help-create/react-native-help-create/website-docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"4e2af7f7":[()=>n.e(9157).then(n.bind(n,5728)),"@site/versioned_docs/version-2.5.1/delete/delete-redux.md",5728],"5200e86b":[()=>n.e(6965).then(n.bind(n,3772)),"@site/versioned_docs/version-2.5.1/combine/intro.md",3772],"5350a6b5":[()=>n.e(9062).then(n.bind(n,130)),"@site/versioned_docs/version-2.6.0/combine/intro.md",130],"55e5eb89":[()=>n.e(3703).then(n.t.bind(n,5401,19)),"~blog/default/react-native-help-create-blog-tags-facebook-665.json",5401],"560a2a04":[()=>n.e(7088).then(n.bind(n,5618)),"@site/versioned_docs/version-2.6.0/delete/intro.md",5618],"561f7ff9":[()=>n.e(507).then(n.bind(n,7672)),"@site/versioned_docs/version-2.5.1/delete/delete-components.md",7672],"59036d2a":[()=>n.e(211).then(n.bind(n,8712)),"@site/versioned_docs/version-2.3.4/notes.md",8712],59362658:[()=>n.e(9325).then(n.bind(n,4661)),"@site/blog/2021-08-01-mdx-blog-post.mdx",4661],"5db32b5f":[()=>n.e(9964).then(n.bind(n,7275)),"@site/versioned_docs/version-2.5.1/combine/combine-screens.md",7275],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"61279b62":[()=>n.e(4236).then(n.bind(n,1665)),"@site/versioned_docs/version-2.6.0/create/create-navigations.md",1665],"6494072b":[()=>n.e(5681).then(n.bind(n,9393)),"@site/docs/delete/delete-redux.md",9393],"649dc010":[()=>n.e(2704).then(n.bind(n,8408)),"@site/versioned_docs/version-2.3.4/create/using-templates.md",8408],"66dff133":[()=>n.e(8828).then(n.bind(n,590)),"@site/versioned_docs/version-2.5.1/create/create-redux.md",590],"6875c492":[()=>Promise.all([n.e(1869),n.e(1553),n.e(9551),n.e(8382),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"696b3c19":[()=>n.e(1172).then(n.bind(n,6055)),"@site/versioned_docs/version-2.6.0/delete/delete-navigations.md",6055],"6c6d6f25":[()=>n.e(7403).then(n.t.bind(n,4777,19)),"~docs/default/category-react-native-help-createdocs-234-tutorialsidebar-category-delete-729.json",4777],"6ccd978f":[()=>n.e(3673).then(n.bind(n,8290)),"@site/versioned_docs/version-2.6.0/combine/combine-components.md",8290],"6f6b9ffc":[()=>n.e(6071).then(n.t.bind(n,3940,19)),"~docs/default/category-react-native-help-createdocs-tutorialsidebar-category-create-c49.json",3940],"73664a40":[()=>n.e(1972).then(n.bind(n,2656)),"@site/blog/2019-05-29-long-blog-post.md",2656],"7661071f":[()=>n.e(8737).then(n.bind(n,6792)),"@site/blog/2021-08-26-welcome/index.md?truncated=true",6792],"798076fc":[()=>n.e(5841).then(n.bind(n,538)),"@site/docs/combine/combine-components.md",538],"7a7b6871":[()=>Promise.all([n.e(1869),n.e(1553),n.e(8830)]).then(n.bind(n,4418)),"@site/docs/create/create-navigations.mdx",4418],"7e12dd04":[()=>n.e(478).then(n.bind(n,616)),"@site/versioned_docs/version-2.3.4/create/intro.md",616],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"81accc15":[()=>n.e(5330).then(n.t.bind(n,4061,19)),"/home/runner/work/react-native-help-create/react-native-help-create/website-docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],"8717b14a":[()=>n.e(3694).then(n.bind(n,8540)),"@site/blog/2019-05-29-long-blog-post.md?truncated=true",8540],"894e2d1e":[()=>n.e(275).then(n.t.bind(n,878,19)),"~docs/default/version-2-5-1-metadata-prop-606.json",878],"8999aea9":[()=>n.e(8080).then(n.bind(n,6772)),"@site/versioned_docs/version-2.5.1/getting-started.md",6772],"8a1c58e2":[()=>n.e(6600).then(n.t.bind(n,6285,19)),"~docs/default/category-react-native-help-createdocs-234-tutorialsidebar-category-create-302.json",6285],"8a7573ce":[()=>n.e(9364).then(n.bind(n,425)),"@site/versioned_docs/version-2.6.0/create/intro.md",425],"8aba8e7d":[()=>n.e(7805).then(n.bind(n,3944)),"@site/versioned_docs/version-2.5.1/delete/delete-configuration.md",3944],"8dd3a095":[()=>n.e(1481).then(n.bind(n,6311)),"@site/versioned_docs/version-2.5.1/delete/delete-screens.md",6311],"8e0033f8":[()=>n.e(8750).then(n.t.bind(n,3110,19)),"~blog/default/react-native-help-create-blog-tags-docusaurus-92b-list.json",3110],"925b3f96":[()=>n.e(8609).then(n.bind(n,7495)),"@site/blog/2019-05-28-first-blog-post.md?truncated=true",7495],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],a191ded7:[()=>n.e(6817).then(n.t.bind(n,2945,19)),"/home/runner/work/react-native-help-create/react-native-help-create/website-docs/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",2945],a436d11f:[()=>n.e(1163).then(n.bind(n,5055)),"@site/docs/delete/delete-navigations.md",5055],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(1553),n.e(9551),n.e(8382),n.e(7643)]).then(n.bind(n,7785)),"@theme/BlogListPage",7785],a8af8446:[()=>n.e(7519).then(n.bind(n,3276)),"@site/versioned_docs/version-2.3.4/create/create-screens.md",3276],aca5172c:[()=>n.e(4672).then(n.t.bind(n,3397,19)),"~blog/default/react-native-help-create-blog-tags-hello-518-list.json",3397],acf1a8e6:[()=>n.e(9978).then(n.bind(n,7439)),"@site/versioned_docs/version-2.6.0/notes.md",7439],b2d63eab:[()=>n.e(5076).then(n.t.bind(n,7757,19)),"/home/runner/work/react-native-help-create/react-native-help-create/website-docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7757],b40c2fb5:[()=>n.e(4929).then(n.t.bind(n,9577,19)),"~docs/default/category-react-native-help-createdocs-234-tutorialsidebar-category-combine-df6.json",9577],b4c9f6d8:[()=>n.e(2789).then(n.bind(n,6445)),"@site/versioned_docs/version-2.5.1/create/create-screens.md",6445],b7866efb:[()=>n.e(6519).then(n.t.bind(n,4955,19)),"~docs/default/version-2-3-4-metadata-prop-7a4.json",4955],b7c5fcf6:[()=>n.e(6795).then(n.bind(n,8807)),"@site/versioned_docs/version-2.3.4/intro.md",8807],be05523b:[()=>n.e(9311).then(n.bind(n,3982)),"@site/versioned_docs/version-2.3.4/create/create-navigations.md",3982],bff7cbd0:[()=>n.e(473).then(n.bind(n,2337)),"@site/docs/create/using-templates.md",2337],c0debe47:[()=>n.e(1047).then(n.bind(n,498)),"@site/versioned_docs/version-2.6.0/delete/delete-configuration.md",498],c11e5137:[()=>n.e(7357).then(n.bind(n,2750)),"@site/docs/delete/delete-components.md",2750],c14765b5:[()=>n.e(7248).then(n.bind(n,8726)),"@site/versioned_docs/version-2.6.0/delete/delete-components.md",8726],c298cc3c:[()=>n.e(759).then(n.bind(n,9249)),"@site/docs/combine/combine-screens.md",9249],c3201987:[()=>n.e(6758).then(n.t.bind(n,4712,19)),"~blog/default/react-native-help-create-blog-tags-facebook-665-list.json",4712],c48ecffd:[()=>n.e(3142).then(n.t.bind(n,8532,19)),"~blog/default/react-native-help-create-blog-tags-hola-b5f-list.json",8532],ccc49370:[()=>Promise.all([n.e(1869),n.e(1553),n.e(9551),n.e(8382),n.e(3249)]).then(n.bind(n,4029)),"@theme/BlogPostPage",4029],cf6f483b:[()=>n.e(9023).then(n.bind(n,2916)),"@site/versioned_docs/version-2.5.1/combine/combine-components.md",2916],cfff384b:[()=>n.e(3735).then(n.t.bind(n,2405,19)),"~blog/default/react-native-help-create-blog-8b0.json",2405],d70a8b9c:[()=>n.e(399).then(n.bind(n,9358)),"@site/versioned_docs/version-2.6.0/getting-started.md",9358],d91b870f:[()=>n.e(3150).then(n.bind(n,9124)),"@site/versioned_docs/version-2.6.0/intro.md",9124],d9d437a8:[()=>n.e(4883).then(n.t.bind(n,6542,19)),"~docs/default/category-react-native-help-createdocs-251-tutorialsidebar-category-delete-e76.json",6542],d9e3fcc8:[()=>n.e(9654).then(n.bind(n,1656)),"@site/versioned_docs/version-2.5.1/delete/intro.md",1656],d9f32620:[()=>n.e(5557).then(n.bind(n,6460)),"@site/blog/2021-08-26-welcome/index.md",6460],db5af1ce:[()=>n.e(1504).then(n.bind(n,4270)),"@site/versioned_docs/version-2.5.1/create/create-components.md",4270],e273c56f:[()=>n.e(9328).then(n.bind(n,9317)),"@site/blog/2019-05-28-first-blog-post.md",9317],e680db30:[()=>n.e(2505).then(n.t.bind(n,1110,19)),"~docs/default/version-2-6-0-metadata-prop-3d9.json",1110],e69809d4:[()=>n.e(6368).then(n.t.bind(n,6258,19)),"~docs/default/category-react-native-help-createdocs-251-tutorialsidebar-category-create-f85.json",6258],ed086f67:[()=>Promise.all([n.e(1869),n.e(1553),n.e(9757)]).then(n.bind(n,2283)),"@site/docs/create/create-screens.mdx",2283],ef7bddec:[()=>n.e(3293).then(n.t.bind(n,4209,19)),"~docs/default/category-react-native-help-createdocs-260-tutorialsidebar-category-combine-ce1.json",4209],effad21f:[()=>n.e(5910).then(n.t.bind(n,1066,19)),"~docs/default/category-react-native-help-createdocs-tutorialsidebar-category-combine-8ef.json",1066],f042d6b5:[()=>n.e(890).then(n.bind(n,3599)),"@site/versioned_docs/version-2.3.4/delete/delete-components.md",3599],f1bdf090:[()=>Promise.all([n.e(1869),n.e(1553),n.e(5163)]).then(n.bind(n,8458)),"@site/docs/create/create-components.mdx",8458],f29d18fc:[()=>n.e(9706).then(n.bind(n,269)),"@site/versioned_docs/version-2.3.4/combine/intro.md",269],f4f34a3a:[()=>n.e(3637).then(n.bind(n,5111)),"@site/blog/2021-08-01-mdx-blog-post.mdx?truncated=true",5111],f7ba0a2e:[()=>n.e(4155).then(n.t.bind(n,8637,19)),"~docs/default/category-react-native-help-createdocs-260-tutorialsidebar-category-delete-fa2.json",8637],f8409a7e:[()=>Promise.all([n.e(1869),n.e(1553),n.e(6903)]).then(n.bind(n,7532)),"@site/docs/intro.mdx",7532],fa9d45bc:[()=>n.e(6155).then(n.bind(n,897)),"@site/versioned_docs/version-2.3.4/delete/delete-redux.md",897],fb61dd4c:[()=>n.e(2219).then(n.t.bind(n,7597,19)),"~blog/default/react-native-help-create-blog-archive-564.json",7597],fbed3bcb:[()=>n.e(8524).then(n.bind(n,3225)),"@site/versioned_docs/version-2.3.4/create/create-components.md",3225],fcaff347:[()=>n.e(4253).then(n.bind(n,9028)),"@site/versioned_docs/version-2.6.0/create/using-configuration.md",9028],fea5ad44:[()=>n.e(6385).then(n.bind(n,1174)),"@site/versioned_docs/version-2.6.0/delete/delete-redux.md",1174],feab8900:[()=>n.e(3092).then(n.bind(n,1999)),"@site/versioned_docs/version-2.5.1/create/create-navigations.md",1999],ff4a0856:[()=>n.e(9719).then(n.t.bind(n,1188,19)),"~blog/default/react-native-help-create-blog-tags-docusaurus-92b.json",1188],ff79eae6:[()=>n.e(8084).then(n.t.bind(n,2814,19)),"~blog/default/react-native-help-create-blog-tags-hello-518.json",2814]};function s(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(6921),d=n(3102);function p(e,t){if("*"===e)return i()({loading:s,loader:()=>n.e(1774).then(n.bind(n,1774)),modules:["@theme/NotFound"],webpack:()=>[1774],render(e,t){const n=e.default;return r.createElement(d.W,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],p={},f=[],m=[],h=(0,u.A)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=c[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:s,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const c=i.__context;return delete i.__context,r.createElement(d.W,{value:c},r.createElement(l,(0,a.A)({},i,n)))}})}const f=[{path:"/react-native-help-create/blog",component:p("/react-native-help-create/blog","4ee"),exact:!0},{path:"/react-native-help-create/blog/archive",component:p("/react-native-help-create/blog/archive","be2"),exact:!0},{path:"/react-native-help-create/blog/first-blog-post",component:p("/react-native-help-create/blog/first-blog-post","ecc"),exact:!0},{path:"/react-native-help-create/blog/long-blog-post",component:p("/react-native-help-create/blog/long-blog-post","d57"),exact:!0},{path:"/react-native-help-create/blog/mdx-blog-post",component:p("/react-native-help-create/blog/mdx-blog-post","706"),exact:!0},{path:"/react-native-help-create/blog/tags",component:p("/react-native-help-create/blog/tags","44d"),exact:!0},{path:"/react-native-help-create/blog/tags/docusaurus",component:p("/react-native-help-create/blog/tags/docusaurus","2ba"),exact:!0},{path:"/react-native-help-create/blog/tags/facebook",component:p("/react-native-help-create/blog/tags/facebook","878"),exact:!0},{path:"/react-native-help-create/blog/tags/hello",component:p("/react-native-help-create/blog/tags/hello","3c9"),exact:!0},{path:"/react-native-help-create/blog/tags/hola",component:p("/react-native-help-create/blog/tags/hola","765"),exact:!0},{path:"/react-native-help-create/blog/welcome",component:p("/react-native-help-create/blog/welcome","5ad"),exact:!0},{path:"/react-native-help-create/markdown-page",component:p("/react-native-help-create/markdown-page","ec9"),exact:!0},{path:"/react-native-help-create/search",component:p("/react-native-help-create/search","b06"),exact:!0},{path:"/react-native-help-create/docs/2.3.4",component:p("/react-native-help-create/docs/2.3.4","a20"),routes:[{path:"/react-native-help-create/docs/2.3.4/category/combine",component:p("/react-native-help-create/docs/2.3.4/category/combine","8b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/category/create",component:p("/react-native-help-create/docs/2.3.4/category/create","e0b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/category/delete",component:p("/react-native-help-create/docs/2.3.4/category/delete","8c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/combine/combine-components",component:p("/react-native-help-create/docs/2.3.4/combine/combine-components","01d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/combine/combine-screens",component:p("/react-native-help-create/docs/2.3.4/combine/combine-screens","eac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/combine/intro",component:p("/react-native-help-create/docs/2.3.4/combine/intro","195"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/create-components",component:p("/react-native-help-create/docs/2.3.4/create/create-components","789"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/create-navigations",component:p("/react-native-help-create/docs/2.3.4/create/create-navigations","850"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/create-redux",component:p("/react-native-help-create/docs/2.3.4/create/create-redux","653"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/create-screens",component:p("/react-native-help-create/docs/2.3.4/create/create-screens","37d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/intro",component:p("/react-native-help-create/docs/2.3.4/create/intro","44d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/using-configuration",component:p("/react-native-help-create/docs/2.3.4/create/using-configuration","c34"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/create/using-templates",component:p("/react-native-help-create/docs/2.3.4/create/using-templates","b4e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/delete/delete-components",component:p("/react-native-help-create/docs/2.3.4/delete/delete-components","39f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/delete/delete-configuration",component:p("/react-native-help-create/docs/2.3.4/delete/delete-configuration","f1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/delete/delete-navigations",component:p("/react-native-help-create/docs/2.3.4/delete/delete-navigations","c2b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/delete/delete-redux",component:p("/react-native-help-create/docs/2.3.4/delete/delete-redux","3b3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/delete/delete-screens",component:p("/react-native-help-create/docs/2.3.4/delete/delete-screens","050"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/delete/intro",component:p("/react-native-help-create/docs/2.3.4/delete/intro","65b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/getting-started",component:p("/react-native-help-create/docs/2.3.4/getting-started","3b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/intro",component:p("/react-native-help-create/docs/2.3.4/intro","cc6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.3.4/notes",component:p("/react-native-help-create/docs/2.3.4/notes","7dc"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/react-native-help-create/docs/2.5.1",component:p("/react-native-help-create/docs/2.5.1","aa9"),routes:[{path:"/react-native-help-create/docs/2.5.1/category/combine",component:p("/react-native-help-create/docs/2.5.1/category/combine","501"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/category/create",component:p("/react-native-help-create/docs/2.5.1/category/create","8e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/category/delete",component:p("/react-native-help-create/docs/2.5.1/category/delete","a3a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/combine/combine-components",component:p("/react-native-help-create/docs/2.5.1/combine/combine-components","7f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/combine/combine-screens",component:p("/react-native-help-create/docs/2.5.1/combine/combine-screens","7f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/combine/intro",component:p("/react-native-help-create/docs/2.5.1/combine/intro","52d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/create-components",component:p("/react-native-help-create/docs/2.5.1/create/create-components","92e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/create-navigations",component:p("/react-native-help-create/docs/2.5.1/create/create-navigations","3b1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/create-redux",component:p("/react-native-help-create/docs/2.5.1/create/create-redux","5cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/create-screens",component:p("/react-native-help-create/docs/2.5.1/create/create-screens","669"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/intro",component:p("/react-native-help-create/docs/2.5.1/create/intro","9b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/using-configuration",component:p("/react-native-help-create/docs/2.5.1/create/using-configuration","46c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/create/using-templates",component:p("/react-native-help-create/docs/2.5.1/create/using-templates","5f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/delete/delete-components",component:p("/react-native-help-create/docs/2.5.1/delete/delete-components","437"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/delete/delete-configuration",component:p("/react-native-help-create/docs/2.5.1/delete/delete-configuration","bd6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/delete/delete-navigations",component:p("/react-native-help-create/docs/2.5.1/delete/delete-navigations","7c4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/delete/delete-redux",component:p("/react-native-help-create/docs/2.5.1/delete/delete-redux","dc1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/delete/delete-screens",component:p("/react-native-help-create/docs/2.5.1/delete/delete-screens","6a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/delete/intro",component:p("/react-native-help-create/docs/2.5.1/delete/intro","acd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/getting-started",component:p("/react-native-help-create/docs/2.5.1/getting-started","2ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/intro",component:p("/react-native-help-create/docs/2.5.1/intro","787"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.5.1/notes",component:p("/react-native-help-create/docs/2.5.1/notes","7b9"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/react-native-help-create/docs/2.6.0",component:p("/react-native-help-create/docs/2.6.0","152"),routes:[{path:"/react-native-help-create/docs/2.6.0/category/combine",component:p("/react-native-help-create/docs/2.6.0/category/combine","d89"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/category/create",component:p("/react-native-help-create/docs/2.6.0/category/create","e03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/category/delete",component:p("/react-native-help-create/docs/2.6.0/category/delete","e5b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/combine/combine-components",component:p("/react-native-help-create/docs/2.6.0/combine/combine-components","90c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/combine/combine-screens",component:p("/react-native-help-create/docs/2.6.0/combine/combine-screens","b9d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/combine/intro",component:p("/react-native-help-create/docs/2.6.0/combine/intro","a64"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/create-components",component:p("/react-native-help-create/docs/2.6.0/create/create-components","649"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/create-navigations",component:p("/react-native-help-create/docs/2.6.0/create/create-navigations","d7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/create-redux",component:p("/react-native-help-create/docs/2.6.0/create/create-redux","38c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/create-screens",component:p("/react-native-help-create/docs/2.6.0/create/create-screens","848"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/intro",component:p("/react-native-help-create/docs/2.6.0/create/intro","e7d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/using-configuration",component:p("/react-native-help-create/docs/2.6.0/create/using-configuration","d16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/create/using-templates",component:p("/react-native-help-create/docs/2.6.0/create/using-templates","06e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/delete/delete-components",component:p("/react-native-help-create/docs/2.6.0/delete/delete-components","4c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/delete/delete-configuration",component:p("/react-native-help-create/docs/2.6.0/delete/delete-configuration","476"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/delete/delete-navigations",component:p("/react-native-help-create/docs/2.6.0/delete/delete-navigations","914"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/delete/delete-redux",component:p("/react-native-help-create/docs/2.6.0/delete/delete-redux","40a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/delete/delete-screens",component:p("/react-native-help-create/docs/2.6.0/delete/delete-screens","7a6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/delete/intro",component:p("/react-native-help-create/docs/2.6.0/delete/intro","9a6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/getting-started",component:p("/react-native-help-create/docs/2.6.0/getting-started","b1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/intro",component:p("/react-native-help-create/docs/2.6.0/intro","1d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/2.6.0/notes",component:p("/react-native-help-create/docs/2.6.0/notes","b4f"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/react-native-help-create/docs",component:p("/react-native-help-create/docs","4c5"),routes:[{path:"/react-native-help-create/docs/category/combine",component:p("/react-native-help-create/docs/category/combine","71c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/category/create",component:p("/react-native-help-create/docs/category/create","a65"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/category/delete",component:p("/react-native-help-create/docs/category/delete","0ab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/combine/combine-components",component:p("/react-native-help-create/docs/combine/combine-components","111"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/combine/combine-screens",component:p("/react-native-help-create/docs/combine/combine-screens","7eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/combine/intro",component:p("/react-native-help-create/docs/combine/intro","314"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/create-components",component:p("/react-native-help-create/docs/create/create-components","297"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/create-navigations",component:p("/react-native-help-create/docs/create/create-navigations","45d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/create-redux",component:p("/react-native-help-create/docs/create/create-redux","b63"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/create-screens",component:p("/react-native-help-create/docs/create/create-screens","ec6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/intro",component:p("/react-native-help-create/docs/create/intro","97d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/using-configuration",component:p("/react-native-help-create/docs/create/using-configuration","6ea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/create/using-templates",component:p("/react-native-help-create/docs/create/using-templates","ecf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/delete/delete-components",component:p("/react-native-help-create/docs/delete/delete-components","fcd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/delete/delete-configuration",component:p("/react-native-help-create/docs/delete/delete-configuration","a3a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/delete/delete-navigations",component:p("/react-native-help-create/docs/delete/delete-navigations","f9d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/delete/delete-redux",component:p("/react-native-help-create/docs/delete/delete-redux","235"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/delete/delete-screens",component:p("/react-native-help-create/docs/delete/delete-screens","3bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/delete/intro",component:p("/react-native-help-create/docs/delete/intro","219"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/getting-started",component:p("/react-native-help-create/docs/getting-started","0a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/intro",component:p("/react-native-help-create/docs/intro","b00"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-help-create/docs/notes",component:p("/react-native-help-create/docs/notes","df8"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/react-native-help-create/",component:p("/react-native-help-create/","8e1"),exact:!0},{path:"*",component:p("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>o});var r=n(6540);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},5660:(e,t,n)=>{"use strict";var r=n(6540),a=n(961),o=n(4625),i=n(545),l=n(8193);const c=[n(119),n(6134),n(6294),n(1043)];var s=n(8328),u=n(2681),d=n(2831);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(9668),m=n(5260),h=n(4586),g=n(6025),b=n(6342),v=n(9024),y=n(2131),w=n(4090),k=n(2967),S=n(1463);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.A)(),n=(0,y.o)();return r.createElement(m.A,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),a=function(){const{siteConfig:{url:e}}=(0,h.A)(),{pathname:t}=(0,u.zy)();return e+(0,g.A)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.A,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,b.p)();return r.createElement(r.Fragment,null,r.createElement(m.A,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.w})),n&&r.createElement(v.be,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(S.A,{tag:k.Cy,locale:e}),r.createElement(m.A,null,t.map(((e,t)=>r.createElement("meta",(0,f.A)({key:t},e))))))}const T=new Map;function A(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.u)(s.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var C=n(6125),R=n(6988);function L(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=c.map((t=>(t.default?.[e]??t[e])?.(...n)));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(a&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1));document.getElementById(e)?.scrollIntoView()}else window.scrollTo(0,0)}(n),L("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(s.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?L("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=L("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(u.qh,{location:t,render:()=>e}))}}const I=O,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${M}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${M}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function j(){const{siteConfig:{baseUrl:e}}=(0,h.A)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.A.canUseDOM&&r.createElement(m.A,null,r.createElement("script",null,F(e))),r.createElement("div",{id:D}))}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.A)(),{pathname:n}=(0,u.zy)();return t&&n===e?r.createElement(j,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.A)(),i=(0,g.A)(e),{htmlLang:l,direction:c}=o[a];return r.createElement(m.A,null,r.createElement("html",{lang:l,dir:c}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var $=n(7489);function G(){const e=(0,d.v)(s.A),t=(0,u.zy)();return r.createElement($.A,null,r.createElement(R.l,null,r.createElement(C.x,null,r.createElement(p,null,r.createElement(U,null),r.createElement(_,null),r.createElement(z,null),r.createElement(I,{location:A(t)},e)))))}var q=n(4054);const H=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();(document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode)?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(6921);const W=new Set,K=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Q={prefetch(e){if(!(e=>!Y()&&!K.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.u)(s.A,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?H(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!K.has(e))(e)&&(K.add(e),N(e))},X=Object.freeze(Q);if(l.A.canUseDOM){window.docusaurus=X;const e=a.hydrate;N(window.location.pathname).then((()=>{e(r.createElement(i.vd,null,r.createElement(o.Kd,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>u,l:()=>d});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/react-native-help-create/docs","versions":[{"name":"current","label":"2.7.0 (current)","isLast":true,"path":"/react-native-help-create/docs","mainDocId":"intro","docs":[{"id":"combine/combine-components","path":"/react-native-help-create/docs/combine/combine-components","sidebar":"tutorialSidebar"},{"id":"combine/combine-screens","path":"/react-native-help-create/docs/combine/combine-screens","sidebar":"tutorialSidebar"},{"id":"combine/intro","path":"/react-native-help-create/docs/combine/intro","sidebar":"tutorialSidebar"},{"id":"create/create-components","path":"/react-native-help-create/docs/create/create-components","sidebar":"tutorialSidebar"},{"id":"create/create-navigations","path":"/react-native-help-create/docs/create/create-navigations","sidebar":"tutorialSidebar"},{"id":"create/create-redux","path":"/react-native-help-create/docs/create/create-redux","sidebar":"tutorialSidebar"},{"id":"create/create-screens","path":"/react-native-help-create/docs/create/create-screens","sidebar":"tutorialSidebar"},{"id":"create/intro","path":"/react-native-help-create/docs/create/intro","sidebar":"tutorialSidebar"},{"id":"create/using-configuration","path":"/react-native-help-create/docs/create/using-configuration","sidebar":"tutorialSidebar"},{"id":"create/using-templates","path":"/react-native-help-create/docs/create/using-templates","sidebar":"tutorialSidebar"},{"id":"delete/delete-components","path":"/react-native-help-create/docs/delete/delete-components","sidebar":"tutorialSidebar"},{"id":"delete/delete-configuration","path":"/react-native-help-create/docs/delete/delete-configuration","sidebar":"tutorialSidebar"},{"id":"delete/delete-navigations","path":"/react-native-help-create/docs/delete/delete-navigations","sidebar":"tutorialSidebar"},{"id":"delete/delete-redux","path":"/react-native-help-create/docs/delete/delete-redux","sidebar":"tutorialSidebar"},{"id":"delete/delete-screens","path":"/react-native-help-create/docs/delete/delete-screens","sidebar":"tutorialSidebar"},{"id":"delete/intro","path":"/react-native-help-create/docs/delete/intro","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/react-native-help-create/docs/getting-started","sidebar":"tutorialSidebar"},{"id":"intro","path":"/react-native-help-create/docs/intro","sidebar":"tutorialSidebar"},{"id":"notes","path":"/react-native-help-create/docs/notes","sidebar":"tutorialSidebar"},{"id":"/category/create","path":"/react-native-help-create/docs/category/create","sidebar":"tutorialSidebar"},{"id":"/category/delete","path":"/react-native-help-create/docs/category/delete","sidebar":"tutorialSidebar"},{"id":"/category/combine","path":"/react-native-help-create/docs/category/combine","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/react-native-help-create/docs/intro","label":"intro"}}}},{"name":"2.6.0","label":"2.6.0","isLast":false,"path":"/react-native-help-create/docs/2.6.0","mainDocId":"intro","docs":[{"id":"combine/combine-components","path":"/react-native-help-create/docs/2.6.0/combine/combine-components","sidebar":"tutorialSidebar"},{"id":"combine/combine-screens","path":"/react-native-help-create/docs/2.6.0/combine/combine-screens","sidebar":"tutorialSidebar"},{"id":"combine/intro","path":"/react-native-help-create/docs/2.6.0/combine/intro","sidebar":"tutorialSidebar"},{"id":"create/create-components","path":"/react-native-help-create/docs/2.6.0/create/create-components","sidebar":"tutorialSidebar"},{"id":"create/create-navigations","path":"/react-native-help-create/docs/2.6.0/create/create-navigations","sidebar":"tutorialSidebar"},{"id":"create/create-redux","path":"/react-native-help-create/docs/2.6.0/create/create-redux","sidebar":"tutorialSidebar"},{"id":"create/create-screens","path":"/react-native-help-create/docs/2.6.0/create/create-screens","sidebar":"tutorialSidebar"},{"id":"create/intro","path":"/react-native-help-create/docs/2.6.0/create/intro","sidebar":"tutorialSidebar"},{"id":"create/using-configuration","path":"/react-native-help-create/docs/2.6.0/create/using-configuration","sidebar":"tutorialSidebar"},{"id":"create/using-templates","path":"/react-native-help-create/docs/2.6.0/create/using-templates","sidebar":"tutorialSidebar"},{"id":"delete/delete-components","path":"/react-native-help-create/docs/2.6.0/delete/delete-components","sidebar":"tutorialSidebar"},{"id":"delete/delete-configuration","path":"/react-native-help-create/docs/2.6.0/delete/delete-configuration","sidebar":"tutorialSidebar"},{"id":"delete/delete-navigations","path":"/react-native-help-create/docs/2.6.0/delete/delete-navigations","sidebar":"tutorialSidebar"},{"id":"delete/delete-redux","path":"/react-native-help-create/docs/2.6.0/delete/delete-redux","sidebar":"tutorialSidebar"},{"id":"delete/delete-screens","path":"/react-native-help-create/docs/2.6.0/delete/delete-screens","sidebar":"tutorialSidebar"},{"id":"delete/intro","path":"/react-native-help-create/docs/2.6.0/delete/intro","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/react-native-help-create/docs/2.6.0/getting-started","sidebar":"tutorialSidebar"},{"id":"intro","path":"/react-native-help-create/docs/2.6.0/intro","sidebar":"tutorialSidebar"},{"id":"notes","path":"/react-native-help-create/docs/2.6.0/notes","sidebar":"tutorialSidebar"},{"id":"/category/create","path":"/react-native-help-create/docs/2.6.0/category/create","sidebar":"tutorialSidebar"},{"id":"/category/delete","path":"/react-native-help-create/docs/2.6.0/category/delete","sidebar":"tutorialSidebar"},{"id":"/category/combine","path":"/react-native-help-create/docs/2.6.0/category/combine","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/react-native-help-create/docs/2.6.0/intro","label":"version-2.6.0/intro"}}}},{"name":"2.5.1","label":"2.5.1","isLast":false,"path":"/react-native-help-create/docs/2.5.1","mainDocId":"intro","docs":[{"id":"combine/combine-components","path":"/react-native-help-create/docs/2.5.1/combine/combine-components","sidebar":"tutorialSidebar"},{"id":"combine/combine-screens","path":"/react-native-help-create/docs/2.5.1/combine/combine-screens","sidebar":"tutorialSidebar"},{"id":"combine/intro","path":"/react-native-help-create/docs/2.5.1/combine/intro","sidebar":"tutorialSidebar"},{"id":"create/create-components","path":"/react-native-help-create/docs/2.5.1/create/create-components","sidebar":"tutorialSidebar"},{"id":"create/create-navigations","path":"/react-native-help-create/docs/2.5.1/create/create-navigations","sidebar":"tutorialSidebar"},{"id":"create/create-redux","path":"/react-native-help-create/docs/2.5.1/create/create-redux","sidebar":"tutorialSidebar"},{"id":"create/create-screens","path":"/react-native-help-create/docs/2.5.1/create/create-screens","sidebar":"tutorialSidebar"},{"id":"create/intro","path":"/react-native-help-create/docs/2.5.1/create/intro","sidebar":"tutorialSidebar"},{"id":"create/using-configuration","path":"/react-native-help-create/docs/2.5.1/create/using-configuration","sidebar":"tutorialSidebar"},{"id":"create/using-templates","path":"/react-native-help-create/docs/2.5.1/create/using-templates","sidebar":"tutorialSidebar"},{"id":"delete/delete-components","path":"/react-native-help-create/docs/2.5.1/delete/delete-components","sidebar":"tutorialSidebar"},{"id":"delete/delete-configuration","path":"/react-native-help-create/docs/2.5.1/delete/delete-configuration","sidebar":"tutorialSidebar"},{"id":"delete/delete-navigations","path":"/react-native-help-create/docs/2.5.1/delete/delete-navigations","sidebar":"tutorialSidebar"},{"id":"delete/delete-redux","path":"/react-native-help-create/docs/2.5.1/delete/delete-redux","sidebar":"tutorialSidebar"},{"id":"delete/delete-screens","path":"/react-native-help-create/docs/2.5.1/delete/delete-screens","sidebar":"tutorialSidebar"},{"id":"delete/intro","path":"/react-native-help-create/docs/2.5.1/delete/intro","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/react-native-help-create/docs/2.5.1/getting-started","sidebar":"tutorialSidebar"},{"id":"intro","path":"/react-native-help-create/docs/2.5.1/intro","sidebar":"tutorialSidebar"},{"id":"notes","path":"/react-native-help-create/docs/2.5.1/notes","sidebar":"tutorialSidebar"},{"id":"/category/create","path":"/react-native-help-create/docs/2.5.1/category/create","sidebar":"tutorialSidebar"},{"id":"/category/delete","path":"/react-native-help-create/docs/2.5.1/category/delete","sidebar":"tutorialSidebar"},{"id":"/category/combine","path":"/react-native-help-create/docs/2.5.1/category/combine","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/react-native-help-create/docs/2.5.1/intro","label":"version-2.5.1/intro"}}}},{"name":"2.3.4","label":"2.3.4","isLast":false,"path":"/react-native-help-create/docs/2.3.4","mainDocId":"intro","docs":[{"id":"combine/combine-components","path":"/react-native-help-create/docs/2.3.4/combine/combine-components","sidebar":"tutorialSidebar"},{"id":"combine/combine-screens","path":"/react-native-help-create/docs/2.3.4/combine/combine-screens","sidebar":"tutorialSidebar"},{"id":"combine/intro","path":"/react-native-help-create/docs/2.3.4/combine/intro","sidebar":"tutorialSidebar"},{"id":"create/create-components","path":"/react-native-help-create/docs/2.3.4/create/create-components","sidebar":"tutorialSidebar"},{"id":"create/create-navigations","path":"/react-native-help-create/docs/2.3.4/create/create-navigations","sidebar":"tutorialSidebar"},{"id":"create/create-redux","path":"/react-native-help-create/docs/2.3.4/create/create-redux","sidebar":"tutorialSidebar"},{"id":"create/create-screens","path":"/react-native-help-create/docs/2.3.4/create/create-screens","sidebar":"tutorialSidebar"},{"id":"create/intro","path":"/react-native-help-create/docs/2.3.4/create/intro","sidebar":"tutorialSidebar"},{"id":"create/using-configuration","path":"/react-native-help-create/docs/2.3.4/create/using-configuration","sidebar":"tutorialSidebar"},{"id":"create/using-templates","path":"/react-native-help-create/docs/2.3.4/create/using-templates","sidebar":"tutorialSidebar"},{"id":"delete/delete-components","path":"/react-native-help-create/docs/2.3.4/delete/delete-components","sidebar":"tutorialSidebar"},{"id":"delete/delete-configuration","path":"/react-native-help-create/docs/2.3.4/delete/delete-configuration","sidebar":"tutorialSidebar"},{"id":"delete/delete-navigations","path":"/react-native-help-create/docs/2.3.4/delete/delete-navigations","sidebar":"tutorialSidebar"},{"id":"delete/delete-redux","path":"/react-native-help-create/docs/2.3.4/delete/delete-redux","sidebar":"tutorialSidebar"},{"id":"delete/delete-screens","path":"/react-native-help-create/docs/2.3.4/delete/delete-screens","sidebar":"tutorialSidebar"},{"id":"delete/intro","path":"/react-native-help-create/docs/2.3.4/delete/intro","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/react-native-help-create/docs/2.3.4/getting-started","sidebar":"tutorialSidebar"},{"id":"intro","path":"/react-native-help-create/docs/2.3.4/intro","sidebar":"tutorialSidebar"},{"id":"notes","path":"/react-native-help-create/docs/2.3.4/notes","sidebar":"tutorialSidebar"},{"id":"/category/create","path":"/react-native-help-create/docs/2.3.4/category/create","sidebar":"tutorialSidebar"},{"id":"/category/delete","path":"/react-native-help-create/docs/2.3.4/category/delete","sidebar":"tutorialSidebar"},{"id":"/category/combine","path":"/react-native-help-create/docs/2.3.4/category/combine","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/react-native-help-create/docs/2.3.4/intro","label":"version-2.3.4/intro"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(2654);const c=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.2.0"}}}'),s={siteConfig:a.default,siteMetadata:c,globalData:o,i18n:i,codeTranslations:l},u=r.createContext(s);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:s},t)}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),a=n(8193),o=n(5260),i=n(5933);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(u,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(o.A,null,r.createElement("title",null,"Page Error")),r.createElement(i.A,null,r.createElement(l,{error:t,tryAgain:n})))}const s=e=>r.createElement(c,e);class u extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??s)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(545);function o(e){return r.createElement(a.mg,e)}},5489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(9668),a=n(6540),o=n(4625),i=n(440),l=n(4586),c=n(6654),s=n(8193);const u=a.createContext({collectLink:()=>{}});var d=n(6025);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.A)(),{withBaseUrl:k}=(0,d.h)(),S=(0,a.useContext)(u),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=p||f;const _=(0,c.A)(x),T=x?.replace("pathname://","");let A=void 0!==T?(C=T,b&&(e=>e.startsWith("/"))(C)?k(C):C):void 0;var C;A&&_&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:y,baseUrl:w}));const R=(0,a.useRef)(!1),L=n?o.k2:o.N_,P=s.A.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{R.current||null==A||(window.docusaurus.preload(A),R.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=A&&window.docusaurus.prefetch(A),()=>{P&&N.current&&N.current.disconnect()})),[N,A,P,_]);const I=A?.startsWith("#")??!1,D=!A||!_||I;return D||g||S.collectLink(A),D?a.createElement("a",(0,r.A)({ref:E,href:A},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(L,(0,r.A)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),N.current.observe(e))},to:A},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(6540);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(2654);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>i,h:()=>o});var r=n(4586),a=n(6654);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.A)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,o]=n;const i=r?`${r}.${a}`:a;var l;"object"==typeof(l=o)&&l&&Object.keys(l).length>0?e(o,i):t[i]=o}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>o,o:()=>a});var r=n(6540);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>b,vT:()=>f,gk:()=>m,Gy:()=>d,HW:()=>v,ht:()=>p,r7:()=>g,jh:()=>h});var r=n(2681),a=n(4586),o=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function c(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function s(e,t){const n=c(e,t),a=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});const r=i(e)?.[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:c(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return l(t)}function b(e){const t=p(e),{pathname:n}=(0,r.zy)();return s(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6134:(e,t,n)=>{"use strict";var r=n(1258),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.A)},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const a="iconExternalLink_nPIU";function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},5933:(e,t,n)=>{"use strict";n.d(t,{A:()=>At});var r=n(6540),a=n(53),o=n(7489),i=n(9024),l=n(9668),c=n(2681),s=n(1312),u=n(5062);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,c.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.A)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(7559),b=n(4090);const v="skipToContent_fXgn";function y(){return r.createElement(h,{className:v})}var w=n(6342),k=n(5041);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...c}=e;return r.createElement("svg",(0,l.A)({viewBox:"0 0 15 15",width:t,height:n},c),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E="closeButton_CVFx";function x(e){return r.createElement("button",(0,l.A)({type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.A)("clean-btn close",E,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _="content_knG7";function T(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return r.createElement("div",(0,l.A)({},e,{className:(0,a.A)(_,e.className),dangerouslySetInnerHTML:{__html:n}}))}const A="announcementBar_mb4j",C="announcementBarPlaceholder_vyr4",R="announcementBarClose_gvF7",L="announcementBarContent_xLdY";function P(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:A,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:C}),r.createElement(T,{className:L}),i&&r.createElement(x,{onClick:n,className:R}))}var N=n(9876),O=n(3104);var I=n(9532),D=n(5600);const M=r.createContext(null);function B(e){let{children:t}=e;const n=function(){const e=(0,N.M)(),t=(0,D.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,I.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(M.Provider,{value:n},t)}function F(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function j(){const e=(0,r.useContext)(M);if(!e)throw new I.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,D.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:F(o)})),[a,o,t])}function z(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=j();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var U=n(5293),$=n(2303);function G(e){return r.createElement("svg",(0,l.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function q(e){return r.createElement("svg",(0,l.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const H={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function V(e){let{className:t,value:n,onChange:o}=e;const i=(0,$.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.A)(H.toggle,t)},r.createElement("button",{className:(0,a.A)("clean-btn",H.toggleButton,!i&&H.toggleButtonDisabled),type:"button",onClick:()=>o("dark"===n?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite"},r.createElement(G,{className:(0,a.A)(H.toggleIcon,H.lightToggleIcon)}),r.createElement(q,{className:(0,a.A)(H.toggleIcon,H.darkToggleIcon)})))}const W=r.memo(V);function K(e){let{className:t}=e;const n=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,U.G)();return n?null:r.createElement(W,{className:t,value:a,onChange:o})}var Y=n(3465);function Q(){return r.createElement(Y.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function X(){const e=(0,N.M)();return r.createElement("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function Z(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Q,null),r.createElement(K,{className:"margin-right--md"}),r.createElement(X,null))}var J=n(5489),ee=n(6025),te=n(6654),ne=n(1252),re=n(3186);function ae(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:c,isDropdownLink:s,prependBaseUrlToHref:u,...d}=e;const p=(0,ee.A)(a),f=(0,ee.A)(t),m=(0,ee.A)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,te.A)(o),g=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(re.A,s&&{width:12,height:12}))};return o?r.createElement(J.A,(0,l.A)({href:u?m:o},d,g)):r.createElement(J.A,(0,l.A)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ne.G)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function oe(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ae,(0,l.A)({className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ie(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ae,(0,l.A)({className:(0,a.A)("menu__link",t)},o)))}function le(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ie:oe;return r.createElement(o,(0,l.A)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ce=n(1422),se=n(9169),ue=n(4586);function de(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!(0,ne.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function pe(e){let{items:t,position:n,className:o,onClick:i,...c}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[s]),r.createElement("div",{ref:s,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ae,(0,l.A)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:c.to?void 0:"#",className:(0,a.A)("navbar__link",o)},c,{onClick:c.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),c.children??c.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(qe,(0,l.A)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=s.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function fe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,ue.A)(),{pathname:t}=(0,c.zy)();return t.replace(e,"/")}(),d=de(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ce.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ae,(0,l.A)({role:"button",className:(0,a.A)("menu__link menu__link--sublist menu__link--sublist-caret",n)},s,{onClick:e=>{e.preventDefault(),f()}}),s.children??s.label),r.createElement(ce.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(qe,(0,l.A)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function me(e){let{mobile:t=!1,...n}=e;const a=t?fe:pe;return r.createElement(a,n)}var he=n(2131);function ge(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.A)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const be="iconLanguage_nlXk";var ve=n(961),ye=n(5260),we=n(4255);function ke(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var Se=n(9188),Ee=["translations"];function xe(){return xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xe.apply(this,arguments)}function _e(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(c){l=!0,a=c}finally{try{i||null==n.return||n.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Te(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Te(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Te(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ae(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ce="Ctrl";var Re=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Ae(e,Ee),i=a.buttonText,l=void 0===i?"Search":i,c=a.buttonAriaLabel,s=void 0===c?"Search":c,u=_e((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(Ce))}),[]),r.createElement("button",xe({type:"button",className:"DocSearch DocSearch-Button","aria-label":s},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(Se.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ce?r.createElement(ke,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Le=n(2967);const Pe={button:{buttonText:(0,s.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,s.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,s.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,s.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,s.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,s.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,s.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,s.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,s.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,s.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,s.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,s.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,s.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,s.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,s.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,s.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,s.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,s.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,s.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Ne=null;function Oe(e){let{hit:t,children:n}=e;return r.createElement(J.A,{to:t.url},n)}function Ie(e){let{state:t,onClose:n}=e;const{generateSearchPageLink:a}=(0,we.n)();return r.createElement(J.A,{to:a(t.query),onClick:n},r.createElement(s.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function De(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,ue.A)(),s=function(){const{locale:e,tags:t}=(0,Le.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),u=o.searchParameters?.facetFilters??[],d=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(s,u):u,p={...o.searchParameters,facetFilters:d},{withBaseUrl:f}=(0,ee.h)(),m=(0,c.W6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Ne?Promise.resolve():Promise.all([n.e(7477).then(n.bind(n,7477)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,8913)),Promise.all([n.e(1869),n.e(416)]).then(n.bind(n,416))]).then((e=>{let[{DocSearchModal:t}]=e;Ne=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ne.G)(a,t)?window.location.href=t:m.push(t)}}).current,T=(0,r.useRef)((e=>e.map((e=>{if((0,ne.G)(a,e.url))return e;const t=new URL(e.url);return{...e,url:f(`${t.pathname}${t.hash}`)}})))).current,A=(0,r.useMemo)((()=>e=>r.createElement(Ie,(0,l.A)({},e,{onClose:E}))),[E]),C=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(ye.A,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(Re,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Pe.button}),b&&Ne&&h.current&&(0,ve.createPortal)(r.createElement(Ne,(0,l.A)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:T,hitComponent:Oe,transformSearchClient:C},o.searchPagePath&&{resultsFooterComponent:A},o,{searchParameters:p,placeholder:Pe.placeholder,translations:Pe.modal})),h.current))}function Me(){const{siteConfig:e}=(0,ue.A)();return r.createElement(De,e.themeConfig.algolia)}const Be="searchBox_ZlJk";function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.A)(n,Be)},t)}var je=n(4070),ze=n(4142);var Ue=n(5597);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ge={default:le,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,ue.A)(),p=(0,he.o)(),{search:f,hash:m}=(0,c.zy)(),h=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(me,(0,l.A)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(ge,{className:be}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(Me,null))},dropdown:me,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.A)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,je.zK)(a),c=(0,ze.QB)(t,a);return null===c?null:r.createElement(le,(0,l.A)({exact:!0},o,{isActive:()=>i?.path===c.path||!!i?.sidebar&&i.sidebar===c.sidebar,label:n??c.id,to:c.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,je.zK)(a),c=(0,ze.fW)(t,a).link;if(!c)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(le,(0,l.A)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??c.label,to:c.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,ze.Vd)(a)[0],c=t??i.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(le,(0,l.A)({},o,{label:c,to:s}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,c.zy)(),f=(0,je.zK)(n),m=(0,je.jh)(n),{savePreferredVersionName:h}=(0,Ue.g1)(n),g=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,ze.Vd)(n)[0],v=t&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:$e(b).path;return g.length<=1?r.createElement(le,(0,l.A)({},u,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(me,(0,l.A)({},u,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ge[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function He(){const e=(0,N.M)(),t=(0,w.p)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.A)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ve(e){return r.createElement("button",(0,l.A)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function We(){const e=0===(0,w.p)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ve,{onClick:()=>t.hide()}),t.content)}function Ke(){const e=(0,N.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(z,{header:r.createElement(Z,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(We,null)}):null}const Ye="navbarHideable_m1mJ",Qe="navbarHidden_jGov";function Xe(e){return r.createElement("div",(0,l.A)({role:"presentation"},e,{className:(0,a.A)("navbar-sidebar__backdrop",e.className)}))}function Ze(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.p)(),i=(0,N.M)(),{navbarRef:l,isNavbarVisible:c}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,O.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,c=document.documentElement.scrollHeight-o.current,s=window.innerHeight;l&&i>=l?n(!1):i+s<c&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,className:(0,a.A)("navbar","navbar--fixed-top",n&&[Ye,!c&&Qe],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Xe,{onClick:i.toggle}),r.createElement(Ke,null))}function Je(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.A)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function et(){const{toggle:e,shown:t}=(0,N.M)();return r.createElement("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Je,null))}const tt="colorModeToggle_DEke";function nt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(qe,(0,l.A)({},e,{key:t})))))}function rt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function at(){const e=(0,N.M)(),t=(0,w.p)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(rt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(et,null),r.createElement(Q,null),r.createElement(nt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(nt,{items:a}),r.createElement(K,{className:tt}),!o&&r.createElement(Fe,null,r.createElement(Me,null)))})}function ot(){return r.createElement(Ze,null,r.createElement(at,null))}function it(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...c}=t,s=(0,ee.A)(n),u=(0,ee.A)(a,{forcePrependBaseUrl:!0});return r.createElement(J.A,(0,l.A)({className:"footer__link-item"},a?{href:i?u:a}:{to:s},c),o,a&&!(0,te.A)(a)&&r.createElement(re.A,null))}function lt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(it,{item:t}))}function ct(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(lt,{key:t,item:e})))))}function st(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ct,{key:t,column:e}))))}function ut(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function dt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(it,{item:t})}function pt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(dt,{item:e}),t.length!==n+1&&r.createElement(ut,null))))))}function ft(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(st,{columns:t}):r.createElement(pt,{links:t})}var mt=n(1653);const ht="footerLogoLink_BH7S";function gt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,ee.h)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(mt.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function bt(e){let{logo:t}=e;return t.href?r.createElement(J.A,{href:t.href,className:ht,target:t.target},r.createElement(gt,{logo:t})):r.createElement(gt,{logo:t})}function vt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function yt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function wt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(yt,{style:o,links:n&&n.length>0&&r.createElement(ft,{links:n}),logo:a&&r.createElement(bt,{logo:a}),copyright:t&&r.createElement(vt,{copyright:t})})}const kt=r.memo(wt);var St=n(6976);const Et=(0,I.fM)([U.a,k.oq,St.B,O.Tv,Ue.VQ,i.Jx,function(e){let{children:t}=e;return r.createElement(D.y_,null,r.createElement(N.e,null,r.createElement(B,null,t)))}]);function xt(e){let{children:t}=e;return r.createElement(Et,null,t)}function _t(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const Tt="mainWrapper_z2l0";function At(e){const{children:t,noFooter:n,wrapperClassName:l,title:c,description:s}=e;return(0,b.J)(),r.createElement(xt,null,r.createElement(i.be,{title:c,description:s}),r.createElement(y,null),r.createElement(P,null),r.createElement(ot,null),r.createElement("div",{id:d,className:(0,a.A)(g.G.wrapper.main,Tt,l)},r.createElement(o.A,{fallback:e=>r.createElement(_t,e)},t)),!n&&r.createElement(kt,null))}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(9668),a=n(6540),o=n(5489),i=n(6025),l=n(4586),c=n(6342),s=n(1653);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.A)(t.src),dark:(0,i.A)(t.srcDark||t.src)},l=a.createElement(s.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.A)(),{navbar:{title:n,logo:s}}=(0,c.p)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.A)(s?.href||"/"),h=n?"":t,g=s?.alt??h;return a.createElement(o.A,(0,r.A)({to:m},f,s?.target&&{target:s.target}),s&&a.createElement(u,{logo:s,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(5260);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.A,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},1653:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(9668),a=n(6540),o=n(53),i=n(2303),l=n(5293);const c={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function s(e){const t=(0,i.A)(),{colorMode:n}=(0,l.G)(),{sources:s,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.A)({key:e,src:s[e],alt:d,className:(0,o.A)(c.themedImage,c[`themedImage--${e}`],u)},p)))))}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>m,u:()=>i});var r=n(9668),a=n(6540),o=n(8193);function i(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const l={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function s(e,t){const n=t?l:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function u(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??"ease-in-out"}`,height:`${t}px`}}function i(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return s(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function d(e){if(!o.A.canUseDOM)return e?l:c}function p(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const p=(0,a.useRef)(null);return u({collapsibleRef:p,collapsed:n,animation:o}),a.createElement(t,{ref:p,style:c?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(s(p.current,n),i?.(n))},className:l},r)}function f(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,c]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&c(t)}),[o,t]),o?a.createElement(p,(0,r.A)({},n,{collapsed:l})):null}function m(e){let{lazy:t,...n}=e;const r=t?f:p;return a.createElement(r,n)}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>m,oq:()=>f});var r=n(6540),a=n(2303),o=n(9466),i=n(9532),l=n(6342);const c=(0,o.W)("docusaurus.announcement.dismiss"),s=(0,o.W)("docusaurus.announcement.id"),u=()=>"true"===c.get(),d=e=>c.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{o(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=s.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;s.set(t),r&&d(!1),!r&&u()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>g,a:()=>h});var r=n(6540),a=n(8193),o=n(9532),i=n(9466),l=n(6342);const c=r.createContext(void 0),s="theme",u=(0,i.W)(s),d="light",p="dark",f=e=>e===p?p:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[o,i]=(0,r.useState)((e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const c=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&(e=>{u.set(f(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==s)return;const t=u.get();null!==t&&c(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,c]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:c(null)};return e.addListener(r),()=>e.removeListener(r)}),[c,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:c,get isDarkTheme(){return o===p},setLightTheme(){c(d)},setDarkTheme(){c(p)}})),[o,c])}function h(e){let{children:t}=e;const n=m();return r.createElement(c.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(c);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>w,g1:()=>y});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(4142),c=n(9532),s=n(9466);const u=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,s.W)(u(e),{persistence:t}).set(n)},p=(e,t)=>(0,s.W)(u(e),{persistence:t}).get(),f=(e,t)=>{(0,s.W)(u(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function b(e){let{children:t}=e;return l.C5?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new c.dV("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=o.W);const t=(0,a.ht)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a.Gy)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(6540),a=n(9532);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function c(){const e=(0,r.useContext)(i);if(e===o)throw new a.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>i,r:()=>l});var r=n(6540),a=n(9532);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>p,M:()=>f});var r=n(6540),a=n(5600),o=n(4581),i=n(2681),l=n(9532);function c(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var s=n(6342);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);c((()=>{if(i)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function p(e){let{children:t}=e;const n=d();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>i});var r=n(6540),a=n(9532);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,l]=i,c=(0,a.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:c})}),[l,t,c]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},6976:(e,t,n)=>{"use strict";n.d(t,{B:()=>c,x:()=>s});var r=n(6540),a=n(9466),o=n(9532);const i="docusaurus.tab.",l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const[e,t]=(0,r.useState)({}),n=(0,r.useCallback)(((e,t)=>{(0,a.W)(`${i}${e}`).set(t)}),[]);(0,r.useEffect)((()=>{try{const e={};(0,a.E)().forEach((t=>{if(t.startsWith(i)){const n=t.substring(i.length);e[n]=(0,a.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const o=(0,r.useCallback)(((e,r)=>{t((t=>({...t,[e]:r}))),n(e,r)}),[n]);return(0,r.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:o})),[e,o])}();return r.createElement(l.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(l);if(null==e)throw new o.dV("TabGroupChoiceProvider");return e}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4255:(e,t,n)=>{"use strict";n.d(t,{n:()=>l});var r=n(6540),a=n(2681),o=n(4586);const i="q";function l(){const e=(0,a.W6)(),{siteConfig:{baseUrl:t}}=(0,o.A)(),[n,l]=(0,r.useState)("");(0,r.useEffect)((()=>{const e=new URLSearchParams(window.location.search).get(i)??"";l(e)}),[]);return{searchQuery:n,setSearchQuery:(0,r.useCallback)((t=>{const n=new URLSearchParams(window.location.search);t?n.set(i,t):n.delete(i),e.replace({search:n.toString()}),l(t)}),[e]),generateSearchPageLink:(0,r.useCallback)((e=>`${t}search?${i}=${encodeURIComponent(e)}`),[t])}}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(6540),a=n(8193);const o="desktop",i="mobile",l="ssr";function c(){return a.A.canUseDOM?window.innerWidth>996?o:i:l}function s(){const[e,t]=(0,r.useState)((()=>c()));return(0,r.useEffect)((()=>{function e(){t(c())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},4142:(e,t,n)=>{"use strict";n.d(t,{$S:()=>h,C5:()=>p,OF:()=>y,QB:()=>S,Vd:()=>w,_o:()=>m,cC:()=>f,d1:()=>x,fW:()=>k,mz:()=>E,w8:()=>b});var r=n(6540),a=n(2681),o=n(2831),i=n(4070),l=n(5597),c=n(2252),s=n(6588),u=n(1682),d=n(9169);const p=!!i.Gy;function f(e){const t=(0,c.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.zy)(),t=(0,s.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=v({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.ys)(e,t);function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||((e,t)=>e.some((e=>b(e,t))))(e.items,t))}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function y(){const e=(0,s.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function w(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>(0,u.s)([t,n,a].filter(Boolean))),[t,n,a])}function k(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.s)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t,versionMetadata:n}=e;const r=(0,a.zy)(),i=t.routes,l=i.find((e=>(0,a.B6)(r.pathname,e)));if(!l)return null;const c=l.sidebar,s=c?n.docsSidebars[c]:void 0;return{docElement:(0,o.v)(i),sidebarName:c,sidebarItems:s}}function x(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},481:(e,t,n)=>{"use strict";n.d(t,{s:()=>a});var r=n(4586);function a(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1682:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{X:()=>r,s:()=>a})},9024:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>u,Jx:()=>f});var r=n(6540),a=n(53),o=n(5260),i=n(3102);function l(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(6025),s=n(481);function u(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const u=(0,s.s)(t),{withBaseUrl:d}=(0,c.h)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.A,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.A)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.A,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.A)(o,i)},t)}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>i,_q:()=>o,dV:()=>l,fM:()=>s});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function s(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},1252:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>d,Tv:()=>c,a_:()=>p,gk:()=>f});var r=n(6540),a=n(8193),o=n(2303),i=n(9532);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const u=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=s(),a=(0,r.useRef)(u()),o=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=s(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{n.current?.()})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>i,af:()=>c,tU:()=>l});var r=n(4070),a=n(4586),o=n(5597);const i="default";function l(e,t){return`docs-${e}-${t}`}function c(){const{i18n:e}=(0,a.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),c=(0,o.XK)();const s=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=c[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:s}}},9466:(e,t,n)=>{"use strict";n.d(t,{E:()=>c,W:()=>l});const r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,o||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),o=!0),null}var t}let o=!1;const i={get:()=>null,set:()=>{},del:()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const n=a(t?.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function c(e){void 0===e&&(e=r);const t=a(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>o});var r=n(4586),a=n(2681);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.A)(),{pathname:i}=(0,a.zy)(),l=o===n?e:e.replace(`/${o}/`,"/"),c=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${c}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(2681),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},53:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>T,yJ:()=>f,sC:()=>C,AO:()=>p});var r=n(9668);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),c=t&&a(t),s=l||c;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!s)for(;d--;d)i.unshift("..");!s||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8997);function c(e){return"/"===e.charAt(0)?e:"/"+e}function s(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,s=i.forceRefresh,w=void 0!==s&&s,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(c(e.basename)):"";function T(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=u(o,_)),f(o,r,n)}function A(){return Math.random().toString(36).substr(2,x)}var C=m();function R(e){(0,r.A)(U,e),U.length=n.length,C.notifyListeners(U.location,U.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(T(e.state))}function P(){O(T(y()))}var N=!1;function O(e){if(N)N=!1,R();else{C.confirmTransitionTo(e,"POP",S,(function(t){t?R({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,B(a))}(e)}))}}var I=T(y()),D=[I.key];function M(e){return _+p(e)}function B(e){n.go(e)}var F=0;function j(e){1===(F+=e)&&1===e?(window.addEventListener(b,L),o&&window.addEventListener(v,P)):0===F&&(window.removeEventListener(b,L),o&&window.removeEventListener(v,P))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=f(e,t,A(),U.location);C.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var c=D.indexOf(U.location.key),s=D.slice(0,c+1);s.push(o.key),D=s,R({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,A(),U.location);C.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var c=D.indexOf(U.location.key);-1!==c&&(D[c]=o.key),R({action:r,location:o})}else window.location.replace(t)}}))},go:B,goBack:function(){B(-1)},goForward:function(){B(1)},block:function(e){void 0===e&&(e=!1);var t=C.setPrompt(e);return z||(j(1),z=!0),function(){return z&&(z=!1,j(-1)),t()}},listen:function(e){var t=C.appendListener(e);return j(1),function(){j(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+s(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:s,decodePath:c},slash:{encodePath:c,decodePath:c}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function T(e){void 0===e&&(e={}),h||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,s=void 0===i?"slash":i,b=e.basename?d(c(e.basename)):"",v=S[s],y=v.encodePath,w=v.decodePath;function T(){var e=w(x());return b&&(e=u(e,b)),f(e)}var A=m();function C(e){(0,r.A)(z,e),z.length=t.length,A.notifyListeners(z.location,z.action)}var R=!1,L=null;function P(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=T(),i=z.location;if(!R&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(a))return;L=null,function(e){if(R)R=!1,C();else{var t="POP";A.confirmTransitionTo(e,t,o,(function(n){n?C({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(R=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=T(),D=[p(I)];function M(e){t.go(e)}var B=0;function F(e){1===(B+=e)&&1===e?window.addEventListener(k,P):0===B&&window.removeEventListener(k,P)}var j=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(x()!==a){L=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(z.location)),i=D.slice(0,o+1);i.push(t),D=i,C({action:n,location:r})}else C()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);x()!==a&&(L=t,_(a));var o=D.indexOf(p(z.location));-1!==o&&(D[o]=t),C({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return j||(F(1),j=!0),function(){return j&&(j=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function A(e,t,n){return Math.min(Math.max(e,t),n)}function C(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,c=t.keyLength,s=void 0===c?6:c,u=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,s)}var g=A(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=A(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function c(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var s=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=c(t),h=c(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{s(t,b,v)}catch(y){}}}}return t}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,a,o,i,l],u=0;(c=new Error(t.replace(/%s/g,(function(){return s[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),s=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(s,i(e,u,d)),1===e?(c(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){c(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),s=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),s!=document.body&&u(s,"nprogress-custom-parent"),s.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function s(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);s(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},5228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,l,c=a(e),s=1;s<arguments.length;s++){for(var u in i=Object(arguments[s]))n.call(i,u)&&(c[u]=i[u]);if(t){l=t(i);for(var d=0;d<l.length;d++)r.call(i,l[d])&&(c[l[d]]=i[l[d]])}}return c}},1258:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var c in n)n.hasOwnProperty(c)&&(i[c]=n[c]);n.hasOwnProperty(l)||(i[l]=o[l])}var s=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===s&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var c=t[l],s=r.util.type(c);"Object"!==s||o[i(c)]?"Array"!==s||o[i(c)]||(o[i(c)]=!0,e(c,n,l,o)):(o[i(c)]=!0,e(c,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return c(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=u;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,T=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var A=_.index,C=_.index+_[0].length,R=E;for(R+=S.value.length;A>=R;)R+=(S=S.next).value.length;if(E=R-=S.value.length,S.value instanceof a)continue;for(var L=S;L!==t.tail&&(R<C||"string"==typeof L.value);L=L.next)T++,R+=L.value.length;T--,x=e.slice(E,R),_.index-=E}else if(!(_=o(k,0,x,b)))continue;A=_.index;var P=_[0],N=x.slice(0,A),O=x.slice(A+P.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=c(t,D,N),E+=N.length),s(t,D,T),S=c(t,D,new a(p,g?r.tokenize(P,g):P,y,P)),O&&c(t,S,O),T>1){var M={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function s(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var c in o.attributes)l+=" "+c+'="'+(o.attributes[c]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),c="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,c]:i.alias.push(c):i.alias=[c]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],s=/language-(.+)/.exec(o);if(s){n=s[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),c(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),a.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var c=n;c<l;c++){var s=t[c];"variable"===s.type&&a.indexOf(s.content)>=0&&f(s,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function s(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,c(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=c(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=a,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var c=o.substring(0,l),d=s(u[a]),f=o.substring(l+a.length),m=[];if(c&&m.push(c),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var c=p(l),s=l.alias,d=Array.isArray(s)?s[0]:s,f=e.languages[d];if(!f)continue;i[1]=u(c,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var c=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(c+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=i(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var c=0;c<l.length&&!(a>=o.length);c++){var s=l[c];if("string"==typeof s||s.content&&"string"==typeof s.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof s?s:s.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof s?l.splice.apply(l,[c,1].concat(v)):s.content=v}}else s.content&&i(s.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),a=n(8380),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)}))}i.silent=!1,e.exports=i},8692:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8692},3157:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},c=e[r];if(c){function s(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(c.require,s),t(c.optional,s),t(c.modify,s)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var c=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),s=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(c);i=i.map(s),l=(l||[]).map(s);var u=n(i),d=n(l);i.forEach((function e(n){var r=c[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(c),m=u;a(m);){for(var h in p={},m){var g=c[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},c={};function s(e){if(e in l)return l[e];c[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var p=i(u.map((function(e){var t=s(e);return delete c[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var u in n)s(u);var d=[];for(var p in c)d.push(l[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),a=n(5228),o=n(9982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,c={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(c[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,T=60114,A=60109,C=60110,R=60112,L=60113,P=60120,N=60115,O=60116,I=60121,D=60128,M=60129,B=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var j=Symbol.for;S=j("react.element"),E=j("react.portal"),x=j("react.fragment"),_=j("react.strict_mode"),T=j("react.profiler"),A=j("react.provider"),C=j("react.context"),R=j("react.forward_ref"),L=j("react.suspense"),P=j("react.suspense_list"),N=j("react.memo"),O=j("react.lazy"),I=j("react.block"),j("react.scope"),D=j("react.opaque.id"),M=j("react.debug_trace_mode"),B=j("react.offscreen"),F=j("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function G(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var q=!1;function H(e,t){if(!e||q)return"";q=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var a=c.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{q=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?G(e):""}function V(e){switch(e.tag){case 5:return G(e.type);case 16:return G("Lazy");case 13:return G("Suspense");case 19:return G("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case T:return"Profiler";case _:return"StrictMode";case L:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case C:return(e.displayName||"Context")+".Consumer";case A:return(e._context.displayName||"Context")+".Provider";case R:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return W(e.type);case I:return W(e._render);case O:t=e._payload,e=e._init;try{return W(e(t))}catch(n){}}return null}function K(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Q(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Z(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=K(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=K(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,K(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&Z(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+K(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ce(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:K(n)}}function se(e,t){var n=K(t.value),r=K(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml",pe="http://www.w3.org/2000/svg";function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,be=(ge=function(e,t){if(e.namespaceURI!==pe||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Se(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ye).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Ee=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xe(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function _e(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Te(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ae=null,Ce=null,Re=null;function Le(e){if(e=ra(e)){if("function"!=typeof Ae)throw Error(i(280));var t=e.stateNode;t&&(t=oa(t),Ae(e.stateNode,e.type,t))}}function Pe(e){Ce?Re?Re.push(e):Re=[e]:Ce=e}function Ne(){if(Ce){var e=Ce,t=Re;if(Re=Ce=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Oe(e,t){return e(t)}function Ie(e,t,n,r,a){return e(t,n,r,a)}function De(){}var Me=Oe,Be=!1,Fe=!1;function je(){null===Ce&&null===Re||(De(),Ne())}function ze(e,t){var n=e.stateNode;if(null===n)return null;var r=oa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Ue=!1;if(d)try{var $e={};Object.defineProperty($e,"passive",{get:function(){Ue=!0}}),window.addEventListener("test",$e,$e),window.removeEventListener("test",$e,$e)}catch(ge){Ue=!1}function Ge(e,t,n,r,a,o,i,l,c){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(u){this.onError(u)}}var qe=!1,He=null,Ve=!1,We=null,Ke={onError:function(e){qe=!0,He=e}};function Ye(e,t,n,r,a,o,i,l,c){qe=!1,He=null,Ge.apply(Ke,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Xe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ze(e){if(Qe(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ze(a),e;if(o===r)return Ze(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,c=a.child;c;){if(c===n){l=!0,n=a,r=o;break}if(c===r){l=!0,r=a,n=o;break}c=c.sibling}if(!l){for(c=o.child;c;){if(c===n){l=!0,n=o,r=a;break}if(c===r){l=!0,r=o,n=a;break}c=c.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,at,ot=!1,it=[],lt=null,ct=null,st=null,ut=new Map,dt=new Map,pt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":lt=null;break;case"dragenter":case"dragleave":ct=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=mt(t,n,r,a,o),null!==t&&(null!==(t=ra(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function bt(e){var t=na(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Xe(n)))return e.blockedOn=t,void at(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ra(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){vt(e)&&n.delete(t)}function wt(){for(ot=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=ra(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==lt&&vt(lt)&&(lt=null),null!==ct&&vt(ct)&&(ct=null),null!==st&&vt(st)&&(st=null),ut.forEach(yt),dt.forEach(yt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,wt)))}function St(e){function t(t){return kt(t,e)}if(0<it.length){kt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==lt&&kt(lt,e),null!==ct&&kt(ct,e),null!==st&&kt(st,e),ut.forEach(t),dt.forEach(t),n=0;n<pt.length;n++)(r=pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<pt.length&&null===(n=pt[0]).blockedOn;)bt(n),null===n.blockedOn&&pt.shift()}function Et(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xt={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},_t={},Tt={};function At(e){if(_t[e])return _t[e];if(!xt[e])return e;var t,n=xt[e];for(t in n)if(n.hasOwnProperty(t)&&t in Tt)return _t[e]=n[t];return e}d&&(Tt=document.createElement("div").style,"AnimationEvent"in window||(delete xt.animationend.animation,delete xt.animationiteration.animation,delete xt.animationstart.animation),"TransitionEvent"in window||delete xt.transitionend.transition);var Ct=At("animationend"),Rt=At("animationiteration"),Lt=At("animationstart"),Pt=At("transitionend"),Nt=new Map,Ot=new Map,It=["abort","abort",Ct,"animationEnd",Rt,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Ot.set(r,t),Nt.set(r,a),s(a,[r])}}(0,o.unstable_now)();var Mt=8;function Bt(e){if(0!=(1&e))return Mt=15,1;if(0!=(2&e))return Mt=14,2;if(0!=(4&e))return Mt=13,4;var t=24&e;return 0!==t?(Mt=12,t):0!=(32&e)?(Mt=11,32):0!==(t=192&e)?(Mt=10,t):0!=(256&e)?(Mt=9,256):0!==(t=3584&e)?(Mt=8,t):0!=(4096&e)?(Mt=7,4096):0!==(t=4186112&e)?(Mt=6,t):0!==(t=62914560&e)?(Mt=5,t):67108864&e?(Mt=4,67108864):0!=(134217728&e)?(Mt=3,134217728):0!==(t=805306368&e)?(Mt=2,t):0!=(1073741824&e)?(Mt=1,1073741824):(Mt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Mt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Mt=15;else if(0!==(o=134217727&n)){var c=o&~i;0!==c?(r=Bt(c),a=Mt):0!==(l&=o)&&(r=Bt(l),a=Mt)}else 0!==(o=n&~i)?(r=Bt(o),a=Mt):0!==l&&(r=Bt(l),a=Mt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Bt(t),a<=Mt)return t;Mt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function jt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function zt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?zt(10,t):e;case 10:return 0===(e=Ut(192&~t))?zt(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&(0===(e=Ut(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Ut(e){return e&-e}function $t(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Gt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Ht(e)/Vt|0)|0},Ht=Math.log,Vt=Math.LN2;var Wt=o.unstable_UserBlockingPriority,Kt=o.unstable_runWithPriority,Yt=!0;function Qt(e,t,n,r){Be||De();var a=Zt,o=Be;Be=!0;try{Ie(a,e,t,n,r)}finally{(Be=o)||je()}}function Xt(e,t,n,r){Kt(Wt,Zt.bind(null,e,t,n,r))}function Zt(e,t,n,r){var a;if(Yt)if((a=0==(4&t))&&0<it.length&&-1<ft.indexOf(e))e=mt(null,e,t,n,r),it.push(e);else{var o=Jt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<ft.indexOf(e))return e=mt(o,e,t,n,r),void it.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return lt=gt(lt,e,t,n,r,a),!0;case"dragenter":return ct=gt(ct,e,t,n,r,a),!0;case"mouseover":return st=gt(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,gt(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,dt.set(o,gt(dt.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var a=Te(r);if(null!==(a=na(a))){var o=Qe(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Xe(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Dr(e,t,r,a,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,a="value"in en?en.value:en.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return nn=a.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function ln(){return!1}function cn(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?on:ln,this.isPropagationStopped=ln,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,un,dn,pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=cn(pn),mn=a({},pn,{view:0,detail:0}),hn=cn(mn),gn=a({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==dn&&(dn&&"mousemove"===e.type?(sn=e.screenX-dn.screenX,un=e.screenY-dn.screenY):un=sn=0,dn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),bn=cn(gn),vn=cn(a({},gn,{dataTransfer:0})),yn=cn(a({},mn,{relatedTarget:0})),wn=cn(a({},pn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=a({},pn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Sn=cn(kn),En=cn(a({},pn,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Tn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function An(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Tn[e])&&!!t[e]}function Cn(){return An}var Rn=a({},mn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=cn(Rn),Pn=cn(a({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=cn(a({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),On=cn(a({},pn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=a({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=cn(In),Mn=[9,13,27,32],Bn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var jn=d&&"TextEvent"in window&&!Fn,zn=d&&(!Bn||Fn&&8<Fn&&11>=Fn),Un=String.fromCharCode(32),$n=!1;function Gn(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var Vn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Vn[e.type]:"textarea"===t}function Kn(e,t,n,r){Pe(r),0<(t=Br(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Yn=null,Qn=null;function Xn(e){Rr(e,0)}function Zn(e){if(X(aa(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(d){var tr;if(d){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function ar(){Yn&&(Yn.detachEvent("onpropertychange",or),Qn=Yn=null)}function or(e){if("value"===e.propertyName&&Zn(Qn)){var t=[];if(Kn(t,Qn,e,Te(e)),e=Xn,Be)e(t);else{Be=!0;try{Oe(e,t)}finally{Be=!1,je()}}}}function ir(e,t,n){"focusin"===e?(ar(),Qn=n,(Yn=t).attachEvent("onpropertychange",or)):"focusout"===e&&ar()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Zn(Qn)}function cr(e,t){if("click"===e)return Zn(t)}function sr(e,t){if("input"===e||"change"===e)return Zn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},dr=Object.prototype.hasOwnProperty;function pr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!dr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Z((e=t.contentWindow).document)}return t}function br(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,yr=null,wr=null,kr=null,Sr=!1;function Er(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Sr||null==yr||yr!==Z(r)||("selectionStart"in(r=yr)&&br(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&pr(kr,r)||(kr=r,0<(r=Br(wr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(It,2);for(var xr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<xr.length;_r++)Ot.set(xr[_r],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Tr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ar=new Set("cancel close invalid load scroll toggle".split(" ").concat(Tr));function Cr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,c,s){if(Ye.apply(this,arguments),qe){if(!qe)throw Error(i(198));var u=He;qe=!1,He=null,Ve||(Ve=!0,We=u)}}(r,t,void 0,e),e.currentTarget=null}function Rr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],c=l.instance,s=l.currentTarget;if(l=l.listener,c!==o&&a.isPropagationStopped())break e;Cr(a,l,s),o=c}else for(i=0;i<r.length;i++){if(c=(l=r[i]).instance,s=l.currentTarget,l=l.listener,c!==o&&a.isPropagationStopped())break e;Cr(a,l,s),o=c}}}if(Ve)throw e=We,Ve=!1,We=null,e}function Lr(e,t){var n=ia(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Ar.has(t)||Or(t,!1,e,null),Or(t,!0,e,null)})))}function Or(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Ar.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=ia(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Ir(o,e,a,t),i.add(l))}function Ir(e,t,n,r){var a=Ot.get(t);switch(void 0===a?2:a){case 0:a=Qt;break;case 1:a=Xt;break;default:a=Zt}n=a.bind(null,t,n,e),a=void 0,!Ue||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&((c=i.stateNode.containerInfo)===a||8===c.nodeType&&c.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=na(l)))return;if(5===(c=i.tag)||6===c){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{Me(e,t,n)}finally{Fe=!1,je()}}((function(){var r=o,a=Te(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var c=fn,s=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":c=Ln;break;case"focusin":s="focus",c=yn;break;case"focusout":s="blur",c=yn;break;case"beforeblur":case"afterblur":c=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=bn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=Nn;break;case Ct:case Rt:case Lt:c=wn;break;case Pt:c=On;break;case"scroll":c=hn;break;case"wheel":c=Dn;break;case"copy":case"cut":case"paste":c=Sn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=Pn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=ze(m,p))&&u.push(Mr(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new c(l,s,null,n,a),i.push({event:l,listeners:u}))}}if(0==(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(s=n.relatedTarget||n.fromElement)||!na(s)&&!s[ea])&&(c||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,c?(c=r,null!==(s=(s=n.relatedTarget||n.toElement)?na(s):null)&&(s!==(d=Qe(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(c=null,s=r),c!==s)){if(u=bn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Pn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==c?l:aa(c),f=null==s?l:aa(s),(l=new u(h,m+"leave",c,n,a)).target=d,l.relatedTarget=f,h=null,na(a)===r&&((u=new u(p,m+"enter",s,n,a)).target=f,u.relatedTarget=d,h=u),d=h,c&&s)e:{for(p=s,m=0,f=u=c;f;f=Fr(f))m++;for(f=0,h=p;h;h=Fr(h))f++;for(;0<m-f;)u=Fr(u),m--;for(;0<f-m;)p=Fr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Fr(u),p=Fr(p)}u=null}else u=null;null!==c&&jr(i,l,c,u,!1),null!==s&&null!==d&&jr(i,d,s,u,!0)}if("select"===(c=(l=r?aa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===c&&"file"===l.type)var g=Jn;else if(Wn(l))if(er)g=sr;else{g=lr;var b=ir}else(c=l.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=cr);switch(g&&(g=g(e,r))?Kn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?aa(r):window,e){case"focusin":(Wn(b)||"true"===b.contentEditable)&&(yr=b,wr=r,kr=null);break;case"focusout":kr=wr=yr=null;break;case"mousedown":Sr=!0;break;case"contextmenu":case"mouseup":case"dragend":Sr=!1,Er(i,n,a);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":Er(i,n,a)}var v;if(Bn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Hn?Gn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(zn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Hn&&(v=rn()):(tn="value"in(en=a)?en.value:en.textContent,Hn=!0)),0<(b=Br(r,y)).length&&(y=new En(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=jn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:($n=!0,Un);case"textInput":return(e=t.data)===Un&&$n?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!Bn&&Gn(e,t)?(e=rn(),nn=tn=en=null,Hn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return zn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Br(r,"onBeforeInput")).length&&(a=new En("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Rr(i,t)}))}function Mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Br(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=ze(e,n))&&r.unshift(Mr(e,o,a)),null!=(o=ze(e,t))&&r.push(Mr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function jr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,c=l.alternate,s=l.stateNode;if(null!==c&&c===r)break;5===l.tag&&null!==s&&(l=s,a?null!=(c=ze(n,o))&&i.unshift(Mr(n,c,l)):a||null!=(c=ze(n,o))&&i.push(Mr(n,c,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function zr(){}var Ur=null,$r=null;function Gr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Hr="function"==typeof setTimeout?setTimeout:void 0,Vr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Kr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Yr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qr=0;var Xr=Math.random().toString(36).slice(2),Zr="__reactFiber$"+Xr,Jr="__reactProps$"+Xr,ea="__reactContainer$"+Xr,ta="__reactEvents$"+Xr;function na(e){var t=e[Zr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ea]||n[Zr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Yr(e);null!==e;){if(n=e[Zr])return n;e=Yr(e)}return t}n=(e=n).parentNode}return null}function ra(e){return!(e=e[Zr]||e[ea])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function aa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oa(e){return e[Jr]||null}function ia(e){var t=e[ta];return void 0===t&&(t=e[ta]=new Set),t}var la=[],ca=-1;function sa(e){return{current:e}}function ua(e){0>ca||(e.current=la[ca],la[ca]=null,ca--)}function da(e,t){ca++,la[ca]=e.current,e.current=t}var pa={},fa=sa(pa),ma=sa(!1),ha=pa;function ga(e,t){var n=e.type.contextTypes;if(!n)return pa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ba(e){return null!=(e=e.childContextTypes)}function va(){ua(ma),ua(fa)}function ya(e,t,n){if(fa.current!==pa)throw Error(i(168));da(fa,t),da(ma,n)}function wa(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,W(t)||"Unknown",o));return a({},n,r)}function ka(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pa,ha=fa.current,da(fa,e),da(ma,ma.current),!0}function Sa(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wa(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ua(ma),ua(fa),da(fa,e)):ua(ma),da(ma,n)}var Ea=null,xa=null,_a=o.unstable_runWithPriority,Ta=o.unstable_scheduleCallback,Aa=o.unstable_cancelCallback,Ca=o.unstable_shouldYield,Ra=o.unstable_requestPaint,La=o.unstable_now,Pa=o.unstable_getCurrentPriorityLevel,Na=o.unstable_ImmediatePriority,Oa=o.unstable_UserBlockingPriority,Ia=o.unstable_NormalPriority,Da=o.unstable_LowPriority,Ma=o.unstable_IdlePriority,Ba={},Fa=void 0!==Ra?Ra:function(){},ja=null,za=null,Ua=!1,$a=La(),Ga=1e4>$a?La:function(){return La()-$a};function qa(){switch(Pa()){case Na:return 99;case Oa:return 98;case Ia:return 97;case Da:return 96;case Ma:return 95;default:throw Error(i(332))}}function Ha(e){switch(e){case 99:return Na;case 98:return Oa;case 97:return Ia;case 96:return Da;case 95:return Ma;default:throw Error(i(332))}}function Va(e,t){return e=Ha(e),_a(e,t)}function Wa(e,t,n){return e=Ha(e),Ta(e,t,n)}function Ka(){if(null!==za){var e=za;za=null,Aa(e)}Ya()}function Ya(){if(!Ua&&null!==ja){Ua=!0;var e=0;try{var t=ja;Va(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),ja=null}catch(n){throw null!==ja&&(ja=ja.slice(e+1)),Ta(Na,Ka),n}finally{Ua=!1}}}var Qa=k.ReactCurrentBatchConfig;function Xa(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Za=sa(null),Ja=null,eo=null,to=null;function no(){to=eo=Ja=null}function ro(e){var t=Za.current;ua(Za),e.type._context._currentValue=t}function ao(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function oo(e,t){Ja=e,to=eo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Bi=!0),e.firstContext=null)}function io(e,t){if(to!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(to=e,t=1073741823),t={context:e,observedBits:t,next:null},null===eo){if(null===Ja)throw Error(i(308));eo=t,Ja.dependencies={lanes:0,firstContext:t,responders:null}}else eo=eo.next=t;return e._currentValue}var lo=!1;function co(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function po(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function mo(e,t,n,r){var o=e.updateQueue;lo=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,c=o.shared.pending;if(null!==c){o.shared.pending=null;var s=c,u=s.next;s.next=null,null===l?i=u:l.next=u,l=s;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=s)}}if(null!==i){for(p=o.baseState,l=0,d=u=s=null;;){c=i.lane;var f=i.eventTime;if((r&c)===c){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(c=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,c);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(c="function"==typeof(m=h.payload)?m.call(f,p,c):m))break e;p=a({},p,c);break e;case 2:lo=!0}}null!==i.callback&&(e.flags|=32,null===(c=o.effects)?o.effects=[i]:c.push(i))}else f={eventTime:f,lane:c,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,s=p):d=d.next=f,l|=c;if(null===(i=i.next)){if(null===(c=o.shared.pending))break;i=c.next,c.next=null,o.lastBaseUpdate=c,o.shared.pending=null}}null===d&&(s=p),o.baseState=s,o.firstBaseUpdate=u,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var go=(new r.Component).refs;function bo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var vo={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pc(),a=fc(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),po(e,o),mc(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pc(),a=fc(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),po(e,o),mc(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pc(),r=fc(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),po(e,a),mc(e,r,n)}};function yo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!pr(n,r)||!pr(a,o))}function wo(e,t,n){var r=!1,a=pa,o=t.contextType;return"object"==typeof o&&null!==o?o=io(o):(a=ba(t)?ha:fa.current,o=(r=null!=(r=t.contextTypes))?ga(e,a):pa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=vo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ko(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&vo.enqueueReplaceState(t,t.state,null)}function So(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=go,co(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=io(o):(o=ba(t)?ha:fa.current,a.context=ga(e,o)),mo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(bo(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&vo.enqueueReplaceState(a,a.state,null),mo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var Eo=Array.isArray;function xo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===go&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function _o(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function To(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Vc(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function c(e,t,n,r){return null===t||6!==t.tag?((t=Qc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=xo(e,t,n),r.return=e,r):((r=Wc(n.type,n.key,n.props,null,e.mode,r)).ref=xo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Kc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Qc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Wc(t.type,t.key,t.props,null,e.mode,n)).ref=xo(e,null,t),n.return=e,n;case E:return(t=Xc(t,e.mode,n)).return=e,t}if(Eo(t)||$(t))return(t=Kc(t,e.mode,n,null)).return=e,t;_o(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:c(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):s(e,t,n,r):null;case E:return n.key===a?u(e,t,n,r):null}if(Eo(n)||$(n))return null!==a?null:d(e,t,n,r,null);_o(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return c(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):s(t,e,r,a);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(Eo(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);_o(t,r)}return null}function h(a,i,l,c){for(var s=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,l[h],c);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===u?s=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(a,d),s;if(null===d){for(;h<l.length;h++)null!==(d=p(a,l[h],c))&&(i=o(d,i,h),null===u?s=d:u.sibling=d,u=d);return s}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],c))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===u?s=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(a,e)})),s}function g(a,l,c,s){var u=$(c);if("function"!=typeof u)throw Error(i(150));if(null==(c=u.call(c)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=c.next();null!==h&&!v.done;g++,v=c.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,s);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),u;if(null===h){for(;!v.done;g++,v=c.next())null!==(v=p(a,v.value,s))&&(l=o(v,l,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(a,h);!v.done;g++,v=c.next())null!==(v=m(h,a,g,v.value,s))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),u}return function(e,r,o,c){var s="object"==typeof o&&null!==o&&o.type===x&&null===o.key;s&&(o=o.props.children);var u="object"==typeof o&&null!==o;if(u)switch(o.$$typeof){case S:e:{for(u=o.key,s=r;null!==s;){if(s.key===u){if(7===s.tag){if(o.type===x){n(e,s.sibling),(r=a(s,o.props.children)).return=e,e=r;break e}}else if(s.elementType===o.type){n(e,s.sibling),(r=a(s,o.props)).ref=xo(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===x?((r=Kc(o.props.children,e.mode,c,o.key)).return=e,e=r):((c=Wc(o.type,o.key,o.props,null,e.mode,c)).ref=xo(e,r,o),c.return=e,e=c)}return l(e);case E:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xc(o,e.mode,c)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Qc(o,e.mode,c)).return=e,e=r),l(e);if(Eo(o))return h(e,r,o,c);if($(o))return g(e,r,o,c);if(u&&_o(e,o),void 0===o&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,W(e.type)||"Component"))}return n(e,r)}}var Ao=To(!0),Co=To(!1),Ro={},Lo=sa(Ro),Po=sa(Ro),No=sa(Ro);function Oo(e){if(e===Ro)throw Error(i(174));return e}function Io(e,t){switch(da(No,t),da(Po,e),da(Lo,Ro),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Lo),da(Lo,t)}function Do(){ua(Lo),ua(Po),ua(No)}function Mo(e){Oo(No.current);var t=Oo(Lo.current),n=me(t,e.type);t!==n&&(da(Po,e),da(Lo,n))}function Bo(e){Po.current===e&&(ua(Lo),ua(Po))}var Fo=sa(0);function jo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zo=null,Uo=null,$o=!1;function Go(e,t){var n=qc(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Ho(e){if($o){var t=Uo;if(t){var n=t;if(!qo(e,t)){if(!(t=Kr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,$o=!1,void(zo=e);Go(zo,n)}zo=e,Uo=Kr(t.firstChild)}else e.flags=-1025&e.flags|2,$o=!1,zo=e}}function Vo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;zo=e}function Wo(e){if(e!==zo)return!1;if(!$o)return Vo(e),$o=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=Uo;t;)Go(e,t),t=Kr(t.nextSibling);if(Vo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Uo=Kr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Uo=null}}else Uo=zo?Kr(e.stateNode.nextSibling):null;return!0}function Ko(){Uo=zo=null,$o=!1}var Yo=[];function Qo(){for(var e=0;e<Yo.length;e++)Yo[e]._workInProgressVersionPrimary=null;Yo.length=0}var Xo=k.ReactCurrentDispatcher,Zo=k.ReactCurrentBatchConfig,Jo=0,ei=null,ti=null,ni=null,ri=!1,ai=!1;function oi(){throw Error(i(321))}function ii(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function li(e,t,n,r,a,o){if(Jo=o,ei=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Xo.current=null===e||null===e.memoizedState?Oi:Ii,e=n(r,a),ai){o=0;do{if(ai=!1,!(25>o))throw Error(i(301));o+=1,ni=ti=null,t.updateQueue=null,Xo.current=Di,e=n(r,a)}while(ai)}if(Xo.current=Ni,t=null!==ti&&null!==ti.next,Jo=0,ni=ti=ei=null,ri=!1,t)throw Error(i(300));return e}function ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ni?ei.memoizedState=ni=e:ni=ni.next=e,ni}function si(){if(null===ti){var e=ei.alternate;e=null!==e?e.memoizedState:null}else e=ti.next;var t=null===ni?ei.memoizedState:ni.next;if(null!==t)ni=t,ti=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ti=e).memoizedState,baseState:ti.baseState,baseQueue:ti.baseQueue,queue:ti.queue,next:null},null===ni?ei.memoizedState=ni=e:ni=ni.next=e}return ni}function ui(e,t){return"function"==typeof t?t(e):t}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ti,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var c=l=o=null,s=a;do{var u=s.lane;if((Jo&u)===u)null!==c&&(c=c.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var d={lane:u,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===c?(l=c=d,o=r):c=c.next=d,ei.lanes|=u,Ul|=u}s=s.next}while(null!==s&&s!==a);null===c?o=r:c.next=l,ur(r,t.memoizedState)||(Bi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=c,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function pi(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);ur(o,t.memoizedState)||(Bi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Jo&e)===e)&&(t._workInProgressVersionPrimary=r,Yo.push(t))),e)return n(t._source);throw Yo.push(t),Error(i(350))}function mi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),c=Xo.current,s=c.useState((function(){return fi(a,t,n)})),u=s[1],d=s[0];s=ni;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=ei;return e.memoizedState={refs:f,source:t,subscribe:r},c.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=o(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(u(e),e=fc(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var c=31-qt(i),s=1<<c;r[c]|=e,i&=~s}}}),[n,t,r]),c.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fc(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=u=Pi.bind(null,ei,e),s.queue=e,s.baseQueue=null,d=fi(a,t,n),s.memoizedState=s.baseState=d),d}function hi(e,t,n){return mi(si(),e,t,n)}function gi(e){var t=ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Pi.bind(null,ei,e),[t.memoizedState,e]}function bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ei.updateQueue)?(t={lastEffect:null},ei.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},ci().memoizedState=e}function yi(){return si().memoizedState}function wi(e,t,n,r){var a=ci();ei.flags|=e,a.memoizedState=bi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ti){var i=ti.memoizedState;if(o=i.destroy,null!==r&&ii(r,i.deps))return void bi(t,n,o,r)}ei.flags|=e,a.memoizedState=bi(1|t,n,o,r)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return ki(516,4,e,t)}function xi(e,t){return ki(4,2,e,t)}function _i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ti(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,_i.bind(null,t,e),n)}function Ai(){}function Ci(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ri(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Va(98>n?98:n,(function(){e(!0)})),Va(97<n?97:n,(function(){var n=Zo.transition;Zo.transition=1;try{e(!1),t()}finally{Zo.transition=n}}))}function Pi(e,t,n){var r=pc(),a=fc(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===ei||null!==i&&i===ei)ai=ri=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,c=i(l,n);if(o.eagerReducer=i,o.eagerState=c,ur(c,l))return}catch(s){}mc(e,a,r)}}var Ni={readContext:io,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Oi={readContext:io,useCallback:function(e,t){return ci().memoizedState=[e,void 0===t?null:t],e},useContext:io,useEffect:Si,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,_i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return wi(4,2,e,t)},useMemo:function(e,t){var n=ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,ei,e),[r.memoizedState,e]},useRef:vi,useState:gi,useDebugValue:Ai,useDeferredValue:function(e){var t=gi(e),n=t[0],r=t[1];return Si((function(){var t=Zo.transition;Zo.transition=1;try{r(e)}finally{Zo.transition=t}}),[e]),n},useTransition:function(){var e=gi(!1),t=e[0];return vi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=ci();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mi(r,e,t,n)},useOpaqueIdentifier:function(){if($o){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qr++).toString(36))),Error(i(355))})),n=gi(t)[1];return 0==(2&ei.mode)&&(ei.flags|=516,bi(5,(function(){n("r:"+(Qr++).toString(36))}),void 0,null)),t}return gi(t="r:"+(Qr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:io,useCallback:Ci,useContext:io,useEffect:Ei,useImperativeHandle:Ti,useLayoutEffect:xi,useMemo:Ri,useReducer:di,useRef:yi,useState:function(){return di(ui)},useDebugValue:Ai,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Ei((function(){var t=Zo.transition;Zo.transition=1;try{r(e)}finally{Zo.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di={readContext:io,useCallback:Ci,useContext:io,useEffect:Ei,useImperativeHandle:Ti,useLayoutEffect:xi,useMemo:Ri,useReducer:pi,useRef:yi,useState:function(){return pi(ui)},useDebugValue:Ai,useDeferredValue:function(e){var t=pi(ui),n=t[0],r=t[1];return Ei((function(){var t=Zo.transition;Zo.transition=1;try{r(e)}finally{Zo.transition=t}}),[e]),n},useTransition:function(){var e=pi(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return pi(ui)[0]},unstable_isNewReconciler:!1},Mi=k.ReactCurrentOwner,Bi=!1;function Fi(e,t,n,r){t.child=null===e?Co(t,null,n,r):Ao(t,e.child,n,r)}function ji(e,t,n,r,a){n=n.render;var o=t.ref;return oo(t,a),r=li(e,t,n,r,o,a),null===e||Bi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function zi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Wc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Ui(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:pr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Vc(i,r)).ref=t.ref,e.return=t,t.child=e)}function Ui(e,t,n,r,a,o){if(null!==e&&pr(e.memoizedProps,r)&&e.ref===t.ref){if(Bi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Bi=!0)}return qi(e,t,n,r,o)}function $i(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Sc(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Sc(t,e),null;t.memoizedState={baseLanes:0},Sc(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Sc(t,r);return Fi(e,t,a,n),t.child}function Gi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ba(n)?ha:fa.current;return o=ga(t,o),oo(t,a),n=li(e,t,n,r,o,a),null===e||Bi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Hi(e,t,n,r,a){if(ba(n)){var o=!0;ka(t)}else o=!1;if(oo(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wo(t,n,r),So(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var c=i.context,s=n.contextType;"object"==typeof s&&null!==s?s=io(s):s=ga(t,s=ba(n)?ha:fa.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||c!==s)&&ko(t,i,r,s),lo=!1;var p=t.memoizedState;i.state=p,mo(t,r,i,a),c=t.memoizedState,l!==r||p!==c||ma.current||lo?("function"==typeof u&&(bo(t,n,u,r),c=t.memoizedState),(l=lo||yo(t,n,l,r,p,c,s))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=s,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,s=t.type===t.elementType?l:Xa(t.type,l),i.props=s,d=t.pendingProps,p=i.context,"object"==typeof(c=n.contextType)&&null!==c?c=io(c):c=ga(t,c=ba(n)?ha:fa.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==c)&&ko(t,i,r,c),lo=!1,p=t.memoizedState,i.state=p,mo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||ma.current||lo?("function"==typeof f&&(bo(t,n,f,r),m=t.memoizedState),(s=lo||yo(t,n,s,r,p,m,c))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,c),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,c)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=c,r=s):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Vi(e,t,n,r,o,a)}function Vi(e,t,n,r,a,o){Gi(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&Sa(t,n,!1),ol(e,t,o);r=t.stateNode,Mi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ao(t,e.child,null,o),t.child=Ao(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&Sa(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?ya(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ya(0,t.context,!1),Io(e,t.containerInfo)}var Ki,Yi,Qi,Xi={dehydrated:null,retryLane:0};function Zi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),da(Fo,1&o),null===e?(void 0!==a.fallback&&Ho(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Yc({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Yc(t,a,0,null),n=Kc(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Vc(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Vc(i,l),null!==e?r=Vc(e,r):(r=Kc(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ao(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(da(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===jo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===jo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Vc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Vc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!$o)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ba(t.type)&&va(),null;case 3:return Do(),ua(ma),ua(fa),Qo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Bo(t);var o=Oo(No.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Oo(Lo.current),Wo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Zr]=t,r[Jr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<Tr.length;e++)Lr(Tr[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":ce(r,l),Lr("invalid",r)}for(var s in xe(n,l),e=null,l)l.hasOwnProperty(s)&&(o=l[s],"children"===s?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):c.hasOwnProperty(s)&&null!=o&&"onScroll"===s&&Lr("scroll",r));switch(n){case"input":Q(r),re(r,l,!0);break;case"textarea":Q(r),ue(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=zr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(s=9===o.nodeType?o:o.ownerDocument,e===de&&(e=fe(n)),e===de?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Zr]=t,e[Jr]=r,Ki(e,t),t.stateNode=e,s=_e(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Tr.length;o++)Lr(Tr[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":ce(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}xe(n,o);var u=o;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?Se(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&be(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(c.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,s))}switch(n){case"input":Q(e),re(e,r,!1);break;case"textarea":Q(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+K(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=zr)}Gr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Qi(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Oo(No.current),Oo(Lo.current),Wo(t)?(r=t.stateNode,n=t.memoizedProps,r[Zr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Zr]=t,t.stateNode=r)}return null;case 13:return ua(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vc(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Do(),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ro(t),null;case 19:if(ua(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(s=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=jo(e))){for(t.flags|=64,il(r,!1),null!==(l=s.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(s=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,l.type=s.type,e=s.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return da(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&Ga()>Vl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=jo(s))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!$o)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ga()-r.renderingStartTime>Vl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ga(),n.sibling=null,t=Fo.current,da(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Ec(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function cl(e){switch(e.tag){case 1:ba(e.type)&&va();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Do(),ua(ma),ua(fa),Qo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Bo(e),null;case 13:return ua(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Fo),null;case 4:return Do(),null;case 10:return ro(e),null;case 23:case 24:return Ec(),null;default:return null}}function sl(e,t){try{var n="",r=t;do{n+=V(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function ul(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Ki=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Yi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Oo(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=zr)}for(d in xe(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var s=o[d];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(c.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var u=r[d];if(s=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&u!==s&&(null!=u||null!=s))if("style"===d)if(s){for(i in s)!s.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&s[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(l||(l=[]),l.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(l=l||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(l=l||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(c.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Lr("scroll",e),l||s===u||(l=[])):"object"==typeof u&&null!==u&&u.$$typeof===D?u.toString():(l=l||[]).push(d,u))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Qi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ql||(Ql=!0,Xl=r),ul(0,t)},n}function fl(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return ul(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Zl?Zl=new Set([this]):Zl.add(this),ul(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zc(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xa(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Bc(n,e),Mc(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xa(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Gr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&St(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=ke("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xa&&"function"==typeof xa.onCommitFiberUnmount)try{xa.onCommitFiberUnmount(Ea,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Bc(t,n);else{r=t;try{a()}catch(o){zc(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zc(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=zr));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,c=a,s=c;;)if(yl(l,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===c)break e;for(;null===s.sibling;){if(null===s.return||s.return===c)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(l=n,c=a.stateNode,8===l.nodeType?l.parentNode.removeChild(c):l.removeChild(c)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Tl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),_e(e,a),t=_e(e,r),a=0;a<o.length;a+=2){var l=o[a],c=o[a+1];"style"===l?Se(n,c):"dangerouslySetInnerHTML"===l?be(n,c):"children"===l?ve(n,c):w(n,l,c,t)}switch(e){case"input":ne(n,r);break;case"textarea":se(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,St(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=Ga(),vl(t.child,!0)),void Al(t);case 19:return void Al(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Al(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$c.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Cl(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Rl=Math.ceil,Ll=k.ReactCurrentDispatcher,Pl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Bl=sa(0),Fl=0,jl=null,zl=0,Ul=0,$l=0,Gl=0,ql=null,Hl=0,Vl=1/0;function Wl(){Vl=Ga()+500}var Kl,Yl=null,Ql=!1,Xl=null,Zl=null,Jl=!1,ec=null,tc=90,nc=[],rc=[],ac=null,oc=0,ic=null,lc=-1,cc=0,sc=0,uc=null,dc=!1;function pc(){return 0!=(48&Nl)?Ga():-1!==lc?lc:lc=Ga()}function fc(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===cc&&(cc=zl),0!==Qa.transition){0!==sc&&(sc=null!==ql?ql.pendingLanes:0),e=cc;var t=4186112&~sc;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=zt(12,cc):e=zt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),cc),e}function mc(e,t,n){if(50<oc)throw oc=0,ic=null,Error(i(185));if(null===(e=hc(e,t)))return null;Gt(e,t,n),e===Ol&&($l|=t,4===Fl&&vc(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?yc(e):(gc(e,n),0===Nl&&(Wl(),Ka())):(0==(4&Nl)||98!==r&&99!==r||(null===ac?ac=new Set([e]):ac.add(e)),gc(e,n)),ql=e}function hc(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gc(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var c=31-qt(l),s=1<<c,u=o[c];if(-1===u){if(0==(s&r)||0!=(s&a)){u=t,Bt(s);var d=Mt;o[c]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=s);l&=~s}if(r=Ft(e,e===Ol?Dl:0),t=Mt,0===r)null!==n&&(n!==Ba&&Aa(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ba&&Aa(n)}15===t?(n=yc.bind(null,e),null===ja?(ja=[n],za=Ta(Na,Ya)):ja.push(n),n=Ba):14===t?n=Wa(99,yc.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Wa(n,bc.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bc(e){if(lc=-1,sc=cc=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Dc()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Tc();for(Ol===e&&Dl===r||(Wl(),xc(e,r));;)try{Rc();break}catch(c){_c(e,c)}if(no(),Ll.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=Fl),0!=(zl&$l))xc(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=jt(e))&&(r=Ac(e,n))),1===r)throw t=jl,xc(e,0),vc(e,n),gc(e,Ga()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Nc(e);break;case 3:if(vc(e,n),(62914560&n)===n&&10<(r=Hl+500-Ga())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){pc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Hr(Nc.bind(null,e),r);break}Nc(e);break;case 4:if(vc(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=Ga()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Rl(n/1960))-n)){e.timeoutHandle=Hr(Nc.bind(null,e),n);break}Nc(e);break;default:throw Error(i(329))}}return gc(e,Ga()),e.callbackNode===t?bc.bind(null,e):null}function vc(e,t){for(t&=~Gl,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function yc(e){if(0!=(48&Nl))throw Error(i(327));if(Dc(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ac(e,t);0!=(zl&$l)&&(n=Ac(e,t=Ft(e,t)))}else n=Ac(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=jt(e))&&(n=Ac(e,t))),1===n)throw n=jl,xc(e,0),vc(e,t),gc(e,Ga()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Nc(e),gc(e,Ga()),null}function wc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Wl(),Ka())}}function kc(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Wl(),Ka())}}function Sc(e,t){da(Bl,Ml),Ml|=t,zl|=t}function Ec(){Ml=Bl.current,ua(Bl)}function xc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Vr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&va();break;case 3:Do(),ua(ma),ua(fa),Qo();break;case 5:Bo(r);break;case 4:Do();break;case 13:case 19:ua(Fo);break;case 10:ro(r);break;case 23:case 24:Ec()}n=n.return}Ol=e,Il=Vc(e.current,null),Dl=Ml=zl=t,Fl=0,jl=null,Gl=$l=Ul=0}function _c(e,t){for(;;){var n=Il;try{if(no(),Xo.current=Ni,ri){for(var r=ei.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ri=!1}if(Jo=0,ni=ti=ei=null,ai=!1,Pl.current=null,null===n||null===n.return){Fl=1,jl=t,Il=null;break}e:{var o=e,i=n.return,l=n,c=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==c&&"object"==typeof c&&"function"==typeof c.then){var s=c;if(0==(2&l.mode)){var u=l.alternate;u?(l.updateQueue=u.updateQueue,l.memoizedState=u.memoizedState,l.lanes=u.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(s),p.updateQueue=b}else g.add(s);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=uo(-1,1);v.tag=2,po(l,v)}l.lanes|=1;break e}c=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,c=new Set,y.set(s,c)):void 0===(c=y.get(s))&&(c=new Set,y.set(s,c)),!c.has(l)){c.add(l);var w=Uc.bind(null,o,s,l);s.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);c=Error((W(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),c=sl(c,l),p=i;do{switch(p.tag){case 3:o=c,p.flags|=4096,t&=-t,p.lanes|=t,fo(p,pl(0,o,t));break e;case 1:o=c;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Zl||!Zl.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,fo(p,fl(p,o,t));break e}}p=p.return}while(null!==p)}Pc(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Tc(){var e=Ll.current;return Ll.current=Ni,null===e?Ni:e}function Ac(e,t){var n=Nl;Nl|=16;var r=Tc();for(Ol===e&&Dl===t||xc(e,t);;)try{Cc();break}catch(a){_c(e,a)}if(no(),Nl=n,Ll.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,Fl}function Cc(){for(;null!==Il;)Lc(Il)}function Rc(){for(;null!==Il&&!Ca();)Lc(Il)}function Lc(e){var t=Kl(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Pc(e):Il=t,Pl.current=null}function Pc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=cl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Fl&&(Fl=5)}function Nc(e){var t=qa();return Va(99,Oc.bind(null,e,t)),null}function Oc(e,t){do{Dc()}while(null!==ec);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,c=e.expirationTimes;0<o;){var s=31-qt(o),u=1<<s;a[s]=0,l[s]=-1,c[s]=-1,o&=~u}if(null!==ac&&0==(24&r)&&ac.has(e)&&ac.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Pl.current=null,Ur=Yt,br(l=gr())){if("selectionStart"in l)c={start:l.selectionStart,end:l.selectionEnd};else e:if(c=(c=l.ownerDocument)&&c.defaultView||window,(u=c.getSelection&&c.getSelection())&&0!==u.rangeCount){c=u.anchorNode,o=u.anchorOffset,s=u.focusNode,u=u.focusOffset;try{c.nodeType,s.nodeType}catch(T){c=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==c||0!==o&&3!==g.nodeType||(p=d+o),g!==s||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===c&&++m===o&&(p=d),b===s&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}c=-1===p||-1===f?null:{start:p,end:f}}else c=null;c=c||{start:0,end:0}}else c=null;$r={focusedElem:l,selectionRange:c},Yt=!1,uc=null,dc=!1,Yl=r;do{try{Ic()}catch(T){if(null===Yl)throw Error(i(330));zc(Yl,T),Yl=Yl.nextEffect}}while(null!==Yl);uc=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&ve(Yl.stateNode,""),128&y){var w=Yl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Yl),Yl.flags&=-3;break;case 6:Sl(Yl),Yl.flags&=-3,Tl(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,Tl(Yl.alternate,Yl);break;case 4:Tl(Yl.alternate,Yl);break;case 8:_l(l,c=Yl);var S=c.alternate;wl(c),null!==S&&wl(S)}Yl=Yl.nextEffect}}catch(T){if(null===Yl)throw Error(i(330));zc(Yl,T),Yl=Yl.nextEffect}}while(null!==Yl);if(k=$r,w=gr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&br(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),c=y.textContent.length,S=Math.min(l.start,c),l=void 0===l.end?S:Math.min(l.end,c),!k.extend&&S>l&&(c=l,l=S,S=c),c=mr(y,S),o=mr(y,l),c&&o&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(c.node,c.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Yt=!!Ur,$r=Ur=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var E=Yl.flags;if(36&E&&bl(y,Yl.alternate,Yl),128&E){w=void 0;var x=Yl.ref;if(null!==x){var _=Yl.stateNode;Yl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Yl=Yl.nextEffect}}catch(T){if(null===Yl)throw Error(i(330));zc(Yl,T),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,ec=e,tc=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((E=Yl).sibling=null,E.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Zl=null),1===r?e===ic?oc++:(oc=0,ic=e):oc=0,n=n.stateNode,xa&&"function"==typeof xa.onCommitFiberRoot)try{xa.onCommitFiberRoot(Ea,n,void 0,64==(64&n.current.flags))}catch(T){}if(gc(e,Ga()),Ql)throw Ql=!1,e=Xl,Xl=null,e;return 0!=(8&Nl)||Ka(),null}function Ic(){for(;null!==Yl;){var e=Yl.alternate;dc||null===uc||(0!=(8&Yl.flags)?et(Yl,uc)&&(dc=!0):13===Yl.tag&&Cl(e,Yl)&&et(Yl,uc)&&(dc=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Wa(97,(function(){return Dc(),null}))),Yl=Yl.nextEffect}}function Dc(){if(90!==tc){var e=97<tc?97:tc;return tc=90,Va(e,Fc)}return!1}function Mc(e,t){nc.push(t,e),Jl||(Jl=!0,Wa(97,(function(){return Dc(),null})))}function Bc(e,t){rc.push(t,e),Jl||(Jl=!0,Wa(97,(function(){return Dc(),null})))}function Fc(){if(null===ec)return!1;var e=ec;if(ec=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rc;rc=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(s){if(null===o)throw Error(i(330));zc(o,s)}}for(n=nc,nc=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var c=a.create;a.destroy=c()}catch(s){if(null===o)throw Error(i(330));zc(o,s)}}for(c=e.current.firstEffect;null!==c;)e=c.nextEffect,c.nextEffect=null,8&c.flags&&(c.sibling=null,c.stateNode=null),c=e;return Nl=t,Ka(),!0}function jc(e,t,n){po(e,t=pl(0,t=sl(n,t),1)),t=pc(),null!==(e=hc(e,1))&&(Gt(e,1,t),gc(e,t))}function zc(e,t){if(3===e.tag)jc(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){jc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Zl||!Zl.has(r))){var a=fl(n,e=sl(t,e),1);if(po(n,a),a=pc(),null!==(n=hc(n,1)))Gt(n,1,a),gc(n,a);else if("function"==typeof r.componentDidCatch&&(null===Zl||!Zl.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Uc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pc(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===Fl||3===Fl&&(62914560&Dl)===Dl&&500>Ga()-Hl?xc(e,0):Gl|=n),gc(e,t)}function $c(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===cc&&(cc=zl),0===(t=Ut(62914560&~cc))&&(t=4194304))),n=pc(),null!==(e=hc(e,t))&&(Gt(e,t,n),gc(e,n))}function Gc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function qc(e,t,n,r){return new Gc(e,t,n,r)}function Hc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Vc(e,t){var n=e.alternate;return null===n?((n=qc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Wc(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hc(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Kc(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case T:return(e=qc(12,n,t,8|a)).elementType=T,e.type=T,e.lanes=o,e;case L:return(e=qc(13,n,t,a)).type=L,e.elementType=L,e.lanes=o,e;case P:return(e=qc(19,n,t,a)).elementType=P,e.lanes=o,e;case B:return Yc(n,a,o,t);case F:return(e=qc(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case A:l=10;break e;case C:l=9;break e;case R:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=qc(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Kc(e,t,n,r){return(e=qc(7,e,r,t)).lanes=n,e}function Yc(e,t,n,r){return(e=qc(23,e,r,t)).elementType=B,e.lanes=n,e}function Qc(e,t,n){return(e=qc(6,e,null,t)).lanes=n,e}function Xc(e,t,n){return(t=qc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Zc(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=$t(0),this.expirationTimes=$t(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$t(0),this.mutableSourceEagerHydrationData=null}function Jc(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function es(e,t,n,r){var a=t.current,o=pc(),l=fc(a);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var c=n;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(ba(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(i(171))}if(1===n.tag){var s=n.type;if(ba(s)){n=wa(n,s,c);break e}}n=c}else n=pa;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),po(a,t),mc(a,l,o),l}function ts(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function ns(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function rs(e,t){ns(e,t),(e=e.alternate)&&ns(e,t)}function as(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Zc(e,t,null!=n&&!0===n.hydrate),t=qc(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,co(t),e[ea]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function os(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function is(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=ts(i);l.call(e)}}es(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new as(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var c=a;a=function(){var e=ts(i);c.call(e)}}kc((function(){es(t,i,e,a)}))}return ts(i)}function ls(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!os(t))throw Error(i(200));return Jc(e,t,null,n)}Kl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ma.current)Bi=!0;else{if(0==(n&r)){switch(Bi=!1,t.tag){case 3:Wi(t),Ko();break;case 5:Mo(t);break;case 1:ba(t.type)&&ka(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;da(Za,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Zi(e,t,n):(da(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);da(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),da(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,$i(e,t,n)}return ol(e,t,n)}Bi=0!=(16384&e.flags)}else Bi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ga(t,fa.current),oo(t,n),a=li(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ba(r)){var o=!0;ka(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,co(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&bo(t,r,l,e),a.updater=vo,t.stateNode=a,a._reactInternals=t,So(t,r,e,n),t=Vi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hc(e)?1:0;if(null!=e){if((e=e.$$typeof)===R)return 11;if(e===N)return 14}return 2}(a),e=Xa(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Hi(null,t,a,e,n);break e;case 11:t=ji(null,t,a,e,n);break e;case 14:t=zi(null,t,a,Xa(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Xa(r,a),n);case 1:return r=t.type,a=t.pendingProps,Hi(e,t,r,a=t.elementType===r?a:Xa(r,a),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),mo(t,r,null,n),(r=t.memoizedState.element)===a)Ko(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Uo=Kr(t.stateNode.containerInfo.firstChild),zo=t,o=$o=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Yo.push(o);for(n=Co(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Ko();t=t.child}return t;case 5:return Mo(t),null===e&&Ho(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),Gi(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Ho(t),null;case 13:return Zi(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ao(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,ji(e,t,r,a=t.elementType===r?a:Xa(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var c=t.type._context;if(da(Za,c._currentValue),c._currentValue=o,null!==l)if(c=l.value,0===(o=ur(c,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(c,o):1073741823))){if(l.children===a.children&&!ma.current){t=ol(e,t,n);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var s=c.dependencies;if(null!==s){l=c.child;for(var u=s.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&o)){1===c.tag&&((u=uo(-1,n&-n)).tag=2,po(c,u)),c.lanes|=n,null!==(u=c.alternate)&&(u.lanes|=n),ao(c.return,n),s.lanes|=n;break}u=u.next}}else l=10===c.tag&&c.type===t.type?null:c.child;if(null!==l)l.return=c;else for(l=c;null!==l;){if(l===t){l=null;break}if(null!==(c=l.sibling)){c.return=l.return,l=c;break}l=l.return}c=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,oo(t,n),r=r(a=io(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Xa(a=t.type,t.pendingProps),zi(e,t,a,o=Xa(a.type,o),r,n);case 15:return Ui(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Xa(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ba(r)?(e=!0,ka(t)):e=!1,oo(t,n),wo(t,r,a),So(t,r,a,n),Vi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return $i(e,t,n)}throw Error(i(156,t.tag))},as.prototype.render=function(e){es(e,this._internalRoot,null,null)},as.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;es(null,e,null,(function(){t[ea]=null}))},tt=function(e){13===e.tag&&(mc(e,4,pc()),rs(e,4))},nt=function(e){13===e.tag&&(mc(e,67108864,pc()),rs(e,67108864))},rt=function(e){if(13===e.tag){var t=pc(),n=fc(e);mc(e,n,t),rs(e,n)}},at=function(e,t){return t()},Ae=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=oa(r);if(!a)throw Error(i(90));X(r),ne(r,a)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Oe=wc,Ie=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Va(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Wl(),Ka())}},De=function(){0==(49&Nl)&&(function(){if(null!==ac){var e=ac;ac=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gc(e,Ga())}))}Ka()}(),Dc())},Me=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Wl(),Ka())}};var cs={Events:[ra,aa,oa,Pe,Ne,Dc,{current:!1}]},ss={findFiberByHostInstance:na,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},us={bundleType:ss.bundleType,version:ss.version,rendererPackageName:ss.rendererPackageName,rendererConfig:ss.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:ss.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ds=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ds.isDisabled&&ds.supportsFiber)try{Ea=ds.inject(us),xa=ds}catch(ge){}}t.createPortal=ls,t.hydrate=function(e,t,n){if(!os(t))throw Error(i(200));return is(null,e,t,!0,n)}},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(2551)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,c,s,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(c=l;0!=c--;)if(!o(e[c],i[c]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!o(c.value[1],i.get(c.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(c=l;0!=c--;)if(e[c]!==i[c])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(s=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(c=l;0!=c--;)if(!Object.prototype.hasOwnProperty.call(i,s[c]))return!1;if(t&&e instanceof Element)return!1;for(c=l;0!=c--;)if(("_owner"!==s[c]&&"__v"!==s[c]&&"__o"!==s[c]||!e.$$typeof)&&!o(e[s[c]],i[s[c]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>H});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),c=n(311),s=n.n(c),u=n(2833),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},T=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},A=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},C=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],c=l.toLowerCase();-1===t.indexOf(c)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===c&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var s=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][s]&&(a[n][s]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],c=p({},r[l],a[l]);r[l]=c}return e}),[]).reverse()},R=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},B=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return B(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},j=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,c=void 0===l?"":l,s=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,y),o=P(t,b),i=P(n,v);return{priorityMethods:{toComponent:function(){return[].concat(B(g.META,a.priority),B(g.LINK,o.priority),B(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:c,titleAttributes:s},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=j({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),G=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),q="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=q,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var c=i[l],s=t[c]||"";n.getAttribute(c)!==s&&n.setAttribute(c,s),-1===a.indexOf(c)&&a.push(c);var u=o.indexOf(c);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},K=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,c=e.scriptTags,s=e.styleTags,u=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),W(g.TITLE,t)}(u,d);var p={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,c),styleTags:V(g.STYLE,s)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},Y=null,Q=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:A(["href"],e),bodyAttributes:T("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:T("htmlAttributes",e),linkTags:C(g.LINK,["rel","href"],e),metaTags:C(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:C(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:C(g.SCRIPT,["src","innerHTML"],e),styleTags:C(g.STYLE,["cssText"],e),title:x(e),titleAttributes:T("titleAttributes",e),prioritizeSeoTags:R(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){K(t,(function(){Y=null}))})):(K(t),Y=null)):j&&(a=j(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Q.propTypes={context:G.isRequired},Q.displayName="HelmetDispatcher";var X=["children"],Z=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return s()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),s()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,X),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,o),c){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,Z),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(Q,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(Q,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case s:case p:case g:case h:case c:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=s,t.ContextProvider=c,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===s},t.isContextProvider=function(e){return k(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===c||e.$$typeof===s||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(6540),c=n(5556),s=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return s.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:c.shape({report:c.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:c.func.isRequired}),o(g,"childContextTypes",{loadable:c.shape({report:c.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(s).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(2681),a=n(9668),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map((function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})}))):null}},4625:(e,t,n)=>{"use strict";n.d(t,{Kd:()=>u,N_:()=>g,k2:()=>y});var r=n(2681),a=n(3328),o=n(6540),i=n(1513),l=n(9668),c=n(1367),s=n(8997),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,c.A)(e,["innerRef","navigate","onClick"]),s=i.target,u=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||s&&"_self"!==s||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,o.createElement("a",u)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,c.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,s.A)(!1);var n=e.history,r=p(d(g,e.location),e.location),c=r?n.createHref(r):"",h=(0,l.A)({},v,{href:c,navigate:function(){var t=d(g,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,T=(0,c.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,s.A)(!1);var n=w||e.location,i=p(d(x,n),n),c=i.pathname,A=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),C=A?(0,r.B6)(n.pathname,{path:A,exact:h,sensitive:k,strict:S}):null,R=!!(y?y(C,n):C),L="function"==typeof m?m(R):m,P="function"==typeof E?E(R):E;R&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,u),P=(0,l.A)({},P,f));var N=(0,l.A)({"aria-current":R&&a||null,className:L,style:P,to:i},T);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},2681:(e,t,n)=>{"use strict";n.d(t,{qh:()=>_,Ix:()=>k,dO:()=>P,XZ:()=>w,B6:()=>x,W6:()=>O,zy:()=>I});var r=n(3328),a=n(6540),o=n(1513),i=n(5556),l=n.n(i),c=1073741823,s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var d=a.createContext||function(e,t){var n,o,i="__create-react-context-"+function(){var e="__global_unique_id__";return s[e]=(s[e]||0)+1}()+"__",d=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=u(t.props.value),t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):c,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);d.childContextTypes=((n={})[i]=l().object.isRequired,n);var p=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?c:t},a.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?c:e},a.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},a.getValue=function(){return this.context[i]?this.context[i].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return p.contextTypes=((o={})[i]=l().object,o),{Provider:d,Consumer:p}};const p=d;var f=n(8997),m=n(9668),h=n(8505),g=n.n(h),b=(n(4363),n(1367)),v=(n(4146),function(e){var t=p();return t.displayName=e,t}),y=v("Router-History"),w=v("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(w.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var S={},E=0;function x(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,c=n.sensitive,s=void 0!==c&&c;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=S[n]||(S[n]={});if(r[e])return r[e];var a=[],o={regexp:g()(e,a,t),keys:a};return E<1e4&&(r[e]=o,E++),o}(n,{end:o,strict:l,sensitive:s}),a=r.regexp,i=r.keys,c=a.exec(e);if(!c)return null;var u=c[0],d=c.slice(1),p=e===u;return o&&!p?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(w.Consumer,null,(function(t){t||(0,f.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?x(n.pathname,e.props):t.match,o=(0,m.A)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,s=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(w.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):s?s(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function T(e){return"/"===e.charAt(0)?e:"/"+e}function A(e,t){if(!e)return t;var n=T(e);return 0!==t.pathname.indexOf(n)?t:(0,m.A)({},t,{pathname:t.pathname.substr(n.length)})}function C(e){return"string"==typeof e?e:(0,o.AO)(e)}function R(e){return function(){(0,f.A)(!1)}}function L(){}a.Component;var P=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(w.Consumer,null,(function(t){t||(0,f.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?x(o.pathname,(0,m.A)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var N=a.useContext;function O(){return N(y)}function I(){return N(w).location}},8505:(e,t,n)=>{var r=n(4634);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||u,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?s(_):w?".*":"[^"+c(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},c=(a||{}).pretty?i:encodeURIComponent,s=0;s<e.length;s++){var u=e[s];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=c(p[f]),!n[s].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(p),!n[s].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var s=e[l];if("string"==typeof s)i+=c(s);else{var p=c(s.prefix),f="(?:"+s.pattern+")";t.push(s),s.repeat&&(f+="(?:"+p+f+")*"),i+=f=s.optional?s.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=c(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},5287:(e,t,n)=>{"use strict";var r=n(5228),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,c=60112;t.Suspense=60113;var s=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),c=d("react.forward_ref"),t.Suspense=d("react.suspense"),s=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){for(var s=Array(c),u=0;u<c;u++)s[u]=arguments[u+2];o.children=s}if(e&&e.defaultProps)for(r in c=e.defaultProps)void 0===o[r]&&(o[r]=c[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function A(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var c=!1;if(null===e)c=!0;else switch(l){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case a:case o:c=!0}}if(c)return i=i(c=e),e=""===r?"."+T(c,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),A(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(c=0,r=""===r?".":r+":",Array.isArray(e))for(var s=0;s<e.length;s++){var u=r+T(l=e[s],s);c+=A(l,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),s=0;!(l=e.next()).done;)c+=A(l=l.value,t,n,u=r+T(l,s++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function C(e,t,n){if(null==e)return e;var r=[],a=0;return A(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function R(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var L={current:null};function P(){var e=L.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:C,forEach:function(e,t,n){C(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return C(e,(function(){t++})),t},toArray:function(e){return C(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,l=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,c=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)k.call(t,u)&&!S.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){s=Array(u);for(var d=0;d<u;d++)s[d]=arguments[d+2];o.children=s}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return P().useCallback(e,t)},t.useContext=function(e,t){return P().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return P().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return P().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return P().useLayoutEffect(e,t)},t.useMemo=function(e,t){return P().useMemo(e,t)},t.useReducer=function(e,t,n){return P().useReducer(e,t,n)},t.useRef=function(e){return P().useRef(e)},t.useState=function(e){return P().useState(e)},t.version="17.0.2"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},7463:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,c=l.now();t.unstable_now=function(){return l.now()-c}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,u=null,d=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},a=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,c=e[l];if(void 0!==i&&0>_(i,n))void 0!==c&&0>_(c,i)?(e[r]=c,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==c&&0>_(c,n)))break e;e[r]=c,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var T=[],A=[],C=1,R=null,L=3,P=!1,N=!1,O=!1;function I(e){for(var t=E(A);null!==t;){if(null===t.callback)x(A);else{if(!(t.startTime<=e))break;x(A),t.sortIndex=t.expirationTime,S(T,t)}t=E(A)}}function D(e){if(O=!1,I(e),!N)if(null!==E(T))N=!0,n(M);else{var t=E(A);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),P=!0;var o=L;try{for(I(n),R=E(T);null!==R&&(!(R.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=R.callback;if("function"==typeof i){R.callback=null,L=R.priorityLevel;var l=i(R.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?R.callback=l:R===E(T)&&x(T),I(n)}else x(T);R=E(T)}if(null!==R)var c=!0;else{var s=E(A);null!==s&&r(D,s.startTime-n),c=!1}return c}finally{R=null,L=o,P=!1}}var B=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||P||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return L},t.unstable_getFirstCallbackNode=function(){return E(T)},t.unstable_next=function(e){switch(L){case 1:case 2:case 3:var t=3;break;default:t=L}var n=L;L=t;try{return e()}finally{L=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=B,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=L;L=e;try{return t()}finally{L=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var c=-1;break;case 2:c=250;break;case 5:c=1073741823;break;case 4:c=1e4;break;default:c=5e3}return e={id:C++,callback:o,priorityLevel:e,startTime:i,expirationTime:c=i+c,sortIndex:-1},i>l?(e.sortIndex=i,S(A,e),null===E(T)&&e===E(A)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=c,S(T,e),N||P||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=L;return function(){var n=L;L=t;try{return e.apply(this,arguments)}finally{L=n}}}},9982:(e,t,n)=>{"use strict";e.exports=n(7463)},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),c=0;c<o.length;c++){var s=o[c];if(!l(s))return!1;var u=e[s],d=t[s];if(!1===(a=n?n.call(r,u,d,s):void 0)||void 0===a&&u!==d)return!1}return!0}},8997:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r="Invariant failed";function a(e,t){if(!e)throw new Error(r)}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"react-native-help-create",tagline:"Focus on your code, not your project structure!",url:"https://omdxp.github.io",baseUrl:"/react-native-help-create/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"omdxp",projectName:"react-native-help-create",deploymentBranch:"gh-pages",trailingSlash:!1,i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{sidebarPath:"/home/runner/work/react-native-help-create/react-native-help-create/website-docs/sidebars.js",lastVersion:"current",versions:{current:{badge:!0,label:"2.7.0 (current)"}}},theme:{customCss:"/home/runner/work/react-native-help-create/react-native-help-create/website-docs/src/css/custom.css"}}]],themeConfig:{algolia:{appId:"D518QIHZHG",apiKey:"d922529db8391e9752b576c8a47e8deb",indexName:"react-native-help-create",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},navbar:{title:"react-native-help-create",logo:{alt:"react-native-help-create",src:"img/logo.svg"},items:[{type:"doc",docId:"intro",position:"left",label:"Tutorial"},{type:"docsVersionDropdown",position:"left",dropdownActiveClassDisabled:!0,dropdownItemsBefore:[],dropdownItemsAfter:[]},{href:"https://github.com/omdxp/react-native-help-create",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Tutorial",to:"/docs/intro"}]},{title:"Community",items:[{label:"Twitter",href:"https://twitter.com/omdxp"}]},{title:"More",items:[{label:"GitHub",href:"https://github.com/omdxp/react-native-help-create"}]}],copyright:"Copyright \xa9 2024 react-native-help-create. Built with \u2764\ufe0f and Docusaurus!"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},9668:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},3328:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},1367:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{A:()=>r})},2654:e=>{"use strict";e.exports={}},4054:e=>{"use strict";e.exports=JSON.parse('{"/react-native-help-create/blog-4ee":{"__comp":"a6aa9e1f","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","items":[{"content":"7661071f"},{"content":"f4f34a3a"},{"content":"8717b14a"},{"content":"925b3f96"}],"metadata":"cfff384b"},"/react-native-help-create/blog/archive-be2":{"__comp":"9e4087bc","__context":{"plugin":"a191ded7"},"archive":"fb61dd4c"},"/react-native-help-create/blog/first-blog-post-ecc":{"__comp":"ccc49370","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","content":"e273c56f"},"/react-native-help-create/blog/long-blog-post-d57":{"__comp":"ccc49370","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","content":"73664a40"},"/react-native-help-create/blog/mdx-blog-post-706":{"__comp":"ccc49370","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","content":"59362658"},"/react-native-help-create/blog/tags-44d":{"__comp":"01a85c17","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","tags":"080cd42f"},"/react-native-help-create/blog/tags/docusaurus-2ba":{"__comp":"6875c492","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","items":[{"content":"7661071f"},{"content":"f4f34a3a"},{"content":"8717b14a"},{"content":"925b3f96"}],"tag":"ff4a0856","listMetadata":"8e0033f8"},"/react-native-help-create/blog/tags/facebook-878":{"__comp":"6875c492","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","items":[{"content":"7661071f"}],"tag":"55e5eb89","listMetadata":"c3201987"},"/react-native-help-create/blog/tags/hello-3c9":{"__comp":"6875c492","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","items":[{"content":"7661071f"},{"content":"8717b14a"}],"tag":"ff79eae6","listMetadata":"aca5172c"},"/react-native-help-create/blog/tags/hola-765":{"__comp":"6875c492","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","items":[{"content":"925b3f96"}],"tag":"0acbe1f8","listMetadata":"c48ecffd"},"/react-native-help-create/blog/welcome-5ad":{"__comp":"ccc49370","__context":{"plugin":"a191ded7"},"sidebar":"814f3328","content":"d9f32620"},"/react-native-help-create/markdown-page-ec9":{"__comp":"1f391b9e","__context":{"plugin":"81accc15"},"content":"393be207"},"/react-native-help-create/search-b06":{"__comp":"1a4e3797","__context":{"plugin":"b2d63eab"}},"/react-native-help-create/docs/2.3.4-a20":{"__comp":"1be78505","__context":{"plugin":"4df3b9a3"},"versionMetadata":"b7866efb"},"/react-native-help-create/docs/2.3.4/category/combine-8b4":{"__comp":"14eb3368","categoryGeneratedIndex":"b40c2fb5"},"/react-native-help-create/docs/2.3.4/category/create-e0b":{"__comp":"14eb3368","categoryGeneratedIndex":"8a1c58e2"},"/react-native-help-create/docs/2.3.4/category/delete-8c5":{"__comp":"14eb3368","categoryGeneratedIndex":"6c6d6f25"},"/react-native-help-create/docs/2.3.4/combine/combine-components-01d":{"__comp":"17896441","content":"0d2b0ba6"},"/react-native-help-create/docs/2.3.4/combine/combine-screens-eac":{"__comp":"17896441","content":"0eaa31cb"},"/react-native-help-create/docs/2.3.4/combine/intro-195":{"__comp":"17896441","content":"f29d18fc"},"/react-native-help-create/docs/2.3.4/create/create-components-789":{"__comp":"17896441","content":"fbed3bcb"},"/react-native-help-create/docs/2.3.4/create/create-navigations-850":{"__comp":"17896441","content":"be05523b"},"/react-native-help-create/docs/2.3.4/create/create-redux-653":{"__comp":"17896441","content":"3355fecc"},"/react-native-help-create/docs/2.3.4/create/create-screens-37d":{"__comp":"17896441","content":"a8af8446"},"/react-native-help-create/docs/2.3.4/create/intro-44d":{"__comp":"17896441","content":"7e12dd04"},"/react-native-help-create/docs/2.3.4/create/using-configuration-c34":{"__comp":"17896441","content":"30c671dd"},"/react-native-help-create/docs/2.3.4/create/using-templates-b4e":{"__comp":"17896441","content":"649dc010"},"/react-native-help-create/docs/2.3.4/delete/delete-components-39f":{"__comp":"17896441","content":"f042d6b5"},"/react-native-help-create/docs/2.3.4/delete/delete-configuration-f1b":{"__comp":"17896441","content":"300bd883"},"/react-native-help-create/docs/2.3.4/delete/delete-navigations-c2b":{"__comp":"17896441","content":"1f05f735"},"/react-native-help-create/docs/2.3.4/delete/delete-redux-3b3":{"__comp":"17896441","content":"fa9d45bc"},"/react-native-help-create/docs/2.3.4/delete/delete-screens-050":{"__comp":"17896441","content":"1fa58c83"},"/react-native-help-create/docs/2.3.4/delete/intro-65b":{"__comp":"17896441","content":"0110d8c5"},"/react-native-help-create/docs/2.3.4/getting-started-3b8":{"__comp":"17896441","content":"25116770"},"/react-native-help-create/docs/2.3.4/intro-cc6":{"__comp":"17896441","content":"b7c5fcf6"},"/react-native-help-create/docs/2.3.4/notes-7dc":{"__comp":"17896441","content":"59036d2a"},"/react-native-help-create/docs/2.5.1-aa9":{"__comp":"1be78505","__context":{"plugin":"4df3b9a3"},"versionMetadata":"894e2d1e"},"/react-native-help-create/docs/2.5.1/category/combine-501":{"__comp":"14eb3368","categoryGeneratedIndex":"4316656d"},"/react-native-help-create/docs/2.5.1/category/create-8e2":{"__comp":"14eb3368","categoryGeneratedIndex":"e69809d4"},"/react-native-help-create/docs/2.5.1/category/delete-a3a":{"__comp":"14eb3368","categoryGeneratedIndex":"d9d437a8"},"/react-native-help-create/docs/2.5.1/combine/combine-components-7f2":{"__comp":"17896441","content":"cf6f483b"},"/react-native-help-create/docs/2.5.1/combine/combine-screens-7f4":{"__comp":"17896441","content":"5db32b5f"},"/react-native-help-create/docs/2.5.1/combine/intro-52d":{"__comp":"17896441","content":"5200e86b"},"/react-native-help-create/docs/2.5.1/create/create-components-92e":{"__comp":"17896441","content":"db5af1ce"},"/react-native-help-create/docs/2.5.1/create/create-navigations-3b1":{"__comp":"17896441","content":"feab8900"},"/react-native-help-create/docs/2.5.1/create/create-redux-5cf":{"__comp":"17896441","content":"66dff133"},"/react-native-help-create/docs/2.5.1/create/create-screens-669":{"__comp":"17896441","content":"b4c9f6d8"},"/react-native-help-create/docs/2.5.1/create/intro-9b0":{"__comp":"17896441","content":"010256eb"},"/react-native-help-create/docs/2.5.1/create/using-configuration-46c":{"__comp":"17896441","content":"05f2ec11"},"/react-native-help-create/docs/2.5.1/create/using-templates-5f1":{"__comp":"17896441","content":"09bedf3b"},"/react-native-help-create/docs/2.5.1/delete/delete-components-437":{"__comp":"17896441","content":"561f7ff9"},"/react-native-help-create/docs/2.5.1/delete/delete-configuration-bd6":{"__comp":"17896441","content":"8aba8e7d"},"/react-native-help-create/docs/2.5.1/delete/delete-navigations-7c4":{"__comp":"17896441","content":"11cb2c20"},"/react-native-help-create/docs/2.5.1/delete/delete-redux-dc1":{"__comp":"17896441","content":"4e2af7f7"},"/react-native-help-create/docs/2.5.1/delete/delete-screens-6a9":{"__comp":"17896441","content":"8dd3a095"},"/react-native-help-create/docs/2.5.1/delete/intro-acd":{"__comp":"17896441","content":"d9e3fcc8"},"/react-native-help-create/docs/2.5.1/getting-started-2ed":{"__comp":"17896441","content":"8999aea9"},"/react-native-help-create/docs/2.5.1/intro-787":{"__comp":"17896441","content":"1dc6b685"},"/react-native-help-create/docs/2.5.1/notes-7b9":{"__comp":"17896441","content":"0471b42f"},"/react-native-help-create/docs/2.6.0-152":{"__comp":"1be78505","__context":{"plugin":"4df3b9a3"},"versionMetadata":"e680db30"},"/react-native-help-create/docs/2.6.0/category/combine-d89":{"__comp":"14eb3368","categoryGeneratedIndex":"ef7bddec"},"/react-native-help-create/docs/2.6.0/category/create-e03":{"__comp":"14eb3368","categoryGeneratedIndex":"477cf694"},"/react-native-help-create/docs/2.6.0/category/delete-e5b":{"__comp":"14eb3368","categoryGeneratedIndex":"f7ba0a2e"},"/react-native-help-create/docs/2.6.0/combine/combine-components-90c":{"__comp":"17896441","content":"6ccd978f"},"/react-native-help-create/docs/2.6.0/combine/combine-screens-b9d":{"__comp":"17896441","content":"2e8452ff"},"/react-native-help-create/docs/2.6.0/combine/intro-a64":{"__comp":"17896441","content":"5350a6b5"},"/react-native-help-create/docs/2.6.0/create/create-components-649":{"__comp":"17896441","content":"03d65c99"},"/react-native-help-create/docs/2.6.0/create/create-navigations-d7a":{"__comp":"17896441","content":"61279b62"},"/react-native-help-create/docs/2.6.0/create/create-redux-38c":{"__comp":"17896441","content":"1092b69f"},"/react-native-help-create/docs/2.6.0/create/create-screens-848":{"__comp":"17896441","content":"36ebbe5d"},"/react-native-help-create/docs/2.6.0/create/intro-e7d":{"__comp":"17896441","content":"8a7573ce"},"/react-native-help-create/docs/2.6.0/create/using-configuration-d16":{"__comp":"17896441","content":"fcaff347"},"/react-native-help-create/docs/2.6.0/create/using-templates-06e":{"__comp":"17896441","content":"3607ff89"},"/react-native-help-create/docs/2.6.0/delete/delete-components-4c5":{"__comp":"17896441","content":"c14765b5"},"/react-native-help-create/docs/2.6.0/delete/delete-configuration-476":{"__comp":"17896441","content":"c0debe47"},"/react-native-help-create/docs/2.6.0/delete/delete-navigations-914":{"__comp":"17896441","content":"696b3c19"},"/react-native-help-create/docs/2.6.0/delete/delete-redux-40a":{"__comp":"17896441","content":"fea5ad44"},"/react-native-help-create/docs/2.6.0/delete/delete-screens-7a6":{"__comp":"17896441","content":"487aa75b"},"/react-native-help-create/docs/2.6.0/delete/intro-9a6":{"__comp":"17896441","content":"560a2a04"},"/react-native-help-create/docs/2.6.0/getting-started-b1b":{"__comp":"17896441","content":"d70a8b9c"},"/react-native-help-create/docs/2.6.0/intro-1d1":{"__comp":"17896441","content":"d91b870f"},"/react-native-help-create/docs/2.6.0/notes-b4f":{"__comp":"17896441","content":"acf1a8e6"},"/react-native-help-create/docs-4c5":{"__comp":"1be78505","__context":{"plugin":"4df3b9a3"},"versionMetadata":"935f2afb"},"/react-native-help-create/docs/category/combine-71c":{"__comp":"14eb3368","categoryGeneratedIndex":"effad21f"},"/react-native-help-create/docs/category/create-a65":{"__comp":"14eb3368","categoryGeneratedIndex":"6f6b9ffc"},"/react-native-help-create/docs/category/delete-0ab":{"__comp":"14eb3368","categoryGeneratedIndex":"374bac64"},"/react-native-help-create/docs/combine/combine-components-111":{"__comp":"17896441","content":"798076fc"},"/react-native-help-create/docs/combine/combine-screens-7eb":{"__comp":"17896441","content":"c298cc3c"},"/react-native-help-create/docs/combine/intro-314":{"__comp":"17896441","content":"19152fe9"},"/react-native-help-create/docs/create/create-components-297":{"__comp":"17896441","content":"f1bdf090"},"/react-native-help-create/docs/create/create-navigations-45d":{"__comp":"17896441","content":"7a7b6871"},"/react-native-help-create/docs/create/create-redux-b63":{"__comp":"17896441","content":"21584035"},"/react-native-help-create/docs/create/create-screens-ec6":{"__comp":"17896441","content":"ed086f67"},"/react-native-help-create/docs/create/intro-97d":{"__comp":"17896441","content":"10504b84"},"/react-native-help-create/docs/create/using-configuration-6ea":{"__comp":"17896441","content":"39362015"},"/react-native-help-create/docs/create/using-templates-ecf":{"__comp":"17896441","content":"bff7cbd0"},"/react-native-help-create/docs/delete/delete-components-fcd":{"__comp":"17896441","content":"c11e5137"},"/react-native-help-create/docs/delete/delete-configuration-a3a":{"__comp":"17896441","content":"43cefd7b"},"/react-native-help-create/docs/delete/delete-navigations-f9d":{"__comp":"17896441","content":"a436d11f"},"/react-native-help-create/docs/delete/delete-redux-235":{"__comp":"17896441","content":"6494072b"},"/react-native-help-create/docs/delete/delete-screens-3bf":{"__comp":"17896441","content":"427447cf"},"/react-native-help-create/docs/delete/intro-219":{"__comp":"17896441","content":"3ca5a089"},"/react-native-help-create/docs/getting-started-0a3":{"__comp":"17896441","content":"3021cf83"},"/react-native-help-create/docs/intro-b00":{"__comp":"17896441","content":"f8409a7e"},"/react-native-help-create/docs/notes-df8":{"__comp":"17896441","content":"0093adb5"},"/react-native-help-create/-8e1":{"__comp":"1df93b7f","__context":{"plugin":"81accc15"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[1869],(()=>{return t=5660,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.e0dd02d9.js.LICENSE.txt b/assets/js/main.e0dd02d9.js.LICENSE.txt new file mode 100644 index 0000000..6e08db2 --- /dev/null +++ b/assets/js/main.e0dd02d9.js.LICENSE.txt @@ -0,0 +1,53 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + */ + +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.59c4a62b.js b/assets/js/runtime~main.59c4a62b.js new file mode 100644 index 0000000..851667f --- /dev/null +++ b/assets/js/runtime~main.59c4a62b.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,f,a,c,d,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,c,d)=>{if(!a){var b=1/0;for(i=0;i<e.length;i++){a=e[i][0],c=e[i][1],d=e[i][2];for(var t=!0,o=0;o<a.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=c();void 0!==n&&(f=n)}}return f}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,c,d]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(d,b),d},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({211:"59036d2a",275:"894e2d1e",399:"d70a8b9c",473:"bff7cbd0",478:"7e12dd04",507:"561f7ff9",554:"487aa75b",759:"c298cc3c",832:"1fa58c83",890:"f042d6b5",1024:"4316656d",1047:"c0debe47",1057:"36ebbe5d",1163:"a436d11f",1172:"696b3c19",1312:"09bedf3b",1447:"0eaa31cb",1481:"8dd3a095",1504:"db5af1ce",1548:"080cd42f",1972:"73664a40",2138:"1a4e3797",2219:"fb61dd4c",2223:"21584035",2294:"25116770",2443:"0093adb5",2505:"e680db30",2513:"11cb2c20",2681:"10504b84",2704:"649dc010",2711:"9e4087bc",2789:"b4c9f6d8",2857:"3021cf83",2860:"39362015",3092:"feab8900",3142:"c48ecffd",3150:"d91b870f",3249:"ccc49370",3293:"ef7bddec",3414:"1dc6b685",3458:"3607ff89",3637:"f4f34a3a",3673:"6ccd978f",3694:"8717b14a",3703:"55e5eb89",3735:"cfff384b",3785:"374bac64",3912:"1092b69f",3937:"3ca5a089",4134:"393be207",4155:"f7ba0a2e",4236:"61279b62",4253:"fcaff347",4583:"1df93b7f",4672:"aca5172c",4797:"19152fe9",4813:"6875c492",4883:"d9d437a8",4929:"b40c2fb5",5076:"b2d63eab",5163:"f1bdf090",5330:"81accc15",5557:"d9f32620",5593:"0471b42f",5681:"6494072b",5841:"798076fc",5910:"effad21f",6061:"1f391b9e",6071:"6f6b9ffc",6155:"fa9d45bc",6368:"e69809d4",6385:"fea5ad44",6519:"b7866efb",6550:"1f05f735",6600:"8a1c58e2",6758:"c3201987",6774:"3355fecc",6795:"b7c5fcf6",6817:"a191ded7",6869:"0acbe1f8",6903:"f8409a7e",6965:"5200e86b",6969:"14eb3368",7069:"477cf694",7084:"010256eb",7088:"560a2a04",7248:"c14765b5",7357:"c11e5137",7403:"6c6d6f25",7472:"814f3328",7485:"30c671dd",7519:"a8af8446",7537:"2e8452ff",7544:"427447cf",7643:"a6aa9e1f",7748:"05f2ec11",7776:"0d2b0ba6",7801:"43cefd7b",7805:"8aba8e7d",8080:"8999aea9",8084:"ff79eae6",8120:"03d65c99",8209:"01a85c17",8385:"0110d8c5",8401:"17896441",8524:"fbed3bcb",8581:"935f2afb",8609:"925b3f96",8714:"1be78505",8737:"7661071f",8750:"8e0033f8",8828:"66dff133",8830:"7a7b6871",9023:"cf6f483b",9062:"5350a6b5",9157:"4e2af7f7",9311:"be05523b",9325:"59362658",9328:"e273c56f",9364:"8a7573ce",9609:"4df3b9a3",9654:"d9e3fcc8",9706:"f29d18fc",9719:"ff4a0856",9757:"ed086f67",9847:"300bd883",9964:"5db32b5f",9978:"acf1a8e6"}[e]||e)+"."+{211:"2d38cf52",275:"d784d9f8",399:"b4d0bdfe",416:"8d4c0e91",473:"d6b9c834",478:"bf2a73c9",507:"d2db217b",554:"c086aa74",759:"e6c6fe6c",832:"6df8fa16",890:"24ddc106",1024:"3f13af80",1047:"6f8dc215",1057:"4cb64b16",1163:"7d0c33fc",1172:"589fea46",1312:"e54e68d6",1447:"6b573720",1481:"9f8b4c66",1504:"6f2a96d7",1548:"e2605e79",1553:"1dc2fbc2",1774:"b5d76016",1972:"98100168",2138:"b8777e2f",2219:"be359fe0",2223:"6d674915",2294:"4e87a44c",2443:"58359041",2505:"a6011358",2513:"344cb2e8",2681:"ab891432",2704:"ea36391f",2711:"6e219e9b",2789:"dbbc835b",2857:"68cdba8e",2860:"ef9617ab",3092:"e80a5c35",3142:"7ea2c5d9",3150:"b42682be",3249:"4b054d37",3293:"c8c2b965",3414:"1bd2feeb",3458:"de9ca03a",3637:"fa592520",3673:"57ea38ae",3694:"3245cd7c",3703:"4488c239",3735:"e70b9e66",3785:"42e5ac73",3912:"321c8c0d",3937:"9a974b29",4134:"b9c88e5a",4155:"5369fd96",4236:"da6d529f",4253:"5edcc437",4583:"f4070723",4672:"31f945aa",4797:"7b304325",4813:"0cd5186c",4883:"6acf5129",4929:"816387ce",5076:"d0975501",5163:"fb3aed32",5330:"f59ec5c3",5557:"bba7d103",5593:"4019c7dc",5681:"098e9d46",5841:"8ee6c42b",5910:"51215d58",6061:"caa9fae6",6071:"58a92707",6155:"5990ca96",6368:"8ce71b64",6385:"d69a8c1c",6519:"34f24dad",6550:"c677a78f",6600:"f8829b29",6758:"c554db24",6774:"c4ddca2c",6795:"4109d86b",6817:"78158bfa",6869:"ed55ec0f",6903:"5c0b2fd2",6965:"5a75b548",6969:"5dd71704",7069:"75262fbc",7084:"1c30f971",7088:"f5aa23aa",7248:"8bf2063f",7357:"2cc7e9b1",7403:"55bd14c2",7472:"343bd784",7477:"3266e732",7485:"5c7f1c24",7519:"58661777",7537:"d3bfe71e",7544:"85c5ed1c",7643:"44cfb3a1",7748:"5fa71364",7776:"bfee4520",7801:"2ad90283",7805:"042bb0c8",8080:"ff6a72f0",8084:"802736eb",8120:"83fbdab9",8209:"6ab3993b",8382:"0c5367fa",8385:"65212875",8401:"26d09fce",8524:"e0979693",8581:"9d51f2c5",8609:"2e780561",8714:"d7cfe686",8737:"d5a8c0fc",8750:"b3b56c1f",8828:"df1fae96",8830:"202f6ab3",8913:"ba3e251d",9023:"02c832b3",9062:"71783aac",9157:"acd90860",9311:"399f257d",9325:"45d72511",9328:"b5d4c5ac",9364:"1ceb34dc",9551:"c51e0fc1",9609:"a1fd0d19",9654:"82139ee4",9706:"d3639805",9719:"6dc84f9d",9757:"31bb86da",9847:"88f616ce",9964:"909919c6",9978:"66943eee"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),c={},d="rnhc-docs:",r.l=(e,f,a,b)=>{if(c[e])c[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+a){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+a),t.src=e),c[e]=[f];var l=(f,a)=>{t.onerror=t.onload=null,clearTimeout(s);var d=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/react-native-help-create/",r.gca=function(e){return e={17896441:"8401",21584035:"2223",25116770:"2294",39362015:"2860",59362658:"9325","59036d2a":"211","894e2d1e":"275",d70a8b9c:"399",bff7cbd0:"473","7e12dd04":"478","561f7ff9":"507","487aa75b":"554",c298cc3c:"759","1fa58c83":"832",f042d6b5:"890","4316656d":"1024",c0debe47:"1047","36ebbe5d":"1057",a436d11f:"1163","696b3c19":"1172","09bedf3b":"1312","0eaa31cb":"1447","8dd3a095":"1481",db5af1ce:"1504","080cd42f":"1548","73664a40":"1972","1a4e3797":"2138",fb61dd4c:"2219","0093adb5":"2443",e680db30:"2505","11cb2c20":"2513","10504b84":"2681","649dc010":"2704","9e4087bc":"2711",b4c9f6d8:"2789","3021cf83":"2857",feab8900:"3092",c48ecffd:"3142",d91b870f:"3150",ccc49370:"3249",ef7bddec:"3293","1dc6b685":"3414","3607ff89":"3458",f4f34a3a:"3637","6ccd978f":"3673","8717b14a":"3694","55e5eb89":"3703",cfff384b:"3735","374bac64":"3785","1092b69f":"3912","3ca5a089":"3937","393be207":"4134",f7ba0a2e:"4155","61279b62":"4236",fcaff347:"4253","1df93b7f":"4583",aca5172c:"4672","19152fe9":"4797","6875c492":"4813",d9d437a8:"4883",b40c2fb5:"4929",b2d63eab:"5076",f1bdf090:"5163","81accc15":"5330",d9f32620:"5557","0471b42f":"5593","6494072b":"5681","798076fc":"5841",effad21f:"5910","1f391b9e":"6061","6f6b9ffc":"6071",fa9d45bc:"6155",e69809d4:"6368",fea5ad44:"6385",b7866efb:"6519","1f05f735":"6550","8a1c58e2":"6600",c3201987:"6758","3355fecc":"6774",b7c5fcf6:"6795",a191ded7:"6817","0acbe1f8":"6869",f8409a7e:"6903","5200e86b":"6965","14eb3368":"6969","477cf694":"7069","010256eb":"7084","560a2a04":"7088",c14765b5:"7248",c11e5137:"7357","6c6d6f25":"7403","814f3328":"7472","30c671dd":"7485",a8af8446:"7519","2e8452ff":"7537","427447cf":"7544",a6aa9e1f:"7643","05f2ec11":"7748","0d2b0ba6":"7776","43cefd7b":"7801","8aba8e7d":"7805","8999aea9":"8080",ff79eae6:"8084","03d65c99":"8120","01a85c17":"8209","0110d8c5":"8385",fbed3bcb:"8524","935f2afb":"8581","925b3f96":"8609","1be78505":"8714","7661071f":"8737","8e0033f8":"8750","66dff133":"8828","7a7b6871":"8830",cf6f483b:"9023","5350a6b5":"9062","4e2af7f7":"9157",be05523b:"9311",e273c56f:"9328","8a7573ce":"9364","4df3b9a3":"9609",d9e3fcc8:"9654",f29d18fc:"9706",ff4a0856:"9719",ed086f67:"9757","300bd883":"9847","5db32b5f":"9964",acf1a8e6:"9978"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(f,a)=>{var c=r.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1869|5354)$/.test(f))e[f]=0;else{var d=new Promise(((a,d)=>c=e[f]=[a,d]));a.push(c[2]=d);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var d=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,c[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var c,d,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(f&&f(a);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},a=self.webpackChunkrnhc_docs=self.webpackChunkrnhc_docs||[];a.forEach(f.bind(null,0)),a.push=f.bind(null,a.push.bind(a))})()})(); \ No newline at end of file diff --git a/blog.html b/blog.html new file mode 100644 index 0000000..3d12d11 --- /dev/null +++ b/blog.html @@ -0,0 +1,21 @@ +<!doctype html> +<html lang="en" dir="ltr" class="blog-wrapper blog-list-page plugin-blog plugin-id-default"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.2.0"> +<title data-rh="true">Blog | react-native-help-create + + + + + + + + + +
+

· One min read
Sébastien Lorber
Yangshun Tay

Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

· One min read
Gao Wei

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

+ + + + \ No newline at end of file diff --git a/blog/archive.html b/blog/archive.html new file mode 100644 index 0000000..d1abee1 --- /dev/null +++ b/blog/archive.html @@ -0,0 +1,21 @@ + + + + + +Archive | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 0000000..10f6197 --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,70 @@ + + + https://omdxp.github.io/react-native-help-create/blog + react-native-help-create Blog + 2021-08-26T00:00:00.000Z + https://github.com/jpmonette/feed + + react-native-help-create Blog + https://omdxp.github.io/react-native-help-create/img/favicon.ico + + <![CDATA[Welcome]]> + welcome + + 2021-08-26T00:00:00.000Z + + Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

]]>
+ + Sébastien Lorber + https://sebastienlorber.com + + + Yangshun Tay + https://github.com/yangshun + + + + +
+ + <![CDATA[MDX Blog Post]]> + mdx-blog-post + + 2021-08-01T00:00:00.000Z + + Blog posts support Docusaurus Markdown features, such as MDX.

tip

Use the power of React to create interactive blog posts.

<button onClick={() => alert('button clicked!')}>Click me!</button>
]]>
+ + Sébastien Lorber + https://sebastienlorber.com + + +
+ + <![CDATA[Long Blog Post]]> + long-blog-post + + 2019-05-29T00:00:00.000Z + + This is the summary of a very long blog post,

Use a <!-- truncate --> comment to limit blog post size in the list view.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

]]>
+ + Endilie Yacop Sucipto + https://github.com/endiliey + + + +
+ + <![CDATA[First Blog Post]]> + first-blog-post + + 2019-05-28T00:00:00.000Z + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

]]>
+ + Gao Wei + https://github.com/wgao19 + + + +
+
\ No newline at end of file diff --git a/blog/first-blog-post.html b/blog/first-blog-post.html new file mode 100644 index 0000000..568a719 --- /dev/null +++ b/blog/first-blog-post.html @@ -0,0 +1,21 @@ + + + + + +First Blog Post | react-native-help-create + + + + + + + + + +
+

First Blog Post

· One min read
Gao Wei

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

+ + + + \ No newline at end of file diff --git a/blog/long-blog-post.html b/blog/long-blog-post.html new file mode 100644 index 0000000..508c0e8 --- /dev/null +++ b/blog/long-blog-post.html @@ -0,0 +1,21 @@ + + + + + +Long Blog Post | react-native-help-create + + + + + + + + + +
+

Long Blog Post

· 3 min read
Endilie Yacop Sucipto

This is the summary of a very long blog post,

Use a <!-- truncate --> comment to limit blog post size in the list view.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

+ + + + \ No newline at end of file diff --git a/blog/mdx-blog-post.html b/blog/mdx-blog-post.html new file mode 100644 index 0000000..c1677ff --- /dev/null +++ b/blog/mdx-blog-post.html @@ -0,0 +1,21 @@ + + + + + +MDX Blog Post | react-native-help-create + + + + + + + + + +
+

MDX Blog Post

· One min read
Sébastien Lorber

Blog posts support Docusaurus Markdown features, such as MDX.

tip

Use the power of React to create interactive blog posts.

<button onClick={() => alert('button clicked!')}>Click me!</button>
+ + + + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml new file mode 100644 index 0000000..ce13c96 --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,52 @@ + + + + react-native-help-create Blog + https://omdxp.github.io/react-native-help-create/blog + react-native-help-create Blog + Thu, 26 Aug 2021 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Welcome]]> + https://omdxp.github.io/react-native-help-create/blog/welcome + welcome + Thu, 26 Aug 2021 00:00:00 GMT + + Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

]]>
+ facebook + hello + docusaurus +
+ + <![CDATA[MDX Blog Post]]> + https://omdxp.github.io/react-native-help-create/blog/mdx-blog-post + mdx-blog-post + Sun, 01 Aug 2021 00:00:00 GMT + + Blog posts support Docusaurus Markdown features, such as MDX.

tip

Use the power of React to create interactive blog posts.

<button onClick={() => alert('button clicked!')}>Click me!</button>
]]>
+ docusaurus +
+ + <![CDATA[Long Blog Post]]> + https://omdxp.github.io/react-native-help-create/blog/long-blog-post + long-blog-post + Wed, 29 May 2019 00:00:00 GMT + + This is the summary of a very long blog post,

Use a <!-- truncate --> comment to limit blog post size in the list view.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

]]>
+ hello + docusaurus +
+ + <![CDATA[First Blog Post]]> + https://omdxp.github.io/react-native-help-create/blog/first-blog-post + first-blog-post + Tue, 28 May 2019 00:00:00 GMT + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

]]>
+ hola + docusaurus +
+
+
\ No newline at end of file diff --git a/blog/tags.html b/blog/tags.html new file mode 100644 index 0000000..48d50c3 --- /dev/null +++ b/blog/tags.html @@ -0,0 +1,21 @@ + + + + + +Tags | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/docusaurus.html b/blog/tags/docusaurus.html new file mode 100644 index 0000000..018bd0e --- /dev/null +++ b/blog/tags/docusaurus.html @@ -0,0 +1,21 @@ + + + + + +4 posts tagged with "docusaurus" | react-native-help-create + + + + + + + + + +
+

4 posts tagged with "docusaurus"

View All Tags

· One min read
Sébastien Lorber
Yangshun Tay

Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

· One min read
Gao Wei

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

+ + + + \ No newline at end of file diff --git a/blog/tags/facebook.html b/blog/tags/facebook.html new file mode 100644 index 0000000..41f340a --- /dev/null +++ b/blog/tags/facebook.html @@ -0,0 +1,21 @@ + + + + + +One post tagged with "facebook" | react-native-help-create + + + + + + + + + +
+

One post tagged with "facebook"

View All Tags

· One min read
Sébastien Lorber
Yangshun Tay

Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

+ + + + \ No newline at end of file diff --git a/blog/tags/hello.html b/blog/tags/hello.html new file mode 100644 index 0000000..11b3b1a --- /dev/null +++ b/blog/tags/hello.html @@ -0,0 +1,21 @@ + + + + + +2 posts tagged with "hello" | react-native-help-create + + + + + + + + + +
+

2 posts tagged with "hello"

View All Tags

· One min read
Sébastien Lorber
Yangshun Tay

Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

+ + + + \ No newline at end of file diff --git a/blog/tags/hola.html b/blog/tags/hola.html new file mode 100644 index 0000000..47fa453 --- /dev/null +++ b/blog/tags/hola.html @@ -0,0 +1,21 @@ + + + + + +One post tagged with "hola" | react-native-help-create + + + + + + + + + +
+

One post tagged with "hola"

View All Tags

· One min read
Gao Wei

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

+ + + + \ No newline at end of file diff --git a/blog/welcome.html b/blog/welcome.html new file mode 100644 index 0000000..227419c --- /dev/null +++ b/blog/welcome.html @@ -0,0 +1,21 @@ + + + + + +Welcome | react-native-help-create + + + + + + + + + +
+

Welcome

· One min read
Sébastien Lorber
Yangshun Tay

Docusaurus blogging features are powered by the blog plugin.

Simply add Markdown files (or folders) to the blog directory.

Regular blog authors can be added to authors.yml.

The blog post date can be extracted from filenames, such as:

  • 2019-05-30-welcome.md
  • 2019-05-30-welcome/index.md

A blog post folder can be convenient to co-locate blog post images:

Docusaurus Plushie

The blog supports tags as well!

And if you don't want a blog: just delete this directory, and use blog: false in your Docusaurus config.

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/category/combine.html b/docs/2.3.4/category/combine.html new file mode 100644 index 0000000..7640f3c --- /dev/null +++ b/docs/2.3.4/category/combine.html @@ -0,0 +1,21 @@ + + + + + +Combine | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.3.4/category/create.html b/docs/2.3.4/category/create.html new file mode 100644 index 0000000..7d0e745 --- /dev/null +++ b/docs/2.3.4/category/create.html @@ -0,0 +1,21 @@ + + + + + +Create | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.3.4/category/delete.html b/docs/2.3.4/category/delete.html new file mode 100644 index 0000000..6f052ad --- /dev/null +++ b/docs/2.3.4/category/delete.html @@ -0,0 +1,21 @@ + + + + + +Delete | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.3.4/combine/combine-components.html b/docs/2.3.4/combine/combine-components.html new file mode 100644 index 0000000..f8a1e11 --- /dev/null +++ b/docs/2.3.4/combine/combine-components.html @@ -0,0 +1,21 @@ + + + + + +Combine Components | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Combine Components

  • To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:
rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will move the existed components for the given inputs to src/components/<folder-path>/ folder.

  • If somehome one of the given components does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have comp-1 and comp-2 that exists under src/components/ folder, and we want to move them to src/components/foo/bar/ folder:

rnhc combine -c comp-1 comp-2 -f foo/bar
  • The command will outputs the following:
comp-1 component moved to src/components/foo/bar/
comp-2 component moved to src/components/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/combine/combine-screens.html b/docs/2.3.4/combine/combine-screens.html new file mode 100644 index 0000000..8bb1b52 --- /dev/null +++ b/docs/2.3.4/combine/combine-screens.html @@ -0,0 +1,21 @@ + + + + + +Combine Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Combine Screens

  • To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:
rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will move the existed screens for the given inputs to src/screens/<folder-path>/ folder.

  • If somehome one of the given screens does not exist, rnhc will prompt:

Check if all of these screens exist

Example

In this example, we have screen-1 and screen-2 that exists under src/screens/ folder, and we want to move them to src/screens/foo/bar/ folder:

rnhc combine -s screen-1 screen-2 -f foo/bar
  • The command will outputs the following:
screen-1 screen moved to src/screens/foo/bar/
screen-2 screen moved to src/screens/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/combine/intro.html b/docs/2.3.4/combine/intro.html new file mode 100644 index 0000000..9ef80b2 --- /dev/null +++ b/docs/2.3.4/combine/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Intro

With rnhc you can combine your components or screens in a specific path.

The following points shows how to user the combine command.

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/create-components.html b/docs/2.3.4/create/create-components.html new file mode 100644 index 0000000..b543db2 --- /dev/null +++ b/docs/2.3.4/create/create-components.html @@ -0,0 +1,21 @@ + + + + + +Create Components | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Create Components

Create a Component

  • To create your components simply run:
rnhc create -c <component-name>
  • This will create a component named after the given name <component-name> under the src/components/<component-name>/ folder.

Example

rnhc create -c test-component
  • This command will create the following directory src/components/test-component/:
src
└───components
└───test-component
index.jsx
styles.js
  • Where index.jsx represents the React FC component that contains the following:
import React from "react";
import { Text, View } from "react-native";
import { TestComponentStyles } from "./styles";

export const TestComponent = () => {
return (
<View>
<Text>TestComponent component created!</Text>
</View>
);
};
  • And for the styles.js you will see:
import { StyleSheet } from "react-native";

export const TestComponentStyles = StyleSheet.create({});

Create multiple Components

  • To create multiple components simply run:
rnhc create -c <component-name-1> <component-name-2> ...
  • This will create multiple components for the given names under the src/components/ folder.

Exmaple

rnhc create -c comp-1 comp-2
  • This command will create under the src/components/ folder the following:
src
└───components
├───comp-1
│ index.jsx
│ styles.js

└───comp-2
index.jsx
styles.js

Create a Components in a Specific Folder

  • To create one or mutliple components in a specified path that resides under the src/components/ folder, simply run:
rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will create your components under the src/components/<folder-path>/ folder.

Example

rnhc create -c comp-1 comp-2 -f foo/bar
  • This command will create under the src/components/ folder the following:
src
└───components
└───foo
└───bar
├───comp-1
│ index.jsx
│ styles.js

└───comp-2
index.jsx
styles.js
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/create-navigations.html b/docs/2.3.4/create/create-navigations.html new file mode 100644 index 0000000..ed0f119 --- /dev/null +++ b/docs/2.3.4/create/create-navigations.html @@ -0,0 +1,21 @@ + + + + + +Create Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Create Navigations

Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.

Create Navigation for specific screens

  • To create a navigation between two or more screens, simply run:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...
  • The <navigation-type> can be either of these types: stack or drawer or tab.

  • The number of given screens should be 2 or more.

  • If one of the screens does not exist, rnhc will try to create the navigation.jsx file that resides next to the existed screens.

  • If all screens does not exist, rhnc will prompt you the following:

None of these screens exist

Example

rnhc create -n stack screen-1 screen-2
  • This will create a navigation.jsx file next to screen-1 and screen-2 screens as the following:
src
└───screens
│ navigation.jsx

├───screen-1
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-2
│ index.jsx
│ styles.js

└───functions
index.js
  • The content for the navigation.jsx file is as the following:
import React from "react";

import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import { Screen1Screen } from "./screen-1";
import { Screen2Screen } from "./screen-2";

const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

export const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};

Create Navigation for specific screens in a specific folder

  • To create a navigation file for screens that resides in a specific path under the src/screens/ folder, you can run this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create the navigation.jsx file under the src/screens/<folder-path>/ folder for the screens that resides in the same location.

Example

rhnc create -n drawer screen-1 screen-2 -f foo/bar
  • This will create navigation.jsx file under src/screens/foo/bar/ folder which contains the following:
import React from "react";

import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import { Screen1Screen } from "./screen-1";
import { Screen2Screen } from "./screen-2";

const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

export const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};

Create Navigation that depends on other navigations

  • To create a navigation that depends on another navigation you can run the same command as this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>
  • This will create navigation.jsx file that resides in the same location for the given inputs.

Example

In this example, we have the following structure:

src
└───screens
├───folder
│ │ navigation.jsx
│ │
│ ├───screen-one
│ │ │ index.jsx
│ │ │ styles.js
│ │ │
│ │ └───functions
│ │ index.js
│ │
│ └───screen-two
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-three
│ index.jsx
│ styles.js

└───functions
index.js

Where we have a drawer navigation between screen-one and screen-two under the folder folder. And we want to create a stack navigation between folder and screen-three. And to show that rnhc will continue to run for the existed screens we added in the command line screen-four which does not exist as the following:

rnhc create -n stack folder screen-three screen-four
  • The command will output the following:
src/screens/screen-four/ does not exist
src/screens/navigation.jsx created
  • And it will add a new navigation.jsx that resides between folder and screen-three as the following:
src
└───screens
│ navigation.jsx

├───folder
│ │ navigation.jsx
│ │
│ ├───screen-one
│ │ │ index.jsx
│ │ │ styles.js
│ │ │
│ │ └───functions
│ │ index.js
│ │
│ └───screen-two
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-three
│ index.jsx
│ styles.js

└───functions
index.js
  • And the content of the new navigation.jsx file will be like this:
import React from "react";

import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import { Navigation as Folder } from "./folder/navigation";
import { ScreenThreeScreen } from "./screen-three";

const routes = [
{
name: "folder",
component: Folder,
},
{
name: "screen-three",
component: ScreenThreeScreen,
},
];

export const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};

Create Navigation for all screens

  • To create a navigation file for multiple screens that resides at the root of the src/screens/ folder, you can run this:
rnhc create -n <navigation-type>
  • This will create the navigation file for all existed screens in the src/screens/ folder.

You can also run this command to create a navigation file for multiple screens that resides in a specific path under the src/screens/ folder:

rnhc create -n <navigation-type> -f <folder-path>
  • This will create the navigation file for all existed screens in the src/screens/<folder-path>/ folder.

  • This also work for the nested navigations.

  • All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:

src
└───screens
│ navigation.jsx

├───folder
│ │
│ ├───screen-one
│ │ │ index.jsx
│ │ │ styles.js
│ │ │
│ │ └───functions
│ │ index.js
│ │
│ └───screen-two
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

├───screen-three
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-four
│ index.jsx
│ styles.js

└───functions
index.js

When you try to create a navigation like this:

rnhc create -n stack

It will contain only screen-three and screen-four because the src/screens/folder does not contain a navigation file.

So if you want to create a navigation file for all existed screens in the src/screens/ folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one.

By updating it means overwriting in other words, so you can just do this:

rnhc create -n stack -o
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/create-redux.html b/docs/2.3.4/create/create-redux.html new file mode 100644 index 0000000..fe9effe --- /dev/null +++ b/docs/2.3.4/create/create-redux.html @@ -0,0 +1,21 @@ + + + + + +Create Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Create Redux

  • To create a redux implementation run:
rnhc create -r
  • This will create a redux folder under the src/ folder containing the following:
src
└───redux
│ index.js

├───actions
│ └───general
│ index.js

└───reducers
│ index.js

└───general
index.js
  • Where index.js under the redux folder contains the redux store definition:
import { applyMiddleware, compose, createStore } from "redux";
import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};
  • And actions folder contains the action for each reducer, as for a example, at first rnhc will create a sample reducer and action which is called general.

  • The general action's index.js contains:

// write your general actions here

// this is an example for an action
export const init = () => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });
};
  • And the general reducer's index.js contains:
const initialState = { message: "" };

export const general = (state = initialState, action) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};
  • And the index.js file under the reducers folder contains the following:
import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});
  • In TypeScript, the files will be written as the following:

redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}

export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;

redux/actions/general/index.ts

import { GeneralState } from "../../reducers/general";
import { ThunkResult } from "../..";

// write your general actions here

// this is an example for an action
export const init =
(): ThunkResult<GeneralState> => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });
};

redux/reducers/general/index.ts

import { Action } from "../..";

export interface GeneralState {
message: string;
}

export const general = (
state: GeneralState = {
message: "",
},
action: Action<GeneralState>
) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};

redux/reducers/index.ts

import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});

Reducers

Create a reducer

  • To create a reducer, you must have a redux implementation then run:
rnhc create --reducer <reducer-name>

Example

rnhc create --reducer auth
  • This will create a auth reducer under the src/redux/reducers/ folder and the index.js for this reducer will contain the same code written in the template.

src/redux/reducers/auth/index.js

const initialState = {};

export const auth = (state = initialState, action) => {
switch (action.type) {
default:
return state;
}
};
  • It will also add the reducer to the index.js file under the reducers folder to use it in the combineReducers function.

src/redux/reducers/index.js

import { combineReducers } from "redux";
import { auth } from "./auth";
import { general } from "./general";

export const mainReducer = combineReducers({
auth,
general,
});
  • If you don't have a redux implementation create using rnhc create -r, this command will prompt:
Redux implementation does not exist
  • You can also overwrite the reducer by running:
rnhc create --reducer <reducer-name> -o

Create multiple reducers

  • To create multiple reducers, you must have a redux implementation then run:
rnhc create --reducer <reducer-name-1> <reducer-name-2> ...
  • This will also update your index.js file under the reducers folder to use the reducers you created.

Actions

Create an action

  • To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:
rnhc create --action <reducer-name> <action-name>

Example

  • In this example we are going to create an action for the auth reducer, so we will run:
rnhc create --action auth login
  • This will create a login action under the src/redux/actions/auth/ folder and the login.js for this action will contain the same code written in the template.

src/redux/actions/auth/login.js

export const loginAction = () => async (dispatch, getState) => {
dispatch({ type: "AUTH_LOGIN", payload: {} });
};
  • And it will update the index.js file under src/redux/actions/auth/ to export the action.

src/redux/actions/auth/index.js

export { loginAction } from "./login";

Create multiple actions

  • To create multiple actions, you must have a redux implementation and existed reducer, then run:
rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...
  • If the reducer doesn't exist, you will get an error like this:
./src/redux/reducers/x does not exist
  • Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ActionType in the src/redux/index.ts file. For example if you create an action for the auth reducer, you will get the following:

src/redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";

import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}
export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;
  • It will also update the necessary files that imports and exports modules in order to use the action in the reducer.

  • Also another note, if you prefer not using redux-thunk you can set that in rnhc.config.json file, this will let you create your store and actions without applying the redux-thunk middleware (For more details check configuration section).

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/create-screens.html b/docs/2.3.4/create/create-screens.html new file mode 100644 index 0000000..e5e60f1 --- /dev/null +++ b/docs/2.3.4/create/create-screens.html @@ -0,0 +1,21 @@ + + + + + +Create Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Create Screens

Create a Screen

  • To create your screen simply run:
rnhc create -s <screen-name>
  • This will create a screen after the given name screen-name under the src/screens/ folder.

Example

rnhc create -s test-screen
  • This will create the following:
src
└───screens
└───test-screen
│ index.jsx
│ styles.js

└───functions
index.js
  • Where index.jsx represent the screen which is nothing but a React FC component that contains the following:
import React from "react";
import { Text, View } from "react-native";

import {} from "./functions";
import { TestScreenStyles } from "./styles";

export const TestScreenScreen = () => {
return (
<View>
<Text>TestScreen screen created!</Text>
</View>
);
};
  • As for styles.js you will find:
import { StyleSheet } from "react-native";

export const TestScreenStyles = StyleSheet.create({});
  • And under the functions folder you should write your screen's functions and export them in function/index.js file, which by default it will contain the following:
// write your TestScreen screen functions here

Create multiple Screens

  • To create multiple screens simply run:
rnhc create -s <screen-name-1> <screen-name-2> ...
  • This will create multiple screens under the src/screens/ folder.

Example

rnhc create -s screen-1 screen-2
  • This will create the following:
src
└───screens
├───screen-1
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-2
│ index.jsx
│ styles.js

└───functions
index.js

Create Screens in a Specific Folder

  • To create one or multiple screens in a specific path that resides under src/screens/ folder, simply run:
rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create your screens under the src/screens/<folder-path> folder.

Example

rnhc create -s screen-1 screen-2 -f foo/bar
  • This will create the following:
src
└───screens
└───foo
└───bar
├───screen-1
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-2
│ index.jsx
│ styles.js

└───functions
index.js
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/intro.html b/docs/2.3.4/create/intro.html new file mode 100644 index 0000000..cc6ef0b --- /dev/null +++ b/docs/2.3.4/create/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Intro

rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.

  • By default rnhc create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.

  • If you want to force the use of a specific language you can add the --js or --ts options at the end of your create commands.

  • rnhc will not overwrite the existed implementation for all of the create commands.

  • If you want to overwrite the existed implementation for a specific create command you can add the --overwrite or -o option at the end of the command.

The following points shows how to use the create command.

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/using-configuration.html b/docs/2.3.4/create/using-configuration.html new file mode 100644 index 0000000..5275420 --- /dev/null +++ b/docs/2.3.4/create/using-configuration.html @@ -0,0 +1,21 @@ + + + + + +Using Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Using Configuration

With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.

  • To create a default configuration file run:
rnhc create --config
  • This will create a rnhc.config.json file at the root of your project. The file will contain the following:
{
"withStyles": true,
"withFunctions": true,
"withProps": true,
"defaultExports": true,
"componentsRoot": "./src/components",
"screensRoot": "./src/screens",
"reduxRoot": "./src/redux",
"applyReduxThunk": true
}
  1. withStyles: if true, create styles.js (or styles.ts) file for components and pages, if false, don't create styles.js (or styles.ts) file, default is true.
  2. withFunctions: if true, create functions folder for pages, if false, don't create functions folder, default is true.
  3. withProps: if true, create props interface for components and pages (in TS only), if false, don't create props interface, default is true.
  4. defaultExports: if true, create default export for components and pages, if false, create named export for components and pages, default is true.
  5. componentsRoot: the root folder for components, default is ./src/components.
  6. screensRoot: the root folder for screens, default is ./src/screens.
  7. reduxRoot: the root folder for redux, default is ./src/redux.
  8. applyReduxThunk: if true, apply redux-thunk middleware to the store, if false, don't apply redux-thunk middleware, default is true.
  • If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/create/using-templates.html b/docs/2.3.4/create/using-templates.html new file mode 100644 index 0000000..aa79688 --- /dev/null +++ b/docs/2.3.4/create/using-templates.html @@ -0,0 +1,21 @@ + + + + + +Using Templates | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Using Templates

You can create your screens and components with your defined templates by following these steps:

  1. First thing to do is to create a .template folder at the root of your react project.

  2. Inside the .template folder you can add your template, for example componentWithUseEffect.tsx (the file extension doesn't matter so it could be *.jsx, *.js or *.tsx):

import React, { useEffect } from "react";
import { View, Text } from "react-native";

export default function __COMPONENT__() {
useEffect(() => {}, []);

return (
<View>
<Text>Hello, World!</Text>
</View>
);
}
  • There is a restriction in naming these templates which is you should not put dots (.) between the name, like this (component.WithUseEffect.jsx). It should only contain one dot that makes the extension file like we're doing above.

  • You should type __COMPONENT__ in the template file and it will be replaced with the component name you want to create.

  1. After creating your template you can use them to create components or screens as the following:
rnhc create -c <component-name> -t <template-name>
rnhc create -s <screen-name> -t <template-name>
  • And of course, you can create multiple components or screens with the same template.

Example

As for our example it can be used like this for the above template:

rnhc create -c comp -t componentWithUseEffect
  • This will create comp component under src/components/ folder and the index.jsx for this component will contain the same code written in the template.

  • For the screen case, the index.jsx for that screen will contain the code written in the template.

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/delete/delete-components.html b/docs/2.3.4/delete/delete-components.html new file mode 100644 index 0000000..71f5fbe --- /dev/null +++ b/docs/2.3.4/delete/delete-components.html @@ -0,0 +1,21 @@ + + + + + +Delete Components | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Delete Components

Delete a Component

  • To delete a component simply run:
rnhc delete -c <component-name>
  • This will delete the component with the given name <component-name> under the src/components/ folder.

  • If the component does not exist, rnhc will prompt the following:

src/components/<component-name>/ does not exist

Delete multiple Components

  • To delete multiple components run:
rnhc delete -c <component-name-1> <component-name-2> ...
  • This will delete only the existed components with the given inputs that resides under the src/components/ folder.

Delete a Components in a Specific Folder

  • To delete one or multiple components that resides in a specific path under the src/components/ folder, you can run:
rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will delete only the existed components with the given inputs that resides under the src/components/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/delete/delete-configuration.html b/docs/2.3.4/delete/delete-configuration.html new file mode 100644 index 0000000..d21d567 --- /dev/null +++ b/docs/2.3.4/delete/delete-configuration.html @@ -0,0 +1,21 @@ + + + + + +Delete Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Delete Configuration

  • To delete a configuration file run:
rnhc delete --config
  • This will delete the rnhc.config.json file at the root of the project.

  • If rnhc.config.json does not exist, rnhc will prompt:

rnhc.config.json does not exist
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/delete/delete-navigations.html b/docs/2.3.4/delete/delete-navigations.html new file mode 100644 index 0000000..d0647f9 --- /dev/null +++ b/docs/2.3.4/delete/delete-navigations.html @@ -0,0 +1,21 @@ + + + + + +Delete Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Delete Navigations

Delete the root Navigation

  • To delete a navigation file that resides in src/screens/ folder simply run:
rnhc delete -n
  • This will delete the navigation file if it exists, if not rnhc will prompt the following:
It seems there is no navigation file in src/screens/

Delete a Navigation in a Specific Folder

  • To delete a navigation file that resides in a specific path that resides under src/screens/ folder you can run:
rnhc delete -n -f <folder-path>
  • This will delete the navigation file if it does exist under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/delete/delete-redux.html b/docs/2.3.4/delete/delete-redux.html new file mode 100644 index 0000000..cf7ab05 --- /dev/null +++ b/docs/2.3.4/delete/delete-redux.html @@ -0,0 +1,21 @@ + + + + + +Delete Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Delete Redux

  • To delete a redux implementation run:
rnhc delete -r
  • This will delete the redux folder under src/ with all of its files and subfolders.

  • If redux does not exist, rnhc will prompt:

src/redux/ does not exist

Reducers

Delete a reducer

  • To delete a reducer run:
rnhc delete --reducer <reducer-name>
  • This will delete the existed reducer under src/redux/reducer/ folder, if not rnhc will prompt the following:
./src/redux/reducers/<reducer-name>/ does not exist
  • It will also update the index.js file under src/redux/reducer/ folder to remove it from the import list as well as from the combineReducers function.

Delete multiple reducers

  • You can even delete multiple reducers at once:
rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...

Delete all reducers

  • To delete all reducers run:
rnhc delete --reducer

Actions

Delete an action

  • To delete an action run:
rnhc delete --action <reducer-name> <action-name>
  • If the reducer does not exist, rnhc will prompt the following:
./src/redux/actions/<reducer-name>/ does not exist
  • It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the src/redux/index.ts.

Delete multiple actions

  • You can even delete multiple actions for a specific reducer at once:
rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...

Delete all actions for a specific reducer

  • To delete all actions for a specific reducer run:
rnhc delete --action <reducer-name>
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/delete/delete-screens.html b/docs/2.3.4/delete/delete-screens.html new file mode 100644 index 0000000..a26668d --- /dev/null +++ b/docs/2.3.4/delete/delete-screens.html @@ -0,0 +1,21 @@ + + + + + +Delete Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Delete Screens

Delete a Screen

  • To delete a screen simply run:
rnhc delete -s <screen-name>
  • This will delete the screen with the given name <screen-name> under the src/screens/ folder.

  • If the screen does not exist, rnhc will prompt the following:

src/screens/<screen-name>/ does not exist

Delete multiple Screens

  • To delete multiple screens run:
rnhc delete -s <screen-name-1> <screen-name-2> ...
  • This will delete only the existed screens with the given inputs that resides under the src/screens/ folder.

Delete a Screens in a Specific Folder

  • To delete one or multiple screens that resides in a specific path under the src/screens/ folder, you can run:
rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will delete only the existed screens with the given inputs that resides under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/delete/intro.html b/docs/2.3.4/delete/intro.html new file mode 100644 index 0000000..bd07f20 --- /dev/null +++ b/docs/2.3.4/delete/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Intro

With rnhc you can delete what you already created with create commands.

The following points shows how to deal with deleting your files with the delete command.

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/getting-started.html b/docs/2.3.4/getting-started.html new file mode 100644 index 0000000..ee05a16 --- /dev/null +++ b/docs/2.3.4/getting-started.html @@ -0,0 +1,21 @@ + + + + + +Getting Started | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Getting Started

  • To install it globally in your system run:
npm i react-native-help-create -g

Or

yarn global add react-native-help-create
  • To install it as a dev dependency in your react native project run:
npm i react-native-help-create --save-dev

Or

yarn add react-native-help-create --dev
  • If you want to use it without installing it (using npm cache) run:
npx react-native-help-create --help
+ + + + \ No newline at end of file diff --git a/docs/2.3.4/intro.html b/docs/2.3.4/intro.html new file mode 100644 index 0000000..69c7b62 --- /dev/null +++ b/docs/2.3.4/intro.html @@ -0,0 +1,21 @@ + + + + + +Summary | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Summary

This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.

The following project structure is used by this command:

src
├───components
│ ├───comp-one
│ │ index.jsx
│ │ styles.js
│ │
│ ├───comp-two
│ │ index.jsx
│ │ styles.js
│ │
│ └───folder
│ └───comp-three
│ index.jsx
│ styles.js

├───redux
│ │ index.js
│ │
│ ├───actions
│ │ └───general
│ │ index.js
│ │
│ └───reducers
│ │ index.js
│ │
│ └───general
│ index.js

└───screens
│ navigation.jsx

├───folder
│ │ navigation.jsx
│ │
│ ├───screen-four
│ │ │ index.jsx
│ │ │ styles.js
│ │ │
│ │ └───functions
│ │ index.js
│ │
│ └───screen-three
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

├───screen-one
│ │ index.jsx
│ │ styles.js
│ │
│ └───functions
│ index.js

└───screen-two
│ index.jsx
│ styles.js

└───functions
index.js
  • As you can see above, the src folder is the folder that resides at the root of your React Native project and under this folder, you will find the components folder which contains all the shared components that are used through out the screen. The screens folder contains the app's screens that can uses some of the shared components above it.

  • In each component you will find index.jsx that contains the components JSX.Element syntaxes, and styles.js that contains the styles for that component.

  • In each screen you will find index.jsx that contains the JSX.Element syntaxes, and styles.js that contains the screen's styles and functions folder which will contain the screen's specific functions.

  • Each screen can use one of the shared components that are defined in components folder, and you can pass the functions to those components hence there is not functions folder under a component subfolder.

  • For the screens part you can find navigation.jsx files that shows the relation between the screens that resides in the same folder. For example, the navigation.jsx under the screens folder represent a stack navigation between folder and screen-one and screen-two. As for the navigation.jsx file under the folder folder is represent a drawer navigation between screen-three and screen-four.

  • As for the redux folder you can see there is index.js which contain the redux store, and actions and reducers folders are next to it so you can find only things that are related to redux in one single place.

  • This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.

+ + + + \ No newline at end of file diff --git a/docs/2.3.4/notes.html b/docs/2.3.4/notes.html new file mode 100644 index 0000000..d6183be --- /dev/null +++ b/docs/2.3.4/notes.html @@ -0,0 +1,21 @@ + + + + + +Notes | react-native-help-create + + + + + + + + + +
+
Version: 2.3.4

Notes

  • To see the available commands for rnhc you can run:
rnhc --help
  • To see the available positionals and options for a specific command like create you can run:
rnhc create --help
  • In order to rnhc to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, rnhc will prompt:
You don't seem to be at the root of a react native project
  • In create command, rnhc will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.

  • If you want to create files with a specific language you can add --js or --ts options at the end of your create command, like this for example:

rnhc create -s test-screen --ts
  • It is advisable to give the components, screens, reducers and actions with this case some-name, for example:
rnhc create -s world-to-react
  • You can always overwrite your implementation using the --overwrite or -o option, for example:
rnhc create -c test-component -o
rnhc create -s test-screen -o
rnhc create -r -o
rnhc create --reducer test-reducer -o
rnhc create --action test-reducer test-action -o
  • This is helpful when you want to update your navigation files, for example you already have a navigation file in src/screens/ folder and you want to update it with the new screens you created:
rnhc create -n stack --overwrite
  • When creating reducers you should have already a redux implmentation created with rnhc create -r so it can work.

  • When creating actions, you should have already a redux implementation created with rnhc create -r as well as an existed reducer with rnhc create --reducer <reducer-name> so it can create actions for that specific reducer.

  • Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the src/redux/ folder (Or your specified path for the root of redux folder in rnhc.config.json).

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/category/combine.html b/docs/2.5.1/category/combine.html new file mode 100644 index 0000000..9fcd935 --- /dev/null +++ b/docs/2.5.1/category/combine.html @@ -0,0 +1,21 @@ + + + + + +Combine | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.5.1/category/create.html b/docs/2.5.1/category/create.html new file mode 100644 index 0000000..2db96ab --- /dev/null +++ b/docs/2.5.1/category/create.html @@ -0,0 +1,21 @@ + + + + + +Create | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.5.1/category/delete.html b/docs/2.5.1/category/delete.html new file mode 100644 index 0000000..296e0de --- /dev/null +++ b/docs/2.5.1/category/delete.html @@ -0,0 +1,21 @@ + + + + + +Delete | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.5.1/combine/combine-components.html b/docs/2.5.1/combine/combine-components.html new file mode 100644 index 0000000..0de950b --- /dev/null +++ b/docs/2.5.1/combine/combine-components.html @@ -0,0 +1,21 @@ + + + + + +Combine Components | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Combine Components

To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:

rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will move the existed components for the given inputs to src/components/<folder-path>/ folder.

  • If somehome one of the given components does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have comp-1 and comp-2 that exists under src/components/ folder, and we want to move them to src/components/foo/bar/ folder:

rnhc combine -c comp-1 comp-2 -f foo/bar
  • The command will outputs the following:
comp-1 component moved to src/components/foo/bar/
comp-2 component moved to src/components/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/combine/combine-screens.html b/docs/2.5.1/combine/combine-screens.html new file mode 100644 index 0000000..f1e22e3 --- /dev/null +++ b/docs/2.5.1/combine/combine-screens.html @@ -0,0 +1,21 @@ + + + + + +Combine Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Combine Screens

To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:

rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will move the existed screens for the given inputs to src/screens/<folder-path>/ folder.

  • If somehome one of the given screens does not exist, rnhc will prompt:

Check if all of these screens exist

Example

In this example, we have screen-1 and screen-2 that exists under src/screens/ folder, and we want to move them to src/screens/foo/bar/ folder:

rnhc combine -s screen-1 screen-2 -f foo/bar
  • The command will outputs the following:
screen-1 screen moved to src/screens/foo/bar/
screen-2 screen moved to src/screens/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/combine/intro.html b/docs/2.5.1/combine/intro.html new file mode 100644 index 0000000..fa64e6d --- /dev/null +++ b/docs/2.5.1/combine/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Intro

With rnhc you can combine your components or screens in a specific path.

The following points shows how to user the combine command.

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/create-components.html b/docs/2.5.1/create/create-components.html new file mode 100644 index 0000000..9ba7c4f --- /dev/null +++ b/docs/2.5.1/create/create-components.html @@ -0,0 +1,21 @@ + + + + + +Create Components | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Create Components

Create a Component

  • To create your components simply run:
rnhc create -c <component-name>
  • This will create a component named after the given name <component-name> under the src/components/<component-name>/ folder.

Example

rnhc create -c TestComponent
  • This command will create the following directory src/components/test-component/:
src/
└── components
└── test-component
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js
  • Where index.jsx represents the React FC component that contains the following:
import { Text, View } from "react-native";
import { TestComponentStyles } from "./styles";

const TestComponent = () => {
return (
<View>
<Text>TestComponent component created!</Text>
</View>
);
};
export default TestComponent;
  • And for the styles.js you will see:
import { StyleSheet } from "react-native";

export const TestComponentStyles = StyleSheet.create({});

Create multiple Components

  • To create multiple components simply run:
rnhc create -c <component-name-1> <component-name-2> ...
  • This will create multiple components for the given names under the src/components/ folder.

Exmaple

rnhc create -c comp-1 comp-2
  • This command will create under the src/components/ folder the following:
src/
└── components
├── comp-1
│ ├── __tests__
│ │ └── index.spec.jsx
│ ├── index.jsx
│ └── styles.js
└── comp-2
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create a Components in a Specific Folder

  • To create one or mutliple components in a specified path that resides under the src/components/ folder, simply run:
rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will create your components under the src/components/<folder-path>/ folder.

Example

rnhc create -c comp-1 comp-2 -f foo/bar
  • This command will create under the src/components/ folder the following:
src/
└── components
└── foo
└── bar
├── comp-1
│ ├── __tests__
│ │ └── index.spec.jsx
│ ├── index.jsx
│ └── styles.js
└── comp-2
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/create-navigations.html b/docs/2.5.1/create/create-navigations.html new file mode 100644 index 0000000..19949a8 --- /dev/null +++ b/docs/2.5.1/create/create-navigations.html @@ -0,0 +1,21 @@ + + + + + +Create Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Create Navigations

Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.

Create Navigation for specific screens

  • To create a navigation between two or more screens, simply run:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...
  • The <navigation-type> can be either of these types: stack, native-stack, drawer, bottom-tabs, material-bottom-tabs or material-top-tabs.

  • The number of given screens should be 2 or more.

  • If one of the screens does not exist, rnhc will try to create the navigation.jsx file that resides next to the existed screens.

  • If all screens does not exist, rhnc will prompt you the following:

None of these screens exist

Example

rnhc create -n stack screen-1 screen-2
  • This will create a navigation.jsx file next to screen-1 and screen-2 screens as the following:
src/
└── screens
├── navigation.jsx
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
  • The content for the navigation.jsx file is as the following:
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import Screen1Screen from "./screen-1";
import Screen2Screen from "./screen-2";

const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation for specific screens in a specific folder

  • To create a navigation file for screens that resides in a specific path under the src/screens/ folder, you can run this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create the navigation.jsx file under the src/screens/<folder-path>/ folder for the screens that resides in the same location.

Example

rhnc create -n drawer screen-1 screen-2 -f foo/bar
  • This will create navigation.jsx file under src/screens/foo/bar/ folder which contains the following:
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import Screen1Screen from "./screen-1";
import Screen2Screen from "./screen-2";

const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation that depends on other navigations

  • To create a navigation that depends on another navigation you can run the same command as this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>
  • This will create navigation.jsx file that resides in the same location for the given inputs.

Example

In this example, we have the following structure:

src/
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

Where we have a drawer navigation between screen-one and screen-two under the folder folder. And we want to create a stack navigation between folder and screen-three. And to show that rnhc will continue to run for the existed screens we added in the command line screen-four which does not exist as the following:

rnhc create -n stack folder screen-three screen-four
  • The command will output the following:
src/screens/screen-four/ does not exist
src/screens/navigation.jsx created
  • And it will add a new navigation.jsx that resides between folder and screen-three as the following:
src/
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
  • And the content of the new navigation.jsx file will be like this:
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import FolderNavigation from "./folder/navigation";
import ScreenThreeScreen from "./screen-three";

const routes = [
{
name: "folder",
component: FolderNavigation,
},
{
name: "screen-three",
component: ScreenThreeScreen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation for all screens

  • To create a navigation file for multiple screens that resides at the root of the src/screens/ folder, you can run this:
rnhc create -n <navigation-type>
  • This will create the navigation file for all existed screens in the src/screens/ folder.

You can also run this command to create a navigation file for multiple screens that resides in a specific path under the src/screens/ folder:

rnhc create -n <navigation-type> -f <folder-path>
  • This will create the navigation file for all existed screens in the src/screens/<folder-path>/ folder.

  • This also work for the nested navigations.

  • All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:

src/
└── screens
├── folder
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
├── screen-four
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

When you try to create a navigation like this:

rnhc create -n stack

It will output the following:

./src/screens/folder/navigation.jsx does not exist
./src/screens/navigation.jsx created

And the ./src/screens/navigation.jsx file will only contain screen-three and screen-four because the src/screens/folder does not contain a navigation file.

So if you want to create a navigation file for all existed screens in the src/screens/ folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one.

By updating it means overwriting in other words, so you can just do this:

rnhc create -n stack -o
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/create-redux.html b/docs/2.5.1/create/create-redux.html new file mode 100644 index 0000000..6b064a2 --- /dev/null +++ b/docs/2.5.1/create/create-redux.html @@ -0,0 +1,21 @@ + + + + + +Create Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Create Redux

To create a redux implementation run:

rnhc create -r
  • This will create a redux folder under the src/ folder containing the following:
src
└───redux
│ index.js

├───actions
│ └───general
│ index.js

└───reducers
│ index.js

└───general
index.js
  • Where index.js under the redux folder contains the redux store definition:
import { applyMiddleware, compose, createStore } from "redux";
import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};
  • And actions folder contains the action for each reducer, as for a example, at first rnhc will create a sample reducer and action which is called general.

  • The general action's index.js contains:

// write your general actions here

// this is an example for an action
export const init = () => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });
};
  • And the general reducer's index.js contains:
const initialState = { message: "" };

export const general = (state = initialState, action) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};
  • And the index.js file under the reducers folder contains the following:
import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});
  • In TypeScript, the files will be written as the following:

redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}

export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;

redux/actions/general/index.ts

import { GeneralState } from "../../reducers/general";
import { ThunkResult } from "../..";

// write your general actions here

// this is an example for an action
export const init =
(): ThunkResult<GeneralState> => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });
};

redux/reducers/general/index.ts

import { Action } from "../..";

export interface GeneralState {
message: string;
}

export const general = (
state: GeneralState = {
message: "",
},
action: Action<GeneralState>
) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};

redux/reducers/index.ts

import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});

Reducers

Create a reducer

  • To create a reducer, you must have a redux implementation then run:
rnhc create --reducer <reducer-name>

Example

rnhc create --reducer auth
  • This will create a auth reducer under the src/redux/reducers/ folder and the index.js for this reducer will contain the same code written in the template.

src/redux/reducers/auth/index.js

const initialState = {};

export const auth = (state = initialState, action) => {
switch (action.type) {
default:
return state;
}
};
  • It will also add the reducer to the index.js file under the reducers folder to use it in the combineReducers function.

src/redux/reducers/index.js

import { combineReducers } from "redux";
import { auth } from "./auth";
import { general } from "./general";

export const mainReducer = combineReducers({
auth,
general,
});
  • If you don't have a redux implementation create using rnhc create -r, this command will prompt:
Redux implementation does not exist
  • You can also overwrite the reducer by running:
rnhc create --reducer <reducer-name> -o

Create multiple reducers

  • To create multiple reducers, you must have a redux implementation then run:
rnhc create --reducer <reducer-name-1> <reducer-name-2> ...
  • This will also update your index.js file under the reducers folder to use the reducers you created.

Actions

Create an action

  • To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:
rnhc create --action <reducer-name> <action-name>

Example

  • In this example we are going to create an action for the auth reducer, so we will run:
rnhc create --action auth login
  • This will create a login action under the src/redux/actions/auth/ folder and the login.js for this action will contain the same code written in the template.

src/redux/actions/auth/login.js

export const loginAction = () => async (dispatch, getState) => {
dispatch({ type: "AUTH_LOGIN", payload: {} });
};
  • And it will update the index.js file under src/redux/actions/auth/ to export the action.

src/redux/actions/auth/index.js

export { loginAction } from "./login";

Create multiple actions

  • To create multiple actions, you must have a redux implementation and existed reducer, then run:
rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...
  • If the reducer doesn't exist, you will get an error like this:
./src/redux/reducers/x does not exist
  • Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ActionType in the src/redux/index.ts file. For example if you create an action for the auth reducer, you will get the following:

src/redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";

import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}
export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;
  • It will also update the necessary files that imports and exports modules in order to use the action in the reducer.

  • Also another note, if you prefer not using redux-thunk you can set that in rnhc.config.json file, this will let you create your store and actions without applying the redux-thunk middleware (For more details check configuration section).

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/create-screens.html b/docs/2.5.1/create/create-screens.html new file mode 100644 index 0000000..b056328 --- /dev/null +++ b/docs/2.5.1/create/create-screens.html @@ -0,0 +1,21 @@ + + + + + +Create Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Create Screens

Create a Screen

  • To create your screen simply run:
rnhc create -s <screen-name>
  • This will create a screen after the given name screen-name under the src/screens/ folder.

Example

rnhc create -s testScreen
  • This will create the following:
src/
└── screens
└── test-screen
├── __tests__
│ └── index.spec.jsx
├── functions
│ └── index.js
├── index.jsx
└── styles.js
  • Where index.jsx represent the screen which is nothing but a React FC component that contains the following:
import { Text, View } from "react-native";
import {} from "./functions";
import { TestScreenStyles } from "./styles";

const TestScreenScreen = () => {
return (
<View>
<Text>TestScreen screen created!</Text>
</View>
);
};
export default TestScreenScreen;
  • As for styles.js you will find:
import { StyleSheet } from "react-native";

export const TestScreenStyles = StyleSheet.create({});
  • And under the functions folder you should write your screen's functions and export them in function/index.js file, which by default it will contain the following:
// write your TestScreen screen functions here

Create multiple Screens

  • To create multiple screens simply run:
rnhc create -s <screen-name-1> <screen-name-2> ...
  • This will create multiple screens under the src/screens/ folder.

Example

rnhc create -s screen-1 screen-2
  • This will create the following:
src/
└── screens
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

Create Screens in a Specific Folder

  • To create one or multiple screens in a specific path that resides under src/screens/ folder, simply run:
rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create your screens under the src/screens/<folder-path> folder.

Example

rnhc create -s screen-1 screen-2 -f foo/bar
  • This will create the following:
src/
└── screens
└── foo
└── bar
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/intro.html b/docs/2.5.1/create/intro.html new file mode 100644 index 0000000..126b986 --- /dev/null +++ b/docs/2.5.1/create/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Intro

rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.

  • By default rnhc create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.

  • If you want to force the use of a specific language you can add the --js or --ts options at the end of your create commands.

  • rnhc will not overwrite the existed implementation for all of the create commands.

  • If you want to overwrite the existed implementation for a specific create command you can add the --overwrite or -o option at the end of the command.

The following points shows how to use the create command.

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/using-configuration.html b/docs/2.5.1/create/using-configuration.html new file mode 100644 index 0000000..e975745 --- /dev/null +++ b/docs/2.5.1/create/using-configuration.html @@ -0,0 +1,21 @@ + + + + + +Using Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Using Configuration

With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.

  • To create a default configuration file run:
rnhc create --config
  • This will create a rnhc.config.json file at the root of your project. The file will contain the following:
{
"withStyles": true,
"withFunctions": true,
"withProps": true,
"withTests": true,
"defaultExports": true,
"componentsRoot": "./src/components",
"screensRoot": "./src/screens",
"reduxRoot": "./src/redux",
"applyReduxThunk": true
}
  1. withStyles: if true, create styles.js (or styles.ts) file for components and screens, if false, don't create styles.js (or styles.ts) file, default is true.
  2. withFunctions: if true, create functions folder for screens, if false, don't create functions folder, default is true.
  3. withProps: if true, create props interface for components and screens (in TS only), if false, don't create props interface, default is true.
  4. withTests: if true, create __tests__ folder for components and screens, if false, don't create __tests__ folder, default is true.
  5. defaultExports: if true, create default export for components and pages, if false, create named export for components and pages, default is true.
  6. componentsRoot: the root folder for components, default is ./src/components.
  7. screensRoot: the root folder for screens, default is ./src/screens.
  8. reduxRoot: the root folder for redux, default is ./src/redux.
  9. applyReduxThunk: if true, apply redux-thunk middleware to the store, if false, don't apply redux-thunk middleware, default is true.
  • If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/create/using-templates.html b/docs/2.5.1/create/using-templates.html new file mode 100644 index 0000000..37ecd12 --- /dev/null +++ b/docs/2.5.1/create/using-templates.html @@ -0,0 +1,21 @@ + + + + + +Using Templates | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Using Templates

You can create your screens and components with your defined templates by following these steps:

  1. First thing to do is to create a .template folder at the root of your react project.

  2. Inside the .template folder you can add your template, for example componentWithUseEffect.tsx (the file extension doesn't matter so it could be *.jsx, *.js or *.tsx):

import React, { useEffect } from "react";
import { View, Text } from "react-native";

export default function __COMPONENT__() {
useEffect(() => {}, []);

return (
<View>
<Text>Hello, World!</Text>
</View>
);
}
  • There is a restriction in naming these templates which is you should not put dots (.) between the name, like this (component.WithUseEffect.jsx). It should only contain one dot that makes the extension file like we're doing above.

  • You should type __COMPONENT__ in the template file and it will be replaced with the component name you want to create.

  1. After creating your template you can use them to create components or screens as the following:
rnhc create -c <component-name> -t <template-name>
rnhc create -s <screen-name> -t <template-name>
  • And of course, you can create multiple components or screens with the same template.

Example

As for our example it can be used like this for the above template:

rnhc create -c comp -t componentWithUseEffect
  • This will create comp component under src/components/ folder and the index.jsx for this component will contain the same code written in the template.

  • For the screen case, the index.jsx for that screen will contain the code written in the template.

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/delete/delete-components.html b/docs/2.5.1/delete/delete-components.html new file mode 100644 index 0000000..3550583 --- /dev/null +++ b/docs/2.5.1/delete/delete-components.html @@ -0,0 +1,21 @@ + + + + + +Delete Components | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Delete Components

Delete a Component

  • To delete a component simply run:
rnhc delete -c <component-name>
  • This will delete the component with the given name <component-name> under the src/components/ folder.

  • If the component does not exist, rnhc will prompt the following:

src/components/<component-name>/ does not exist

Delete multiple Components

  • To delete multiple components run:
rnhc delete -c <component-name-1> <component-name-2> ...
  • This will delete only the existed components with the given inputs that resides under the src/components/ folder.

Delete a Components in a Specific Folder

  • To delete one or multiple components that resides in a specific path under the src/components/ folder, you can run:
rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will delete only the existed components with the given inputs that resides under the src/components/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/delete/delete-configuration.html b/docs/2.5.1/delete/delete-configuration.html new file mode 100644 index 0000000..1dd41a5 --- /dev/null +++ b/docs/2.5.1/delete/delete-configuration.html @@ -0,0 +1,21 @@ + + + + + +Delete Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Delete Configuration

To delete a configuration file run:

rnhc delete --config
  • This will delete the rnhc.config.json file at the root of the project.

  • If rnhc.config.json does not exist, rnhc will prompt:

rnhc.config.json does not exist
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/delete/delete-navigations.html b/docs/2.5.1/delete/delete-navigations.html new file mode 100644 index 0000000..433819b --- /dev/null +++ b/docs/2.5.1/delete/delete-navigations.html @@ -0,0 +1,21 @@ + + + + + +Delete Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Delete Navigations

Delete the root Navigation

  • To delete a navigation file that resides in src/screens/ folder simply run:
rnhc delete -n
  • This will delete the navigation file if it exists, if not rnhc will prompt the following:
It seems there is no navigation file in src/screens/

Delete a Navigation in a Specific Folder

  • To delete a navigation file that resides in a specific path that resides under src/screens/ folder you can run:
rnhc delete -n -f <folder-path>
  • This will delete the navigation file if it does exist under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/delete/delete-redux.html b/docs/2.5.1/delete/delete-redux.html new file mode 100644 index 0000000..acab286 --- /dev/null +++ b/docs/2.5.1/delete/delete-redux.html @@ -0,0 +1,21 @@ + + + + + +Delete Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Delete Redux

To delete a redux implementation run:

rnhc delete -r
  • This will delete the redux folder under src/ with all of its files and subfolders.

  • If redux does not exist, rnhc will prompt:

src/redux/ does not exist

Reducers

Delete a reducer

  • To delete a reducer run:
rnhc delete --reducer <reducer-name>
  • This will delete the existed reducer under src/redux/reducer/ folder, if not rnhc will prompt the following:
./src/redux/reducers/<reducer-name>/ does not exist
  • It will also update the index.js file under src/redux/reducer/ folder to remove it from the import list as well as from the combineReducers function.

Delete multiple reducers

  • You can even delete multiple reducers at once:
rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...

Delete all reducers

  • To delete all reducers run:
rnhc delete --reducer

Actions

Delete an action

  • To delete an action run:
rnhc delete --action <reducer-name> <action-name>
  • If the reducer does not exist, rnhc will prompt the following:
./src/redux/actions/<reducer-name>/ does not exist
  • It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the src/redux/index.ts.

Delete multiple actions

  • You can even delete multiple actions for a specific reducer at once:
rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...

Delete all actions for a specific reducer

  • To delete all actions for a specific reducer run:
rnhc delete --action <reducer-name>
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/delete/delete-screens.html b/docs/2.5.1/delete/delete-screens.html new file mode 100644 index 0000000..f11a7ef --- /dev/null +++ b/docs/2.5.1/delete/delete-screens.html @@ -0,0 +1,21 @@ + + + + + +Delete Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Delete Screens

Delete a Screen

  • To delete a screen simply run:
rnhc delete -s <screen-name>
  • This will delete the screen with the given name <screen-name> under the src/screens/ folder.

  • If the screen does not exist, rnhc will prompt the following:

src/screens/<screen-name>/ does not exist

Delete multiple Screens

  • To delete multiple screens run:
rnhc delete -s <screen-name-1> <screen-name-2> ...
  • This will delete only the existed screens with the given inputs that resides under the src/screens/ folder.

Delete a Screens in a Specific Folder

  • To delete one or multiple screens that resides in a specific path under the src/screens/ folder, you can run:
rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will delete only the existed screens with the given inputs that resides under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/delete/intro.html b/docs/2.5.1/delete/intro.html new file mode 100644 index 0000000..b2bcfbe --- /dev/null +++ b/docs/2.5.1/delete/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Intro

With rnhc you can delete what you already created with create commands.

The following points shows how to deal with deleting your files with the delete command.

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/getting-started.html b/docs/2.5.1/getting-started.html new file mode 100644 index 0000000..ab9f655 --- /dev/null +++ b/docs/2.5.1/getting-started.html @@ -0,0 +1,21 @@ + + + + + +Getting Started | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Getting Started

  • To install it globally in your system run:
npm i react-native-help-create -g

Or

yarn global add react-native-help-create
  • To install it as a dev dependency in your react native project run:
npm i react-native-help-create --save-dev

Or

yarn add react-native-help-create --dev
  • If you want to use it without installing it (using npm cache) run:
npx react-native-help-create --help
+ + + + \ No newline at end of file diff --git a/docs/2.5.1/intro.html b/docs/2.5.1/intro.html new file mode 100644 index 0000000..9060711 --- /dev/null +++ b/docs/2.5.1/intro.html @@ -0,0 +1,21 @@ + + + + + +Summary | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Summary

This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.

The following project structure is used by this command:

src/
├── components
│   ├── comp-one
│   │   ├── __tests__
│   │   │   └── index.spec.tsx
│   │   ├── index.tsx
│   │   └── styles.ts
│   ├── comp-two
│   │   ├── __tests__
│   │   │   └── index.spec.tsx
│   │   ├── index.tsx
│   │   └── styles.ts
│   └── folder
│   └── comp-three
│   ├── __tests__
│   │   └── index.spec.tsx
│   ├── index.tsx
│   └── styles.ts
├── redux
│   ├── actions
│   │   └── general
│   │   └── index.ts
│   ├── index.ts
│   └── reducers
│   ├── general
│   │   └── index.ts
│   └── index.ts
└── screens
├── folder
│   ├── navigation.tsx
│   ├── screen-four
│   │   ├── __tests__
│   │   │   └── index.spec.tsx
│   │   ├── index.tsx
│   │   └── styles.ts
│   └── screen-three
│   ├── __tests__
│   │   └── index.spec.tsx
│   ├── index.tsx
│   └── styles.ts
├── navigation.tsx
├── screen-one
│   ├── __tests__
│   │   └── index.spec.tsx
│   ├── index.tsx
│   └── styles.ts
└── screen-two
├── __tests__
│   └── index.spec.tsx
├── index.tsx
└── styles.ts
  • As you can see above, the src folder is the folder that resides at the root of your React Native project and under this folder, you will find the components folder which contains all the shared components that are used through out the screen. The screens folder contains the app's screens that can uses some of the shared components above it.

  • In each component you will find index.tsx that contains the components JSX.Element syntaxes, and styles.ts that contains the styles for that component.

  • In each screen you will find index.tsx that contains the JSX.Element syntaxes, and styles.ts that contains the screen's styles and functions folder which will contain the screen's specific functions.

  • Each screen can use one of the shared components that are defined in components folder, and you can pass the functions to those components hence there is not functions folder under a component subfolder.

  • For the screens part you can find navigation.tsx files that shows the relation between the screens that resides in the same folder. For example, the navigation.tsx under the screens folder represent a stack navigation between folder and screen-one and screen-two. As for the navigation.tsx file under the folder folder is represent a drawer navigation between screen-three and screen-four.

  • In both the components and screens folders, you can find __tests__ folder that contains the tests for the component or screen.

  • As for the redux folder you can see there is index.ts which contain the redux store, and actions and reducers folders are next to it so you can find only things that are related to redux in one single place.

  • This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.

  • You can override the usage of the default behavior of this command line by modifying the rnhc.config.json file (more details can be found here).

+ + + + \ No newline at end of file diff --git a/docs/2.5.1/notes.html b/docs/2.5.1/notes.html new file mode 100644 index 0000000..19f5950 --- /dev/null +++ b/docs/2.5.1/notes.html @@ -0,0 +1,21 @@ + + + + + +Notes | react-native-help-create + + + + + + + + + +
+
Version: 2.5.1

Notes

  • To see the available commands for rnhc you can run:
rnhc --help
  • To see the available positionals and options for a specific command like create you can run:
rnhc create --help
  • In order to rnhc to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, rnhc will prompt:
You don't seem to be at the root of a react native project
  • In create command, rnhc will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.

  • If you are in a JavaScript project and somehow you want to create your component or screen in TypeScript, you can use the --typescript or --ts option:

rnhc create -s test-screen --ts
  • It doesn't matter what case you name your component or screen, rnhc will always create a component or screen with the same name, but with the first letter in uppercase, and the folder will be in kebab case. So if you name your component with test-comp, it will create a component or screen with the name TestComp in the index.jsx file under the ./src/components/test-comp/ folder. Check the example below:
rnhc create -c test-comp
rnhc create -c testComp
rnhc create -c TestComp

The above commands produce the same outcome:

src/
└── components
└── test-comp
├── __tests__
│   └── index.spec.jsx
├── index.jsx
└── styles.js

  • You can always overwrite your implementation using the --overwrite or -o option, for example:
rnhc create -c test-component -o
rnhc create -s TestScreen -o
rnhc create -r -o
rnhc create --reducer testReducer -o
rnhc create --action testReducer test-action -o
  • This is helpful when you want to update your navigation files, for example you already have a navigation file in src/screens/ folder and you want to update it with the new screens you created:
rnhc create -n stack --overwrite
  • When creating reducers you should have already a redux implmentation created with rnhc create -r so it can work.

  • When creating actions, you should have already a redux implementation created with rnhc create -r as well as an existed reducer with rnhc create --reducer <reducer-name> so it can create actions for that specific reducer.

  • Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the src/redux/ folder (Or your specified path for the root of redux folder in rnhc.config.json).

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/category/combine.html b/docs/2.6.0/category/combine.html new file mode 100644 index 0000000..d9943db --- /dev/null +++ b/docs/2.6.0/category/combine.html @@ -0,0 +1,21 @@ + + + + + +Combine | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.6.0/category/create.html b/docs/2.6.0/category/create.html new file mode 100644 index 0000000..e34f4cb --- /dev/null +++ b/docs/2.6.0/category/create.html @@ -0,0 +1,21 @@ + + + + + +Create | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.6.0/category/delete.html b/docs/2.6.0/category/delete.html new file mode 100644 index 0000000..27755ab --- /dev/null +++ b/docs/2.6.0/category/delete.html @@ -0,0 +1,21 @@ + + + + + +Delete | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/2.6.0/combine/combine-components.html b/docs/2.6.0/combine/combine-components.html new file mode 100644 index 0000000..3ed33d1 --- /dev/null +++ b/docs/2.6.0/combine/combine-components.html @@ -0,0 +1,21 @@ + + + + + +Combine Components | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Combine Components

To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:

rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will move the existed components for the given inputs to src/components/<folder-path>/ folder.

  • If somehome one of the given components does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have comp-1 and comp-2 that exists under src/components/ folder, and we want to move them to src/components/foo/bar/ folder:

rnhc combine -c comp-1 comp-2 -f foo/bar
  • The command will outputs the following:
comp-1 component moved to src/components/foo/bar/
comp-2 component moved to src/components/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/combine/combine-screens.html b/docs/2.6.0/combine/combine-screens.html new file mode 100644 index 0000000..b90f6f1 --- /dev/null +++ b/docs/2.6.0/combine/combine-screens.html @@ -0,0 +1,21 @@ + + + + + +Combine Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Combine Screens

To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:

rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will move the existed screens for the given inputs to src/screens/<folder-path>/ folder.

  • If somehome one of the given screens does not exist, rnhc will prompt:

Check if all of these screens exist

Example

In this example, we have screen-1 and screen-2 that exists under src/screens/ folder, and we want to move them to src/screens/foo/bar/ folder:

rnhc combine -s screen-1 screen-2 -f foo/bar
  • The command will outputs the following:
screen-1 screen moved to src/screens/foo/bar/
screen-2 screen moved to src/screens/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/combine/intro.html b/docs/2.6.0/combine/intro.html new file mode 100644 index 0000000..25e445b --- /dev/null +++ b/docs/2.6.0/combine/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Intro

With rnhc you can combine your components or screens in a specific path.

The following points shows how to user the combine command.

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/create-components.html b/docs/2.6.0/create/create-components.html new file mode 100644 index 0000000..99577aa --- /dev/null +++ b/docs/2.6.0/create/create-components.html @@ -0,0 +1,21 @@ + + + + + +Create Components | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Create Components

Create a Component

  • To create your components simply run:
rnhc create -c <component-name>
  • This will create a component named after the given name <component-name> under the src/components/<component-name>/ folder.

Example

rnhc create -c TestComponent
  • This command will create the following directory src/components/test-component/:
src/
└── components
└── test-component
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js
  • Where index.jsx represents the React FC component that contains the following:
import { Text, View } from "react-native";
import { TestComponentStyles } from "./styles";

const TestComponent = () => {
return (
<View>
<Text>TestComponent component created!</Text>
</View>
);
};
export default TestComponent;
  • And for the styles.js you will see:
import { StyleSheet } from "react-native";

export const TestComponentStyles = StyleSheet.create({});

Create multiple Components

  • To create multiple components simply run:
rnhc create -c <component-name-1> <component-name-2> ...
  • This will create multiple components for the given names under the src/components/ folder.

Exmaple

rnhc create -c comp-1 comp-2
  • This command will create under the src/components/ folder the following:
src/
└── components
├── comp-1
│ ├── __tests__
│ │ └── index.spec.jsx
│ ├── index.jsx
│ └── styles.js
└── comp-2
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create a Components in a Specific Folder

  • To create one or mutliple components in a specified path that resides under the src/components/ folder, simply run:
rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will create your components under the src/components/<folder-path>/ folder.

Example

rnhc create -c comp-1 comp-2 -f foo/bar
  • This command will create under the src/components/ folder the following:
src/
└── components
└── foo
└── bar
├── comp-1
│ ├── __tests__
│ │ └── index.spec.jsx
│ ├── index.jsx
│ └── styles.js
└── comp-2
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/create-navigations.html b/docs/2.6.0/create/create-navigations.html new file mode 100644 index 0000000..868bfc2 --- /dev/null +++ b/docs/2.6.0/create/create-navigations.html @@ -0,0 +1,21 @@ + + + + + +Create Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Create Navigations

Navigations are the relations between chosen screens, those relations can be stack navigation, drawer navigation or tab navigation.

Create Navigation for specific screens

  • To create a navigation between two or more screens, simply run:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...
  • The <navigation-type> can be either of these types: stack, native-stack, drawer, bottom-tabs, material-bottom-tabs or material-top-tabs.

  • The number of given screens should be 2 or more.

  • If one of the screens does not exist, rnhc will try to create the navigation.jsx file that resides next to the existed screens.

  • If all screens does not exist, rhnc will prompt you the following:

None of these screens exist

Example

rnhc create -n stack screen-1 screen-2
  • This will create a navigation.jsx file next to screen-1 and screen-2 screens as the following:
src/
└── screens
├── navigation.jsx
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
  • The content for the navigation.jsx file is as the following:
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import Screen1Screen from "./screen-1";
import Screen2Screen from "./screen-2";

const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation for specific screens in a specific folder

  • To create a navigation file for screens that resides in a specific path under the src/screens/ folder, you can run this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create the navigation.jsx file under the src/screens/<folder-path>/ folder for the screens that resides in the same location.

Example

rhnc create -n drawer screen-1 screen-2 -f foo/bar
  • This will create navigation.jsx file under src/screens/foo/bar/ folder which contains the following:
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import Screen1Screen from "./screen-1";
import Screen2Screen from "./screen-2";

const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation that depends on other navigations

  • To create a navigation that depends on another navigation you can run the same command as this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>
  • This will create navigation.jsx file that resides in the same location for the given inputs.

Example

In this example, we have the following structure:

src/
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

Where we have a drawer navigation between screen-one and screen-two under the folder folder. And we want to create a stack navigation between folder and screen-three. And to show that rnhc will continue to run for the existed screens we added in the command line screen-four which does not exist as the following:

rnhc create -n stack folder screen-three screen-four
  • The command will output the following:
src/screens/screen-four/ does not exist
src/screens/navigation.jsx created
  • And it will add a new navigation.jsx that resides between folder and screen-three as the following:
src/
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
  • And the content of the new navigation.jsx file will be like this:
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();

import FolderNavigation from "./folder/navigation";
import ScreenThreeScreen from "./screen-three";

const routes = [
{
name: "folder",
component: FolderNavigation,
},
{
name: "screen-three",
component: ScreenThreeScreen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation for all screens

  • To create a navigation file for multiple screens that resides at the root of the src/screens/ folder, you can run this:
rnhc create -n <navigation-type>
  • This will create the navigation file for all existed screens in the src/screens/ folder.

You can also run this command to create a navigation file for multiple screens that resides in a specific path under the src/screens/ folder:

rnhc create -n <navigation-type> -f <folder-path>
  • This will create the navigation file for all existed screens in the src/screens/<folder-path>/ folder.

  • This also work for the nested navigations.

  • All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:

src/
└── screens
├── folder
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
├── screen-four
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

When you try to create a navigation like this:

rnhc create -n stack

It will output the following:

./src/screens/folder/navigation.jsx does not exist
./src/screens/navigation.jsx created

And the ./src/screens/navigation.jsx file will only contain screen-three and screen-four because the src/screens/folder does not contain a navigation file.

So if you want to create a navigation file for all existed screens in the src/screens/ folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one.

By updating it means overwriting in other words, so you can just do this:

rnhc create -n stack -o
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/create-redux.html b/docs/2.6.0/create/create-redux.html new file mode 100644 index 0000000..0377b2c --- /dev/null +++ b/docs/2.6.0/create/create-redux.html @@ -0,0 +1,21 @@ + + + + + +Create Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Create Redux

To create a redux implementation run:

rnhc create -r
  • This will create a redux folder under the src/ folder containing the following:
src
└───redux
│ index.js

├───actions
│ └───general
│ index.js

└───reducers
│ index.js

└───general
index.js
  • Where index.js under the redux folder contains the redux store definition:
import { applyMiddleware, compose, createStore } from "redux";
import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};
  • And actions folder contains the action for each reducer, as for a example, at first rnhc will create a sample reducer and action which is called general.

  • The general action's index.js contains:

// write your general actions here

// this is an example for an action
export const init = () => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });
};
  • And the general reducer's index.js contains:
const initialState = { message: "" };

export const general = (state = initialState, action) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};
  • And the index.js file under the reducers folder contains the following:
import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});
  • In TypeScript, the files will be written as the following:

redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}

export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;

redux/actions/general/index.ts

import { GeneralState } from "../../reducers/general";
import { ThunkResult } from "../..";

// write your general actions here

// this is an example for an action
export const init =
(): ThunkResult<GeneralState> => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } });
};

redux/reducers/general/index.ts

import { Action } from "../..";

export interface GeneralState {
message: string;
}

export const general = (
state: GeneralState = {
message: "",
},
action: Action<GeneralState>
) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};

redux/reducers/index.ts

import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});

Reducers

Create a reducer

  • To create a reducer, you must have a redux implementation then run:
rnhc create --reducer <reducer-name>

Example

rnhc create --reducer auth
  • This will create a auth reducer under the src/redux/reducers/ folder and the index.js for this reducer will contain the same code written in the template.

src/redux/reducers/auth/index.js

const initialState = {};

export const auth = (state = initialState, action) => {
switch (action.type) {
default:
return state;
}
};
  • It will also add the reducer to the index.js file under the reducers folder to use it in the combineReducers function.

src/redux/reducers/index.js

import { combineReducers } from "redux";
import { auth } from "./auth";
import { general } from "./general";

export const mainReducer = combineReducers({
auth,
general,
});
  • If you don't have a redux implementation create using rnhc create -r, this command will prompt:
Redux implementation does not exist
  • You can also overwrite the reducer by running:
rnhc create --reducer <reducer-name> -o

Create multiple reducers

  • To create multiple reducers, you must have a redux implementation then run:
rnhc create --reducer <reducer-name-1> <reducer-name-2> ...
  • This will also update your index.js file under the reducers folder to use the reducers you created.

Actions

Create an action

  • To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:
rnhc create --action <reducer-name> <action-name>

Example

  • In this example we are going to create an action for the auth reducer, so we will run:
rnhc create --action auth login
  • This will create a login action under the src/redux/actions/auth/ folder and the login.js for this action will contain the same code written in the template.

src/redux/actions/auth/login.js

export const loginAction = () => async (dispatch, getState) => {
dispatch({ type: "AUTH_LOGIN", payload: {} });
};
  • And it will update the index.js file under src/redux/actions/auth/ to export the action.

src/redux/actions/auth/index.js

export { loginAction } from "./login";

Create multiple actions

  • To create multiple actions, you must have a redux implementation and existed reducer, then run:
rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...
  • If the reducer doesn't exist, you will get an error like this:
./src/redux/reducers/x does not exist
  • Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ActionType in the src/redux/index.ts file. For example if you create an action for the auth reducer, you will get the following:

src/redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";

import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}
export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;
  • It will also update the necessary files that imports and exports modules in order to use the action in the reducer.

  • Also another note, if you prefer not using redux-thunk you can set that in rnhc.config.json file, this will let you create your store and actions without applying the redux-thunk middleware (For more details check configuration section).

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/create-screens.html b/docs/2.6.0/create/create-screens.html new file mode 100644 index 0000000..1e67324 --- /dev/null +++ b/docs/2.6.0/create/create-screens.html @@ -0,0 +1,21 @@ + + + + + +Create Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Create Screens

Create a Screen

  • To create your screen simply run:
rnhc create -s <screen-name>
  • This will create a screen after the given name screen-name under the src/screens/ folder.

Example

rnhc create -s testScreen
  • This will create the following:
src/
└── screens
└── test-screen
├── __tests__
│ └── index.spec.jsx
├── functions
│ └── index.js
├── index.jsx
└── styles.js
  • Where index.jsx represent the screen which is nothing but a React FC component that contains the following:
import { Text, View } from "react-native";
import {} from "./functions";
import { TestScreenStyles } from "./styles";

const TestScreenScreen = () => {
return (
<View>
<Text>TestScreen screen created!</Text>
</View>
);
};
export default TestScreenScreen;
  • As for styles.js you will find:
import { StyleSheet } from "react-native";

export const TestScreenStyles = StyleSheet.create({});
  • And under the functions folder you should write your screen's functions and export them in function/index.js file, which by default it will contain the following:
// write your TestScreen screen functions here

Create multiple Screens

  • To create multiple screens simply run:
rnhc create -s <screen-name-1> <screen-name-2> ...
  • This will create multiple screens under the src/screens/ folder.

Example

rnhc create -s screen-1 screen-2
  • This will create the following:
src/
└── screens
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

Create Screens in a Specific Folder

  • To create one or multiple screens in a specific path that resides under src/screens/ folder, simply run:
rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create your screens under the src/screens/<folder-path> folder.

Example

rnhc create -s screen-1 screen-2 -f foo/bar
  • This will create the following:
src/
└── screens
└── foo
└── bar
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/intro.html b/docs/2.6.0/create/intro.html new file mode 100644 index 0000000..b213757 --- /dev/null +++ b/docs/2.6.0/create/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Intro

rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.

  • By default rnhc create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.

  • If you want to force the use of a specific language you can add the --js or --ts options at the end of your create commands.

  • rnhc will not overwrite the existed implementation for all of the create commands.

  • If you want to overwrite the existed implementation for a specific create command you can add the --overwrite or -o option at the end of the command.

The following points shows how to use the create command.

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/using-configuration.html b/docs/2.6.0/create/using-configuration.html new file mode 100644 index 0000000..aefee6d --- /dev/null +++ b/docs/2.6.0/create/using-configuration.html @@ -0,0 +1,21 @@ + + + + + +Using Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Using Configuration

With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.

  • To create a default configuration file run:
rnhc create --config
  • This will create a rnhc.config.json file at the root of your project. The file will contain the following:
{
"withStyles": true,
"withFunctions": true,
"withProps": true,
"withTests": true,
"defaultExports": true,
"componentsRoot": "./src/components",
"screensRoot": "./src/screens",
"reduxRoot": "./src/redux",
"applyReduxThunk": true
}
  1. withStyles: if true, create styles.js (or styles.ts) file for components and screens, if false, don't create styles.js (or styles.ts) file, default is true.
  2. withFunctions: if true, create functions folder for screens, if false, don't create functions folder, default is true.
  3. withProps: if true, create props interface for components and screens (in TS only), if false, don't create props interface, default is true.
  4. withTests: if true, create __tests__ folder for components and screens, if false, don't create __tests__ folder, default is true.
  5. defaultExports: if true, create default export for components and pages, if false, create named export for components and pages, default is true.
  6. componentsRoot: the root folder for components, default is ./src/components.
  7. screensRoot: the root folder for screens, default is ./src/screens.
  8. reduxRoot: the root folder for redux, default is ./src/redux.
  9. applyReduxThunk: if true, apply redux-thunk middleware to the store, if false, don't apply redux-thunk middleware, default is true.
  • If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/create/using-templates.html b/docs/2.6.0/create/using-templates.html new file mode 100644 index 0000000..f8c1244 --- /dev/null +++ b/docs/2.6.0/create/using-templates.html @@ -0,0 +1,21 @@ + + + + + +Using Templates | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Using Templates

You can create your screens and components with your defined templates by following these steps:

  1. First thing to do is to create a .template folder at the root of your react project.

  2. Inside the .template folder you can add your template, for example componentWithUseEffect.tsx (the file extension doesn't matter so it could be *.jsx, *.js or *.tsx):

import React, { useEffect } from "react";
import { View, Text } from "react-native";

export default function __COMPONENT__() {
useEffect(() => {}, []);

return (
<View>
<Text>Hello, World!</Text>
</View>
);
}
  • There is a restriction in naming these templates which is you should not put dots (.) between the name, like this (component.WithUseEffect.jsx). It should only contain one dot that makes the extension file like we're doing above.

  • You should type __COMPONENT__ in the template file and it will be replaced with the component name you want to create.

  1. After creating your template you can use them to create components or screens as the following:
rnhc create -c <component-name> -t <template-name>
rnhc create -s <screen-name> -t <template-name>
  • And of course, you can create multiple components or screens with the same template.

Example

As for our example it can be used like this for the above template:

rnhc create -c comp -t componentWithUseEffect
  • This will create comp component under src/components/ folder and the index.jsx for this component will contain the same code written in the template.

  • For the screen case, the index.jsx for that screen will contain the code written in the template.

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/delete/delete-components.html b/docs/2.6.0/delete/delete-components.html new file mode 100644 index 0000000..5a15816 --- /dev/null +++ b/docs/2.6.0/delete/delete-components.html @@ -0,0 +1,21 @@ + + + + + +Delete Components | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Delete Components

Delete a Component

  • To delete a component simply run:
rnhc delete -c <component-name>
  • This will delete the component with the given name <component-name> under the src/components/ folder.

  • If the component does not exist, rnhc will prompt the following:

src/components/<component-name>/ does not exist

Delete multiple Components

  • To delete multiple components run:
rnhc delete -c <component-name-1> <component-name-2> ...
  • This will delete only the existed components with the given inputs that resides under the src/components/ folder.

Delete a Components in a Specific Folder

  • To delete one or multiple components that resides in a specific path under the src/components/ folder, you can run:
rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will delete only the existed components with the given inputs that resides under the src/components/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/delete/delete-configuration.html b/docs/2.6.0/delete/delete-configuration.html new file mode 100644 index 0000000..dbb22b4 --- /dev/null +++ b/docs/2.6.0/delete/delete-configuration.html @@ -0,0 +1,21 @@ + + + + + +Delete Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Delete Configuration

To delete a configuration file run:

rnhc delete --config
  • This will delete the rnhc.config.json file at the root of the project.

  • If rnhc.config.json does not exist, rnhc will prompt:

rnhc.config.json does not exist
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/delete/delete-navigations.html b/docs/2.6.0/delete/delete-navigations.html new file mode 100644 index 0000000..60fb631 --- /dev/null +++ b/docs/2.6.0/delete/delete-navigations.html @@ -0,0 +1,21 @@ + + + + + +Delete Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Delete Navigations

Delete the root Navigation

  • To delete a navigation file that resides in src/screens/ folder simply run:
rnhc delete -n
  • This will delete the navigation file if it exists, if not rnhc will prompt the following:
It seems there is no navigation file in src/screens/

Delete a Navigation in a Specific Folder

  • To delete a navigation file that resides in a specific path that resides under src/screens/ folder you can run:
rnhc delete -n -f <folder-path>
  • This will delete the navigation file if it does exist under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/delete/delete-redux.html b/docs/2.6.0/delete/delete-redux.html new file mode 100644 index 0000000..05feef7 --- /dev/null +++ b/docs/2.6.0/delete/delete-redux.html @@ -0,0 +1,21 @@ + + + + + +Delete Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Delete Redux

To delete a redux implementation run:

rnhc delete -r
  • This will delete the redux folder under src/ with all of its files and subfolders.

  • If redux does not exist, rnhc will prompt:

src/redux/ does not exist

Reducers

Delete a reducer

  • To delete a reducer run:
rnhc delete --reducer <reducer-name>
  • This will delete the existed reducer under src/redux/reducer/ folder, if not rnhc will prompt the following:
./src/redux/reducers/<reducer-name>/ does not exist
  • It will also update the index.js file under src/redux/reducer/ folder to remove it from the import list as well as from the combineReducers function.

Delete multiple reducers

  • You can even delete multiple reducers at once:
rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...

Delete all reducers

  • To delete all reducers run:
rnhc delete --reducer

Actions

Delete an action

  • To delete an action run:
rnhc delete --action <reducer-name> <action-name>
  • If the reducer does not exist, rnhc will prompt the following:
./src/redux/actions/<reducer-name>/ does not exist
  • It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the src/redux/index.ts.

Delete multiple actions

  • You can even delete multiple actions for a specific reducer at once:
rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...

Delete all actions for a specific reducer

  • To delete all actions for a specific reducer run:
rnhc delete --action <reducer-name>
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/delete/delete-screens.html b/docs/2.6.0/delete/delete-screens.html new file mode 100644 index 0000000..345568b --- /dev/null +++ b/docs/2.6.0/delete/delete-screens.html @@ -0,0 +1,21 @@ + + + + + +Delete Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Delete Screens

Delete a Screen

  • To delete a screen simply run:
rnhc delete -s <screen-name>
  • This will delete the screen with the given name <screen-name> under the src/screens/ folder.

  • If the screen does not exist, rnhc will prompt the following:

src/screens/<screen-name>/ does not exist

Delete multiple Screens

  • To delete multiple screens run:
rnhc delete -s <screen-name-1> <screen-name-2> ...
  • This will delete only the existed screens with the given inputs that resides under the src/screens/ folder.

Delete a Screens in a Specific Folder

  • To delete one or multiple screens that resides in a specific path under the src/screens/ folder, you can run:
rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will delete only the existed screens with the given inputs that resides under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/delete/intro.html b/docs/2.6.0/delete/intro.html new file mode 100644 index 0000000..b22eef4 --- /dev/null +++ b/docs/2.6.0/delete/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Intro

With rnhc you can delete what you already created with create commands.

The following points shows how to deal with deleting your files with the delete command.

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/getting-started.html b/docs/2.6.0/getting-started.html new file mode 100644 index 0000000..1a85e02 --- /dev/null +++ b/docs/2.6.0/getting-started.html @@ -0,0 +1,21 @@ + + + + + +Getting Started | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Getting Started

  • To install it globally in your system run:
npm i react-native-help-create -g

Or

yarn global add react-native-help-create
  • To install it as a dev dependency in your react native project run:
npm i react-native-help-create --save-dev

Or

yarn add react-native-help-create --dev
  • If you want to use it without installing it (using npm cache) run:
npx react-native-help-create --help
+ + + + \ No newline at end of file diff --git a/docs/2.6.0/intro.html b/docs/2.6.0/intro.html new file mode 100644 index 0000000..d292653 --- /dev/null +++ b/docs/2.6.0/intro.html @@ -0,0 +1,21 @@ + + + + + +Summary | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Summary

This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.

The following project structure is used by this command:

src/
├── components
│   ├── comp-one
│   │   ├── __tests__
│   │   │   └── index.spec.tsx
│   │   ├── index.tsx
│   │   └── styles.ts
│   ├── comp-two
│   │   ├── __tests__
│   │   │   └── index.spec.tsx
│   │   ├── index.tsx
│   │   └── styles.ts
│   └── folder
│   └── comp-three
│   ├── __tests__
│   │   └── index.spec.tsx
│   ├── index.tsx
│   └── styles.ts
├── redux
│   ├── actions
│   │   └── general
│   │   └── index.ts
│   ├── index.ts
│   └── reducers
│   ├── general
│   │   └── index.ts
│   └── index.ts
└── screens
├── folder
│   ├── navigation.tsx
│   ├── screen-four
│   │   ├── __tests__
│   │   │   └── index.spec.tsx
│   │   ├── index.tsx
│   │   └── styles.ts
│   └── screen-three
│   ├── __tests__
│   │   └── index.spec.tsx
│   ├── index.tsx
│   └── styles.ts
├── navigation.tsx
├── screen-one
│   ├── __tests__
│   │   └── index.spec.tsx
│   ├── index.tsx
│   └── styles.ts
└── screen-two
├── __tests__
│   └── index.spec.tsx
├── index.tsx
└── styles.ts
  • As you can see above, the src folder is the folder that resides at the root of your React Native project and under this folder, you will find the components folder which contains all the shared components that are used through out the screen. The screens folder contains the app's screens that can uses some of the shared components above it.

  • In each component you will find index.tsx that contains the components JSX.Element syntaxes, and styles.ts that contains the styles for that component.

  • In each screen you will find index.tsx that contains the JSX.Element syntaxes, and styles.ts that contains the screen's styles and functions folder which will contain the screen's specific functions.

  • Each screen can use one of the shared components that are defined in components folder, and you can pass the functions to those components hence there is not functions folder under a component subfolder.

  • For the screens part you can find navigation.tsx files that shows the relation between the screens that resides in the same folder. For example, the navigation.tsx under the screens folder represent a stack navigation between folder and screen-one and screen-two. As for the navigation.tsx file under the folder folder is represent a drawer navigation between screen-three and screen-four.

  • In both the components and screens folders, you can find __tests__ folder that contains the tests for the component or screen.

  • As for the redux folder you can see there is index.ts which contain the redux store, and actions and reducers folders are next to it so you can find only things that are related to redux in one single place.

  • This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.

  • You can override the usage of the default behavior of this command line by modifying the rnhc.config.json file (more details can be found here).

+ + + + \ No newline at end of file diff --git a/docs/2.6.0/notes.html b/docs/2.6.0/notes.html new file mode 100644 index 0000000..7db2d8e --- /dev/null +++ b/docs/2.6.0/notes.html @@ -0,0 +1,21 @@ + + + + + +Notes | react-native-help-create + + + + + + + + + +
+
Version: 2.6.0

Notes

  • To see the available commands for rnhc you can run:
rnhc --help
  • To see the available positionals and options for a specific command like create you can run:
rnhc create --help
  • In order to rnhc to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, rnhc will prompt:
You don't seem to be at the root of a react native project
  • In create command, rnhc will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.

  • If you are in a JavaScript project and somehow you want to create your component or screen in TypeScript, you can use the --typescript or --ts option:

rnhc create -s test-screen --ts
  • It doesn't matter what case you name your component or screen, rnhc will always create a component or screen with the same name, but with the first letter in uppercase, and the folder will be in kebab case. So if you name your component with test-comp, it will create a component or screen with the name TestComp in the index.jsx file under the ./src/components/test-comp/ folder. Check the example below:
rnhc create -c test-comp
rnhc create -c testComp
rnhc create -c TestComp

The above commands produce the same outcome:

src/
└── components
└── test-comp
├── __tests__
│   └── index.spec.jsx
├── index.jsx
└── styles.js

  • You can always overwrite your implementation using the --overwrite or -o option, for example:
rnhc create -c test-component -o
rnhc create -s TestScreen -o
rnhc create -r -o
rnhc create --reducer testReducer -o
rnhc create --action testReducer test-action -o
  • This is helpful when you want to update your navigation files, for example you already have a navigation file in src/screens/ folder and you want to update it with the new screens you created:
rnhc create -n stack --overwrite
  • When creating reducers you should have already a redux implmentation created with rnhc create -r so it can work.

  • When creating actions, you should have already a redux implementation created with rnhc create -r as well as an existed reducer with rnhc create --reducer <reducer-name> so it can create actions for that specific reducer.

  • Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the src/redux/ folder (Or your specified path for the root of redux folder in rnhc.config.json).

  • You can use the --silent option to avoid the prompts for all commands:

rnhc create -c foo --silent
  • rnhc will recommend you similar commands if you type a command that doesn't exist. For example, if you type rnhc crete -c, it will prompt you with the following:
rnhc <command> [option]

Commands:
rnhc create [name] Create components, screens, navigations and redux
implementation
rnhc delete [name] Delete components, screens, navigations and redux
implementation
rnhc combine [name] Combine components or screens in a folder

Options:
--version Show version number [boolean]
--silent Do not show log messages [boolean]
--help Show help [boolean]

Did you mean create?
+ + + + \ No newline at end of file diff --git a/docs/category/combine.html b/docs/category/combine.html new file mode 100644 index 0000000..8f2bdcf --- /dev/null +++ b/docs/category/combine.html @@ -0,0 +1,21 @@ + + + + + +Combine | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/category/create.html b/docs/category/create.html new file mode 100644 index 0000000..2e4c573 --- /dev/null +++ b/docs/category/create.html @@ -0,0 +1,21 @@ + + + + + +Create | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/category/delete.html b/docs/category/delete.html new file mode 100644 index 0000000..63b5304 --- /dev/null +++ b/docs/category/delete.html @@ -0,0 +1,21 @@ + + + + + +Delete | react-native-help-create + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/combine/combine-components.html b/docs/combine/combine-components.html new file mode 100644 index 0000000..91fc4ac --- /dev/null +++ b/docs/combine/combine-components.html @@ -0,0 +1,21 @@ + + + + + +Combine Components | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Combine Components

To combine components that resides in src/components/ folder to a specific path that resides under that same folder you can run:

rnhc combine -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will move the existed components for the given inputs to src/components/<folder-path>/ folder.

  • If somehome one of the given components does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have comp-1 and comp-2 that exists under src/components/ folder, and we want to move them to src/components/foo/bar/ folder:

rnhc combine -c comp-1 comp-2 -f foo/bar
  • The command will outputs the following:
comp-1 component moved to src/components/foo/bar/
comp-2 component moved to src/components/foo/bar/

Atoms

  • To combine atoms that resides in src/components/atoms/ folder to a specific path that resides under that same folder you can run:
rnhc combine -c <atom-name-1> <atom-name-2> ... -f <folder-path> --atom
  • This will move the existed atoms for the given inputs to src/components/atoms/<folder-path>/ folder.

  • If somehow one of the given atoms does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have atom-1 and atom-2 that exists under src/components/atoms/ folder, and we want to move them to src/components/atoms/foo/bar/ folder:

rnhc combine -c atom-1 atom-2 -f foo/bar --atom
  • The command will outputs the following:
atom-1 moved to src/components/atoms/foo/bar/
atom-2 moved to src/components/atoms/foo/bar/

Molecules

  • To combine molecules that resides in src/components/molecules/ folder to a specific path that resides under that same folder you can run:
rnhc combine -c <molecule-name-1> <molecule-name-2> ... -f <folder-path> --molecule
  • This will move the existed molecules for the given inputs to src/components/molecules/<folder-path>/ folder.

  • If somehow one of the given molecules does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have molecule-1 and molecule-2 that exists under src/components/molecules/ folder, and we want to move them to src/components/molecules/foo/bar/ folder:

rnhc combine -c molecule-1 molecule-2 -f foo/bar --molecule
  • The command will outputs the following:
molecule-1 moved to src/components/molecules/foo/bar/
molecule-2 moved to src/components/molecules/foo/bar/

Organisms

  • To combine organisms that resides in src/components/organisms/ folder to a specific path that resides under that same folder you can run:
rnhc combine -c <organism-name-1> <organism-name-2> ... -f <folder-path> --organism
  • This will move the existed organisms for the given inputs to src/components/organisms/<folder-path>/ folder.

  • If somehow one of the given organisms does not exist, rnhc will prompt:

Check if all of these components exist

Example

In this example, we have organism-1 and organism-2 that exists under src/components/organisms/ folder, and we want to move them to src/components/organisms/foo/bar/ folder:

rnhc combine -c organism-1 organism-2 -f foo/bar --organism
  • The command will outputs the following:
organism-1 moved to src/components/organisms/foo/bar/
organism-2 moved to src/components/organisms/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/combine/combine-screens.html b/docs/combine/combine-screens.html new file mode 100644 index 0000000..7fefc68 --- /dev/null +++ b/docs/combine/combine-screens.html @@ -0,0 +1,21 @@ + + + + + +Combine Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Combine Screens

To combine screens that resides in src/screens/ folder to a specific path that resides under that same folder you can run:

rnhc combine -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will move the existed screens for the given inputs to src/screens/<folder-path>/ folder.

  • If somehome one of the given screens does not exist, rnhc will prompt:

Check if all of these screens exist

Example

In this example, we have screen-1 and screen-2 that exists under src/screens/ folder, and we want to move them to src/screens/foo/bar/ folder:

rnhc combine -s screen-1 screen-2 -f foo/bar
  • The command will outputs the following:
screen-1 screen moved to src/screens/foo/bar/
screen-2 screen moved to src/screens/foo/bar/
+ + + + \ No newline at end of file diff --git a/docs/combine/intro.html b/docs/combine/intro.html new file mode 100644 index 0000000..1b5379d --- /dev/null +++ b/docs/combine/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Intro

With rnhc you can combine your components or screens in a specific path.

The following points shows how to user the combine command.

+ + + + \ No newline at end of file diff --git a/docs/create/create-components.html b/docs/create/create-components.html new file mode 100644 index 0000000..f263cbd --- /dev/null +++ b/docs/create/create-components.html @@ -0,0 +1,21 @@ + + + + + +Create Components | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Create Components

Create a Component

  • To create your components simply run:
rnhc create -c <component-name>
  • This will create a component named after the given name <component-name> under the src/components/<component-name>/ folder.

Example

rnhc create -c TestComponent
  • This command will create the following directory src/components/test-component/:
src/
└── components
└── test-component
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js
  • Where index.* represents the React FC component that contains the following:
import { Text, View } from "react-native";
import { TestComponentStyles } from "./styles";

const TestComponent = () => {
return (
<View>
<Text>TestComponent component created!</Text>
</View>
);
};
export default TestComponent;
  • And for the styles.* you will see:
import { StyleSheet } from "react-native";

export const TestComponentStyles = StyleSheet.create({});
  • And for the index.spec.* you will see:
import "react-native";

import TestComponent from "../";
import React from "react";
import renderer from "react-test-renderer";

it("renders correctly", () => {
renderer.create(<TestComponent />);
});

Create multiple Components

  • To create multiple components simply run:
rnhc create -c <component-name-1> <component-name-2> ...
  • This will create multiple components for the given names under the src/components/ folder.

Exmaple

rnhc create -c comp-1 comp-2
  • This command will create under the src/components/ folder the following:
src/
└── components
├── comp-1
│ ├── __tests__
│ │ └── index.spec.jsx
│ ├── index.jsx
│ └── styles.js
└── comp-2
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create a Components in a Specific Folder

  • To create one or mutliple components in a specified path that resides under the src/components/ folder, simply run:
rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will create your components under the src/components/<folder-path>/ folder.

Example

rnhc create -c comp-1 comp-2 -f foo/bar
  • This command will create under the src/components/ folder the following:
src/
└── components
└── foo
└── bar
├── comp-1
│ ├── __tests__
│ │ └── index.spec.jsx
│ ├── index.jsx
│ └── styles.js
└── comp-2
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create a Component in the Atom Design Pattern

You can also create your components in atom design pattern, which is a design pattern that is used to create small and reusable components. You can read more about it here.

Create an Atom Component

  • To create your atoms simply run:
rnhc create -c <atom-name> --atom
  • This will create an atom named after the given name <atom-name> under the src/components/atoms/<atom-name>/ folder.

Example

rnhc create -c TestAtom --atom
  • This command will create the following directory src/components/atoms/test-atom/:
src/
└── components
└── atoms
└── test-atom
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create a Molecule Component

  • To create your molecules simply run:
rnhc create -c <molecule-name> --molecule
  • This will create a molecule named after the given name <molecule-name> under the src/components/molecules/<molecule-name>/ folder.

Example

rnhc create -c TestMolecule --molecule
  • This command will create the following directory src/components/molecules/test-molecule/:
src/
└── components
└── molecules
└── test-molecule
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create an Organism Component

  • To create your organisms simply run:
rnhc create -c <organism-name> --organism
  • This will create an organism named after the given name <organism-name> under the src/components/organisms/<organism-name>/ folder.

Example

rnhc create -c TestOrganism --organism
  • This command will create the following directory src/components/organisms/test-organism/:
src/
└── components
└── organisms
└── test-organism
├── __tests__
│ └── index.spec.jsx
├── index.jsx
└── styles.js

Create a Component in the Atomic Design Pattern in a Specific Folder

  • You can also create your components in a specified path that resides under the src/components/ folder, simply run:
rnhc create -c <component-name-1> <component-name-2> ... -f <folder-path> --atom
  • This will create your components under the src/components/<folder-path>/atoms/ folder.

  • The same goes for molecules and organisms.

+ + + + \ No newline at end of file diff --git a/docs/create/create-navigations.html b/docs/create/create-navigations.html new file mode 100644 index 0000000..d742e5d --- /dev/null +++ b/docs/create/create-navigations.html @@ -0,0 +1,21 @@ + + + + + +Create Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Create Navigations

Navigations are the relations between chosen screens.

Create Navigation for specific screens

  • To create a navigation between two or more screens, simply run:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ...
  • The <navigation-type> can be either of these types: stack, native-stack, drawer, bottom-tabs, material-bottom-tabs or material-top-tabs.

  • The number of given screens should be 2 or more.

  • If one of the screens does not exist, rnhc will try to create the navigation.* file that resides next to the existed screens.

  • If all screens does not exist, rhnc will prompt you the following:

None of these screens exist

Example

rnhc create -n stack screen-1 screen-2
  • This will create a navigation.* file next to screen-1 and screen-2 screens as the following:
src/
└── screens
├── navigation.jsx
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
  • The content for the navigation.* file is as the following:
import Screen1Screen from "./screen-1";
import Screen2Screen from "./screen-2";
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();


const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation for specific screens in a specific folder

  • To create a navigation file for screens that resides in a specific path under the src/screens/ folder, you can run this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create the navigation.* file under the src/screens/<folder-path>/ folder for the screens that resides in the same location.

Example

rhnc create -n drawer screen-1 screen-2 -f foo/bar
  • This will create navigation.* file under src/screens/foo/bar/ folder which contains the following:
import Screen1Screen from "./screen-1";
import Screen2Screen from "./screen-2";
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();


const routes = [
{
name: "screen-1",
component: Screen1Screen,
},
{
name: "screen-2",
component: Screen2Screen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation that depends on other navigations

  • To create a navigation that depends on another navigation you can run the same command as this:
rnhc create -n <navigation-type> <screen-name-1> <screen-name-2> ... <another-navigation-folder>
  • This will create navigation.* file that resides in the same location for the given inputs.

Example

In this example, we have the following structure:

src/
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

Where we have a drawer navigation between screen-one and screen-two under the folder folder. And we want to create a stack navigation between folder and screen-three. And to show that rnhc will continue to run for the existed screens we added in the command line screen-four which does not exist as the following:

rnhc create -n stack folder screen-three screen-four
  • The command will output the following:
src/screens/screen-four/ does not exist
src/screens/navigation.jsx created
  • And it will add a new navigation.* that resides between folder and screen-three as the following:
src/
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
  • And the content of the new navigation.* file will be like this:
import FolderNavigation from "./folder/navigation";
import ScreenThreeScreen from "./screen-three";
import { createStackNavigator } from "@react-navigation/stack";
const { Navigator, Screen } = createStackNavigator();


const routes = [
{
name: "folder",
component: FolderNavigation,
},
{
name: "screen-three",
component: ScreenThreeScreen,
},
];

const Navigation = () => {
return (
<Navigator>
{routes.map(({ name, component }) => (
<Screen key={name} name={name} component={component} />
))}
</Navigator>
);
};
export default Navigation;

Create Navigation for all screens

  • To create a navigation file for multiple screens that resides at the root of the src/screens/ folder, you can run this:
rnhc create -n <navigation-type>
  • This will create the navigation file for all existed screens in the src/screens/ folder.

You can also run this command to create a navigation file for multiple screens that resides in a specific path under the src/screens/ folder:

rnhc create -n <navigation-type> -f <folder-path>
  • This will create the navigation file for all existed screens in the src/screens/<folder-path>/ folder.

  • This also work for the nested navigations.

  • All the sub folders should contain the navigation files so it can be added to the navigation file you want to create, for example take this structure:

src/
└── screens
├── folder
│   ├── screen-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── functions
│   │   │   └── index.js
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-two
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
├── screen-four
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-three
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

When you try to create a navigation like this:

rnhc create -n stack

It will output the following:

./src/screens/folder/navigation.jsx does not exist
./src/screens/navigation.jsx created

And the ./src/screens/navigation.* file will only contain screen-three and screen-four because the src/screens/folder does not contain a navigation file.

So if you want to create a navigation file for all existed screens in the src/screens/ folder, you must take in consideration that all subfolders must contain a navigation file first and then you can either update the navigation file or create a new one.

By updating it means overwriting in other words, so you can just do this:

rnhc create -n stack -o
+ + + + \ No newline at end of file diff --git a/docs/create/create-redux.html b/docs/create/create-redux.html new file mode 100644 index 0000000..49a97fc --- /dev/null +++ b/docs/create/create-redux.html @@ -0,0 +1,21 @@ + + + + + +Create Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Create Redux

To create a redux implementation run:

rnhc create -r
  • This will create a redux folder under the src/ folder containing the following:
src/
└── redux
├── actions
│ └── general
│ └── index.js
├── index.js
└── reducers
├── general
│ └── index.js
└── index.js
  • Where index.* under the redux folder contains the redux store definition:
import { applyMiddleware, compose, createStore } from "redux";

import { mainReducer } from "./reducers";
import thunk from "redux-thunk";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};
  • And actions folder contains the action for each reducer, as for a example, at first rnhc will create a sample reducer and action which is called general.

  • The general action's index.* contains:

// write your general actions here

// this is an example for an action
export const initAction = () => async (dispatch, getState) => {
dispatch({ type: "UPDATE_GENERAL", payload: { message: "init created!" } })
};
  • And the general reducer's index.* contains:
const initialState = { message: "" };

export const general = (
state = initialState,
action,
) => {
switch (action.type) {
case "UPDATE_GENERAL":
return { ...state, ...action.payload };
default:
return state;
}
};
  • And the index.* file under the reducers folder contains the following:
import { combineReducers } from "redux";
import { general } from "./general";

export const mainReducer = combineReducers({
general,
});

Reducers

Create a reducer

  • To create a reducer, you must have a redux implementation then run:
rnhc create --reducer <reducer-name>

Example

rnhc create --reducer auth
  • This will create a auth reducer under the src/redux/reducers/ folder and the index.* for this reducer will contain the same code written in the template.

src/redux/reducers/auth/index.*

const initialState = { };

export const auth = (
state = initialState,
action,
) => {
switch (action.type) {
default:
return state;
}
};
  • It will also add the reducer to the index.* file under the reducers folder to use it in the combineReducers function.

src/redux/reducers/index.*

import { combineReducers } from "redux";
import { auth } from "./auth";
import { general } from "./general";

export const mainReducer = combineReducers({
auth,
general,
});
  • If you don't have a redux implementation create using rnhc create -r, this command will prompt:
Redux implementation does not exist
  • You can also overwrite the reducer by running:
rnhc create --reducer <reducer-name> -o

Create multiple reducers

  • To create multiple reducers, you must have a redux implementation then run:
rnhc create --reducer <reducer-name-1> <reducer-name-2> ...
  • This will also update your index.* file under the reducers folder to use the reducers you created.

Actions

Create an action

  • To create an action, you must have a redux implementation as wee as the reducer you want to add an action for it, then run:
rnhc create --action <reducer-name> <action-name>

Example

  • In this example we are going to create an action for the auth reducer, so we will run:
rnhc create --action auth login
  • This will create a login action under the src/redux/actions/auth/ folder and the login.* for this action will contain the same code written in the template.

src/redux/actions/auth/login.*

export const loginAction = () => async (dispatch, getState) => {
dispatch({ type: "AUTH_LOGIN", payload: { } })
}
  • And it will update the index.* file under src/redux/actions/auth/ to export the action.

src/redux/actions/auth/index.*

export { loginAction } from "./login";

Create multiple actions

  • To create multiple actions, you must have a redux implementation and existed reducer, then run:
rnhc create --action <reducer-name> <action-name-1> <action-name-2> ...
  • If the reducer doesn't exist, you will get an error like this:
./src/redux/reducers/x does not exist
  • Keep in mind that this also works for TypeScript projects. Even better when creating an action for a reducer in TypeScript, you will get TypeScript support as well as updating the ActionType in the src/redux/index.ts file. For example if you create an action for the auth reducer, you will get the following:

src/redux/index.ts

import { applyMiddleware, compose, createStore } from "redux";
import thunk, { ThunkAction, ThunkDispatch } from "redux-thunk";

import { mainReducer } from "./reducers";

/**
* the main redux state, with all the reducers
*/
export const mainStore = createStore(
mainReducer,
compose(applyMiddleware(thunk))
);

/**
* Creates a new redux state each time this function is called, this is used only for unit tests, to ensure that we have fresh state on each individual test
*/
export const createMainStore = () => {
return createStore(mainReducer, compose(applyMiddleware(thunk)));
};

export type StateInterface = ReturnType<typeof mainStore.getState>;

/**
* list of action types
*/
export type ActionType = "AUTH_LOGIN" | "UPDATE_GENERAL";

export interface Action<T> {
type: ActionType;
payload: Partial<T>;
}
export type ThunkResult<
A = Record<string, unknown>,
E = Record<string, unknown>
> = ThunkAction<void, StateInterface, E, Action<A>>;

export type Dispatch<A> = ThunkDispatch<
StateInterface,
Record<string, unknown>,
Action<A>
>;
  • It will also update the necessary files that imports and exports modules in order to use the action in the reducer.

  • Also another note, if you prefer not using redux-thunk you can set that in rnhc.config.json file, this will let you create your store and actions without applying the redux-thunk middleware (For more details check configuration section).

+ + + + \ No newline at end of file diff --git a/docs/create/create-screens.html b/docs/create/create-screens.html new file mode 100644 index 0000000..05e2282 --- /dev/null +++ b/docs/create/create-screens.html @@ -0,0 +1,21 @@ + + + + + +Create Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Create Screens

Create a Screen

  • To create your screen simply run:
rnhc create -s <screen-name>
  • This will create a screen after the given name screen-name under the src/screens/ folder.

Example

rnhc create -s testScreen
  • This will create the following:
src/
└── screens
└── test-screen
├── __tests__
│ └── index.spec.jsx
├── functions
│ └── index.js
├── index.jsx
└── styles.js
  • Where index.* represent the screen which is nothing but a React FC component that contains the following:
import { Text, View } from "react-native";
import {} from "./functions";
import { TestScreenStyles } from "./styles";

const TestScreenScreen = () => {
return (
<View>
<Text>TestScreen screen created!</Text>
</View>
);
};
export default TestScreenScreen;
  • As for styles.* you will find:
import { StyleSheet } from "react-native";

export const TestScreenStyles = StyleSheet.create({});
  • And index.spec.* will contain:
import "react-native";

import React from "react";
import TestScreenScreen from "..";
import renderer from "react-test-renderer";

it("renders correctly", () => {
renderer.create(<TestScreenScreen />);
});
  • And under the functions folder you should write your screen's functions and export them in function/index.* file, which by default it will contain the following:
// write your TestScreen screen functions here

Create multiple Screens

  • To create multiple screens simply run:
rnhc create -s <screen-name-1> <screen-name-2> ...
  • This will create multiple screens under the src/screens/ folder.

Example

rnhc create -s screen-1 screen-2
  • This will create the following:
src/
└── screens
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js

Create Screens in a Specific Folder

  • To create one or multiple screens in a specific path that resides under src/screens/ folder, simply run:
rnhc create -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will create your screens under the src/screens/<folder-path> folder.

Example

rnhc create -s screen-1 screen-2 -f foo/bar
  • This will create the following:
src/
└── screens
└── foo
└── bar
├── screen-1
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── functions
│   │   └── index.js
│   ├── index.jsx
│   └── styles.js
└── screen-2
├── __tests__
│   └── index.spec.jsx
├── functions
│   └── index.js
├── index.jsx
└── styles.js
+ + + + \ No newline at end of file diff --git a/docs/create/intro.html b/docs/create/intro.html new file mode 100644 index 0000000..7989600 --- /dev/null +++ b/docs/create/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Intro

rnhc provide you more flexibility and easy to use approach to create your files and folders for your componets, screens navigations and redux implementation.

  • By default rnhc create files with the project's language, so if the project is written in TypeScript all the created files will be in TypeScript, and the same applies for JavaScript.

  • If you want to force the use of a specific language you can add the --js or --ts options at the end of your create commands.

  • rnhc will not overwrite the existed implementation for all of the create commands.

  • If you want to overwrite the existed implementation for a specific create command you can add the --overwrite or -o option at the end of the command.

The following points shows how to use the create command.

+ + + + \ No newline at end of file diff --git a/docs/create/using-configuration.html b/docs/create/using-configuration.html new file mode 100644 index 0000000..69b7269 --- /dev/null +++ b/docs/create/using-configuration.html @@ -0,0 +1,21 @@ + + + + + +Using Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Using Configuration

With the above steps, you can now create a configuration file which will be used by rnhc to create your files with your custom config.

  • To create a default configuration file run:
rnhc create --config
  • This will create a rnhc.config.json file at the root of your project. The file will contain the following:
{
"withStyles": true,
"withFunctions": true,
"withProps": true,
"withTests": true,
"defaultExports": true,
"componentsRoot": "./src/components",
"screensRoot": "./src/screens",
"reduxRoot": "./src/redux",
"applyReduxThunk": true
}
  1. withStyles: if true, create styles.js (or styles.ts) file for components and screens, if false, don't create styles.js (or styles.ts) file, default is true.
  2. withFunctions: if true, create functions folder for screens, if false, don't create functions folder, default is true.
  3. withProps: if true, create props interface for components and screens (in TS only), if false, don't create props interface, default is true.
  4. withTests: if true, create __tests__ folder for components and screens, if false, don't create __tests__ folder, default is true.
  5. defaultExports: if true, create default export for components and pages, if false, create named export for components and pages, default is true.
  6. componentsRoot: the root folder for components, default is ./src/components.
  7. screensRoot: the root folder for screens, default is ./src/screens.
  8. reduxRoot: the root folder for redux, default is ./src/redux.
  9. applyReduxThunk: if true, apply redux-thunk middleware to the store, if false, don't apply redux-thunk middleware, default is true.
  • If no configuration file is found or you don't specify some of the configuration, the default configuration will be used.
+ + + + \ No newline at end of file diff --git a/docs/create/using-templates.html b/docs/create/using-templates.html new file mode 100644 index 0000000..4d95be5 --- /dev/null +++ b/docs/create/using-templates.html @@ -0,0 +1,21 @@ + + + + + +Using Templates | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Using Templates

You can create your screens and components with your defined templates by following these steps:

  1. First thing to do is to create a .template folder at the root of your react project.

  2. Inside the .template folder you can add your template, for example componentWithUseEffect.tsx (the file extension doesn't matter so it could be *.jsx, *.js or *.tsx):

import React, { useEffect } from "react";
import { View, Text } from "react-native";

export default function __COMPONENT__() {
useEffect(() => {}, []);

return (
<View>
<Text>Hello, World!</Text>
</View>
);
}
  • There is a restriction in naming these templates which is you should not put dots (.) between the name, like this (component.WithUseEffect.jsx). It should only contain one dot that makes the extension file like we're doing above.

  • You should type __COMPONENT__ in the template file and it will be replaced with the component name you want to create.

  1. After creating your template you can use them to create components or screens as the following:
rnhc create -c <component-name> -t <template-name>
rnhc create -s <screen-name> -t <template-name>
  • And of course, you can create multiple components or screens with the same template.

Example

As for our example it can be used like this for the above template:

rnhc create -c comp -t componentWithUseEffect
  • This will create comp component under src/components/ folder and the index.jsx for this component will contain the same code written in the template.

  • For the screen case, the index.jsx for that screen will contain the code written in the template.

+ + + + \ No newline at end of file diff --git a/docs/delete/delete-components.html b/docs/delete/delete-components.html new file mode 100644 index 0000000..ee7d011 --- /dev/null +++ b/docs/delete/delete-components.html @@ -0,0 +1,21 @@ + + + + + +Delete Components | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Delete Components

Delete a Component

  • To delete a component simply run:
rnhc delete -c <component-name>
  • This will delete the component with the given name <component-name> under the src/components/ folder.

  • If the component does not exist, rnhc will prompt the following:

src/components/<component-name>/ does not exist

Delete multiple Components

  • To delete multiple components run:
rnhc delete -c <component-name-1> <component-name-2> ...
  • This will delete only the existed components with the given inputs that resides under the src/components/ folder.

Delete a Components in a Specific Folder

  • To delete one or multiple components that resides in a specific path under the src/components/ folder, you can run:
rnhc delete -c <component-name-1> <component-name-2> ... -f <folder-path>
  • This will delete only the existed components with the given inputs that resides under the src/components/<folder-path>/ folder.

Delete Atoms

rnhc delete -c <atom-name> --atom
  • This will delete the atom with the given name <atom-name> under the src/components/atoms/ folder.

  • If the atom does not exist, rnhc will prompt the following:

src/components/atoms/<atom-name>/ does not exist
  • To delete multiple atoms run:
rnhc delete -c <atom-name-1> <atom-name-2> ... --atom
  • This will delete only the existed atoms with the given inputs that resides under the src/components/atoms/ folder.

  • To delete one or multiple atoms that resides in a specific path under the src/components/ folder, you can run:

rnhc delete -c <atom-name-1> <atom-name-2> ... -f <folder-path> --atom
  • This will delete only the existed atoms with the given inputs that resides under the src/components/<folder-path>/atoms/ folder.

Delete Molecules

  • To delete a molecule simply run:
rnhc delete -c <molecule-name> --molecule
  • This will delete the molecule with the given name <molecule-name> under the src/components/molecules/ folder.

  • If the molecule does not exist, rnhc will prompt the following:

src/components/molecules/<molecule-name>/ does not exist
  • To delete multiple molecules run:
rnhc delete -c <molecule-name-1> <molecule-name-2> ... --molecule
  • This will delete only the existed molecules with the given inputs that resides under the src/components/molecules/ folder.

  • To delete one or multiple molecules that resides in a specific path under the src/components/ folder, you can run:

rnhc delete -c <molecule-name-1> <molecule-name-2> ... -f <folder-path> --molecule
  • This will delete only the existed molecules with the given inputs that resides under the src/components/<folder-path>/molecules/ folder.

Delete Organisms

  • To delete an organism simply run:
rnhc delete -c <organism-name> --organism
  • This will delete the organism with the given name <organism-name> under the src/components/organisms/ folder.

  • If the organism does not exist, rnhc will prompt the following:

src/components/organisms/<organism-name>/ does not exist
  • To delete multiple organisms run:
rnhc delete -c <organism-name-1> <organism-name-2> ... --organism
  • This will delete only the existed organisms with the given inputs that resides under the src/components/organisms/ folder.

  • To delete one or multiple organisms that resides in a specific path under the src/components/ folder, you can run:

rnhc delete -c <organism-name-1> <organism-name-2> ... -f <folder-path> --organism
  • This will delete only the existed organisms with the given inputs that resides under the src/components/<folder-path>/organisms/ folder.
+ + + + \ No newline at end of file diff --git a/docs/delete/delete-configuration.html b/docs/delete/delete-configuration.html new file mode 100644 index 0000000..7f90dbb --- /dev/null +++ b/docs/delete/delete-configuration.html @@ -0,0 +1,21 @@ + + + + + +Delete Configuration | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Delete Configuration

To delete a configuration file run:

rnhc delete --config
  • This will delete the rnhc.config.json file at the root of the project.

  • If rnhc.config.json does not exist, rnhc will prompt:

rnhc.config.json does not exist
+ + + + \ No newline at end of file diff --git a/docs/delete/delete-navigations.html b/docs/delete/delete-navigations.html new file mode 100644 index 0000000..f6674e0 --- /dev/null +++ b/docs/delete/delete-navigations.html @@ -0,0 +1,21 @@ + + + + + +Delete Navigations | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Delete Navigations

Delete the root Navigation

  • To delete a navigation file that resides in src/screens/ folder simply run:
rnhc delete -n
  • This will delete the navigation file if it exists, if not rnhc will prompt the following:
It seems there is no navigation file in src/screens/

Delete a Navigation in a Specific Folder

  • To delete a navigation file that resides in a specific path that resides under src/screens/ folder you can run:
rnhc delete -n -f <folder-path>
  • This will delete the navigation file if it does exist under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/delete/delete-redux.html b/docs/delete/delete-redux.html new file mode 100644 index 0000000..4c5e6c9 --- /dev/null +++ b/docs/delete/delete-redux.html @@ -0,0 +1,21 @@ + + + + + +Delete Redux | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Delete Redux

To delete a redux implementation run:

rnhc delete -r
  • This will delete the redux folder under src/ with all of its files and subfolders.

  • If redux does not exist, rnhc will prompt:

src/redux/ does not exist

Reducers

Delete a reducer

  • To delete a reducer run:
rnhc delete --reducer <reducer-name>
  • This will delete the existed reducer under src/redux/reducer/ folder, if not rnhc will prompt the following:
./src/redux/reducers/<reducer-name>/ does not exist
  • It will also update the index.js file under src/redux/reducer/ folder to remove it from the import list as well as from the combineReducers function.

Delete multiple reducers

  • You can even delete multiple reducers at once:
rnhc delete --reducer <reducer-name-1> <reducer-name-2> ...

Delete all reducers

  • To delete all reducers run:
rnhc delete --reducer

Actions

Delete an action

  • To delete an action run:
rnhc delete --action <reducer-name> <action-name>
  • If the reducer does not exist, rnhc will prompt the following:
./src/redux/actions/<reducer-name>/ does not exist
  • It will also update the necessary files to remove the action from the reducer. And in case of TypeScript projects it will remove the action type in the src/redux/index.ts.

Delete multiple actions

  • You can even delete multiple actions for a specific reducer at once:
rnhc delete --action <reducer-name> <action-name-1> <action-name-2> ...

Delete all actions for a specific reducer

  • To delete all actions for a specific reducer run:
rnhc delete --action <reducer-name>
+ + + + \ No newline at end of file diff --git a/docs/delete/delete-screens.html b/docs/delete/delete-screens.html new file mode 100644 index 0000000..d85a4e8 --- /dev/null +++ b/docs/delete/delete-screens.html @@ -0,0 +1,21 @@ + + + + + +Delete Screens | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Delete Screens

Delete a Screen

  • To delete a screen simply run:
rnhc delete -s <screen-name>
  • This will delete the screen with the given name <screen-name> under the src/screens/ folder.

  • If the screen does not exist, rnhc will prompt the following:

src/screens/<screen-name>/ does not exist

Delete multiple Screens

  • To delete multiple screens run:
rnhc delete -s <screen-name-1> <screen-name-2> ...
  • This will delete only the existed screens with the given inputs that resides under the src/screens/ folder.

Delete a Screens in a Specific Folder

  • To delete one or multiple screens that resides in a specific path under the src/screens/ folder, you can run:
rnhc delete -s <screen-name-1> <screen-name-2> ... -f <folder-path>
  • This will delete only the existed screens with the given inputs that resides under the src/screens/<folder-path>/ folder.
+ + + + \ No newline at end of file diff --git a/docs/delete/intro.html b/docs/delete/intro.html new file mode 100644 index 0000000..759a347 --- /dev/null +++ b/docs/delete/intro.html @@ -0,0 +1,21 @@ + + + + + +Intro | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Intro

With rnhc you can delete what you already created with create commands.

The following points shows how to deal with deleting your files with the delete command.

+ + + + \ No newline at end of file diff --git a/docs/getting-started.html b/docs/getting-started.html new file mode 100644 index 0000000..c3092a6 --- /dev/null +++ b/docs/getting-started.html @@ -0,0 +1,21 @@ + + + + + +Getting Started | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Getting Started

  • To install it globally in your system run:
npm i react-native-help-create -g

Or

To install it as a dev dependency in your react native project run:

npm i react-native-help-create --save-dev

If you want to use it without installing it (using npm cache) run:

npx react-native-help-create --help
+ + + + \ No newline at end of file diff --git a/docs/intro.html b/docs/intro.html new file mode 100644 index 0000000..897f6ec --- /dev/null +++ b/docs/intro.html @@ -0,0 +1,21 @@ + + + + + +Summary | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Summary

This command line help you create your React Native project in a easy and useful structure by creating components and screens in separate folders in order to distinguish between them. It also make it easier to create navigations for your screens without writing a single line of code.

The following project structure is used by this command:

src/
├── components
│   ├── comp-one
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── index.jsx
│   │   └── styles.js
│   ├── comp-two
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── index.jsx
│   │   └── styles.js
│   └── folder
│   └── comp-three
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── index.jsx
│   └── styles.js
├── redux
│   ├── actions
│   │   └── general
│   │   └── index.js
│   ├── index.js
│   └── reducers
│   ├── general
│   │   └── index.js
│   └── index.js
└── screens
├── folder
│   ├── navigation.jsx
│   ├── screen-four
│   │   ├── __tests__
│   │   │   └── index.spec.jsx
│   │   ├── index.jsx
│   │   └── styles.js
│   └── screen-three
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── index.jsx
│   └── styles.js
├── navigation.jsx
├── screen-one
│   ├── __tests__
│   │   └── index.spec.jsx
│   ├── index.jsx
│   └── styles.js
└── screen-two
├── __tests__
│   └── index.spec.jsx
├── index.jsx
└── styles.js
  • As you can see above, the src folder is the folder that resides at the root of your React Native project and under this folder, you will find the components folder which contains all the shared components that are used through out the screen. The screens folder contains the app's screens that can uses some of the shared components above it.

  • In each component you will find index.tsx that contains the components JSX.Element syntaxes, and styles.ts that contains the styles for that component.

  • In each screen you will find index.tsx that contains the JSX.Element syntaxes, and styles.ts that contains the screen's styles and functions folder which will contain the screen's specific functions.

  • Each screen can use one of the shared components that are defined in components folder, and you can pass the functions to those components hence there is not functions folder under a component subfolder.

  • For the screens part you can find navigation.tsx files that shows the relation between the screens that resides in the same folder. For example, the navigation.tsx under the screens folder represent a stack navigation between folder and screen-one and screen-two. As for the navigation.tsx file under the folder folder is represent a drawer navigation between screen-three and screen-four.

  • In both the components and screens folders, you can find __tests__ folder that contains the tests for the component or screen.

  • As for the redux folder you can see there is index.ts which contain the redux store, and actions and reducers folders are next to it so you can find only things that are related to redux in one single place.

  • This command line can write code in both JavaScript and TypeScript. By default it will use the used language for your React Native project and of course you can override the used language using one of its options.

  • You can override the usage of the default behavior of this command line by modifying the rnhc.config.json file (more details can be found here).

+ + + + \ No newline at end of file diff --git a/docs/notes.html b/docs/notes.html new file mode 100644 index 0000000..cbbd03c --- /dev/null +++ b/docs/notes.html @@ -0,0 +1,21 @@ + + + + + +Notes | react-native-help-create + + + + + + + + + +
+
Version: 2.7.0 (current)

Notes

  • To see the available commands for rnhc you can run:
rnhc --help
  • To see the available positionals and options for a specific command like create you can run:
rnhc create --help
  • In order to rnhc to work, you must be at the root of your React Native project. It will check and if somehow you are not at the root of the project, rnhc will prompt:
You don't seem to be at the root of a react native project
  • In create command, rnhc will create files with the project's used language, so if the project is written with TypeScript, it will write files with TypeScript, the same apply for JavaScript.

  • If you are in a JavaScript project and somehow you want to create your component or screen in TypeScript, you can use the --typescript or --ts option:

rnhc create -s test-screen --ts
  • It doesn't matter what case you name your component or screen, rnhc will always create a component or screen with the same name, but with the first letter in uppercase, and the folder will be in kebab case. So if you name your component with test-comp, it will create a component or screen with the name TestComp in the index.jsx file under the ./src/components/test-comp/ folder. Check the example below:
rnhc create -c test-comp
rnhc create -c testComp
rnhc create -c TestComp

The above commands produce the same outcome:

src/
└── components
└── test-comp
├── __tests__
│   └── index.spec.jsx
├── index.jsx
└── styles.js
  • You can always overwrite your implementation using the --overwrite or -o option, for example:
rnhc create -c test-component -o
rnhc create -s TestScreen -o
rnhc create -r -o
rnhc create --reducer testReducer -o
rnhc create --action testReducer test-action -o
  • This is helpful when you want to update your navigation files, for example you already have a navigation file in src/screens/ folder and you want to update it with the new screens you created:
rnhc create -n stack --overwrite
  • When creating reducers you should have already a redux implmentation created with rnhc create -r so it can work.

  • When creating actions, you should have already a redux implementation created with rnhc create -r as well as an existed reducer with rnhc create --reducer <reducer-name> so it can create actions for that specific reducer.

  • Creating and deleting reducers and actions will not just delete files, but also update other files that depends on them under the src/redux/ folder (Or your specified path for the root of redux folder in rnhc.config.json).

  • You can use the --silent option to avoid the prompts for all commands:

rnhc create -c foo --silent
  • rnhc will recommend you similar commands if you type a command that doesn't exist. For example, if you type rnhc crete -c, it will prompt you with the following:
rnhc <command> [option]

Commands:
rnhc create [name] Create components, screens, navigations and redux
implementation
rnhc delete [name] Delete components, screens, navigations and redux
implementation
rnhc combine [name] Combine components or screens in a folder

Options:
--version Show version number [boolean]
--silent Do not show log messages [boolean]
--help Show help [boolean]

Did you mean create?
  • When creating, deleting or combining components in atom design pattern, if you provide more than one type (e.g rnhc create -c test --atom --molecule), rnhc will prompt you to choose one of them.
+ + + + \ No newline at end of file diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000..eddad53 Binary files /dev/null and b/img/favicon.ico differ diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000..a1548e3 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/rnhc-logo.png b/img/rnhc-logo.png new file mode 100644 index 0000000..7a90f0d Binary files /dev/null and b/img/rnhc-logo.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..c0841d6 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + + + + +react-native-help-create docs | react-native-help-create + + + + + + + + + +
+

react-native-help-create

Focus on your code, not your project structure!

rnhc logo

Easy to Use

rnhc was designed to make your development process easier for your react native project.

Focus on What Matters

rnhc lets you focus on your code more than on the project structure itself.

Easy to Learn

rnhc is easy to learn and you can learn it in a few minutes.

+ + + + \ No newline at end of file diff --git a/markdown-page.html b/markdown-page.html new file mode 100644 index 0000000..26bfb4a --- /dev/null +++ b/markdown-page.html @@ -0,0 +1,21 @@ + + + + + +Markdown page example | react-native-help-create + + + + + + + + + +
+

Markdown page example

You don't need React to write simple standalone pages.

+ + + + \ No newline at end of file diff --git a/opensearch.xml b/opensearch.xml new file mode 100644 index 0000000..af540d2 --- /dev/null +++ b/opensearch.xml @@ -0,0 +1,11 @@ + + + react-native-help-create + Search react-native-help-create + UTF-8 + https://omdxp.github.io/react-native-help-create/img/favicon.ico + + + https://omdxp.github.io/react-native-help-create/ + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 0000000..8466a63 --- /dev/null +++ b/search.html @@ -0,0 +1,21 @@ + + + + + +Search the documentation | react-native-help-create + + + + + + + + + +
+

Search the documentation

+ + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..66958cd --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://omdxp.github.io/react-native-help-create/blogweekly0.5https://omdxp.github.io/react-native-help-create/blog/archiveweekly0.5https://omdxp.github.io/react-native-help-create/blog/first-blog-postweekly0.5https://omdxp.github.io/react-native-help-create/blog/long-blog-postweekly0.5https://omdxp.github.io/react-native-help-create/blog/mdx-blog-postweekly0.5https://omdxp.github.io/react-native-help-create/blog/tagsweekly0.5https://omdxp.github.io/react-native-help-create/blog/tags/docusaurusweekly0.5https://omdxp.github.io/react-native-help-create/blog/tags/facebookweekly0.5https://omdxp.github.io/react-native-help-create/blog/tags/helloweekly0.5https://omdxp.github.io/react-native-help-create/blog/tags/holaweekly0.5https://omdxp.github.io/react-native-help-create/blog/welcomeweekly0.5https://omdxp.github.io/react-native-help-create/markdown-pageweekly0.5https://omdxp.github.io/react-native-help-create/searchweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/category/combineweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/category/createweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/category/deleteweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/combine/combine-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/combine/combine-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/combine/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/create-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/create-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/create-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/create-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/using-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/create/using-templatesweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/delete/delete-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/delete/delete-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/delete/delete-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/delete/delete-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/delete/delete-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/delete/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/getting-startedweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.3.4/notesweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/category/combineweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/category/createweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/category/deleteweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/combine/combine-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/combine/combine-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/combine/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/create-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/create-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/create-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/create-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/using-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/create/using-templatesweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/delete/delete-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/delete/delete-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/delete/delete-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/delete/delete-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/delete/delete-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/delete/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/getting-startedweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.5.1/notesweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/category/combineweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/category/createweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/category/deleteweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/combine/combine-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/combine/combine-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/combine/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/create-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/create-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/create-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/create-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/using-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/create/using-templatesweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/delete/delete-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/delete/delete-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/delete/delete-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/delete/delete-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/delete/delete-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/delete/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/getting-startedweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/2.6.0/notesweekly0.5https://omdxp.github.io/react-native-help-create/docs/category/combineweekly0.5https://omdxp.github.io/react-native-help-create/docs/category/createweekly0.5https://omdxp.github.io/react-native-help-create/docs/category/deleteweekly0.5https://omdxp.github.io/react-native-help-create/docs/combine/combine-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/combine/combine-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/combine/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/create-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/create-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/create-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/create-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/using-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/create/using-templatesweekly0.5https://omdxp.github.io/react-native-help-create/docs/delete/delete-componentsweekly0.5https://omdxp.github.io/react-native-help-create/docs/delete/delete-configurationweekly0.5https://omdxp.github.io/react-native-help-create/docs/delete/delete-navigationsweekly0.5https://omdxp.github.io/react-native-help-create/docs/delete/delete-reduxweekly0.5https://omdxp.github.io/react-native-help-create/docs/delete/delete-screensweekly0.5https://omdxp.github.io/react-native-help-create/docs/delete/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/getting-startedweekly0.5https://omdxp.github.io/react-native-help-create/docs/introweekly0.5https://omdxp.github.io/react-native-help-create/docs/notesweekly0.5https://omdxp.github.io/react-native-help-create/weekly0.5 \ No newline at end of file