@inertiajs/react 1.3.0-beta.2 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,6 +1,2 @@
1
- import{router as Me}from"@inertiajs/core";import{setupProgress as fe}from"@inertiajs/core";import{createElement as me}from"react";import{createHeadManager as ue,router as _}from"@inertiajs/core";import{createElement as x,useEffect as ce,useMemo as le,useState as de}from"react";import{createContext as ie}from"react";var V=ie(void 0);V.displayName="InertiaHeadContext";var M=V;import{createContext as pe}from"react";var K=pe(void 0);K.displayName="InertiaPageContext";var H=K;function N({children:l,initialPage:p,initialComponent:a,resolveComponent:i,titleCallback:n,onHeadUpdate:F}){let[d,y]=de({component:a||null,page:p,key:null}),u=le(()=>ue(typeof window>"u",n||(c=>c),F||(()=>{})),[]);if(ce(()=>{_.init({initialPage:p,resolveComponent:i,swapComponent:async({component:c,page:e,preserveState:s})=>{y(r=>({component:c,page:e,key:s?r.key:Date.now()}))}}),_.on("navigate",()=>u.forceUpdate())},[]),!d.component)return x(M.Provider,{value:u},x(H.Provider,{value:d.page},null));let f=l||(({Component:c,props:e,key:s})=>{let r=x(c,{key:s,...e});return typeof c.layout=="function"?c.layout(r):Array.isArray(c.layout)?c.layout.concat(r).reverse().reduce((g,T)=>x(T,{children:g,...e})):r});return x(M.Provider,{value:u},x(H.Provider,{value:d.page},f({Component:d.component,key:d.key,props:d.page.props})))}N.displayName="Inertia";async function W({id:l="app",resolve:p,setup:a,title:i,progress:n={},page:F,render:d}){let y=typeof window>"u",u=y?null:document.getElementById(l),f=F||JSON.parse(u.dataset.page),c=r=>Promise.resolve(p(r)).then(g=>g.default||g),e=[],s=await c(f.component).then(r=>a({el:u,App:N,props:{initialPage:f,initialComponent:r,resolveComponent:c,titleCallback:i,onHeadUpdate:y?g=>e=g:null}}));if(!y&&n&&fe(n),y){let r=await d(me("div",{id:l,"data-page":JSON.stringify(f)},s));return{head:e,body:r}}}import q,{useContext as ge,useEffect as ye,useMemo as Pe}from"react";var Te=function({children:l,title:p}){let a=ge(M),i=Pe(()=>a.createProvider(),[a]);ye(()=>()=>{i.disconnect()},[i]);function n(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function F(e){let s=Object.keys(e.props).reduce((r,g)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(g))return r;let T=e.props[g];return T===""?r+` ${g}`:r+` ${g}="${T}"`},"");return`<${e.type}${s}>`}function d(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((s,r)=>s+y(r),"")}function y(e){let s=F(e);return e.props.children&&(s+=d(e)),e.props.dangerouslySetInnerHTML&&(s+=e.props.dangerouslySetInnerHTML.__html),n(e)||(s+=`</${e.type}>`),s}function u(e){return q.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function f(e){return y(u(e))}function c(e){let s=q.Children.toArray(e).filter(r=>r).map(r=>f(r));return p&&!s.find(r=>r.startsWith("<title"))&&s.push(`<title inertia>${p}</title>`),s}return i.update(c(l)),null},Se=Te;import{mergeDataIntoQueryString as Fe,router as ve,shouldIntercept as he}from"@inertiajs/core";import{createElement as Ce,forwardRef as ke,useCallback as be}from"react";var C=()=>{},J=ke(({children:l,as:p="a",data:a={},href:i,method:n="get",preserveScroll:F=!1,preserveState:d=null,replace:y=!1,only:u=[],except:f=[],headers:c={},queryStringArrayFormat:e="brackets",onClick:s=C,onCancelToken:r=C,onBefore:g=C,onStart:T=C,onProgress:O=C,onFinish:k=C,onCancel:L=C,onSuccess:R=C,onError:B=C,...I},A)=>{let h=be(E=>{s(E),he(E.nativeEvent)&&(E.preventDefault(),ve.visit(i,{data:a,method:n,preserveScroll:F,preserveState:d??n!=="get",replace:y,only:u,except:f,headers:c,onCancelToken:r,onBefore:g,onStart:T,onProgress:O,onFinish:k,onCancel:L,onSuccess:R,onError:B}))},[a,i,n,F,d,y,u,f,c,s,r,g,T,O,k,L,R,B]);p=p.toLowerCase(),n=n.toLowerCase();let[j,U]=Fe(n,i||"",a,e);return i=j,a=U,p==="a"&&n!=="get"&&console.warn(`Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.
2
-
3
- Please specify a more appropriate element using the "as" attribute. For example:
4
-
5
- <Link href="${i}" method="${n}" as="button">...</Link>`),Ce(p,{...I,...p==="a"?{href:i}:{},ref:A,onClick:h},l)});J.displayName="InertiaLink";var xe=J;import{router as z}from"@inertiajs/core";import Ae from"lodash.isequal";import{useCallback as S,useEffect as Ee,useRef as $,useState as b}from"react";import{router as Q}from"@inertiajs/core";import{useEffect as Re,useState as Ie}from"react";function w(l,p){let[a,i]=Ie(()=>{let n=Q.restore(p);return n!==void 0?n:l});return Re(()=>{Q.remember(a,p)},[a,p]),[a,i]}function G(l,p){let a=$(null),i=typeof l=="string"?l:null,[n,F]=b((typeof l=="string"?p:l)||{}),d=$(null),y=$(null),[u,f]=i?w(n,`${i}:data`):b(n),[c,e]=i?w({},`${i}:errors`):b({}),[s,r]=b(!1),[g,T]=b(!1),[O,k]=b(null),[L,R]=b(!1),[B,I]=b(!1),A=$(o=>o);Ee(()=>(a.current=!0,()=>{a.current=!1}),[]);let h=S((o,P,t={})=>{let v={...t,onCancelToken:m=>{if(d.current=m,t.onCancelToken)return t.onCancelToken(m)},onBefore:m=>{if(R(!1),I(!1),clearTimeout(y.current),t.onBefore)return t.onBefore(m)},onStart:m=>{if(T(!0),t.onStart)return t.onStart(m)},onProgress:m=>{if(k(m),t.onProgress)return t.onProgress(m)},onSuccess:m=>{if(a.current&&(T(!1),k(null),e({}),r(!1),R(!0),I(!0),y.current=setTimeout(()=>{a.current&&I(!1)},2e3)),t.onSuccess)return t.onSuccess(m)},onError:m=>{if(a.current&&(T(!1),k(null),e(m),r(!0)),t.onError)return t.onError(m)},onCancel:()=>{if(a.current&&(T(!1),k(null)),t.onCancel)return t.onCancel()},onFinish:()=>{if(a.current&&(T(!1),k(null)),d.current=null,t.onFinish)return t.onFinish()}};o==="delete"?z.delete(P,{...v,data:A.current(u)}):z[o](P,A.current(u),v)},[u,e]),j=S((o,P)=>{f(typeof o=="string"?t=>({...t,[o]:P}):typeof o=="function"?t=>o(t):o)},[f]),U=S((o,P)=>{F(typeof o>"u"?()=>u:t=>({...t,...typeof o=="string"?{[o]:P}:o}))},[u,F]),E=S((...o)=>{o.length===0?f(n):f(P=>Object.keys(n).filter(t=>o.includes(t)).reduce((t,v)=>(t[v]=n[v],t),{...P}))},[f,n]),Y=S((o,P)=>{e(t=>{let v={...t,...typeof o=="string"?{[o]:P}:o};return r(Object.keys(v).length>0),v})},[e,r]),Z=S((...o)=>{e(P=>{let t=Object.keys(P).reduce((v,m)=>({...v,...o.length>0&&!o.includes(m)?{[m]:P[m]}:{}}),{});return r(Object.keys(t).length>0),t})},[e,r]),D=o=>(P,t)=>{h(o,P,t)},ee=S(D("get"),[h]),te=S(D("post"),[h]),re=S(D("put"),[h]),oe=S(D("patch"),[h]),ne=S(D("delete"),[h]),ae=S(()=>{d.current&&d.current.cancel()},[]),se=S(o=>{A.current=o},[]);return{data:u,setData:j,isDirty:!Ae(u,n),errors:c,hasErrors:s,processing:g,progress:O,wasSuccessful:L,recentlySuccessful:B,transform:se,setDefaults:U,reset:E,setError:Y,clearErrors:Z,submit:h,get:ee,post:te,put:re,patch:oe,delete:ne,cancel:ae}}import{useContext as De}from"react";function X(){let l=De(H);if(!l)throw new Error("usePage must be used within the Inertia component");return l}var At=Me;export{Se as Head,xe as Link,W as createInertiaApp,At as router,G as useForm,X as usePage,w as useRemember};
1
+ import{router as et}from"@inertiajs/core";import{router as Ce,setupProgress as be}from"@inertiajs/core";import{createElement as ke}from"react";import{createHeadManager as Se,router as G}from"@inertiajs/core";import{createElement as A,useEffect as Te,useMemo as ve,useState as Fe}from"react";import{createContext as ye}from"react";var Y=ye(void 0);Y.displayName="InertiaHeadContext";var w=Y;import{createContext as he}from"react";var z=he(void 0);z.displayName="InertiaPageContext";var O=z;function H({children:p,initialPage:r,initialComponent:s,resolveComponent:a,titleCallback:i,onHeadUpdate:P}){let[l,d]=Fe({component:s||null,page:r,key:null}),m=ve(()=>Se(typeof window>"u",i||(f=>f),P||(()=>{})),[]);if(Te(()=>{G.init({initialPage:r,resolveComponent:a,swapComponent:async({component:f,page:e,preserveState:c})=>{d(o=>({component:f,page:e,key:c?o.key:Date.now()}))}}),G.on("navigate",()=>m.forceUpdate())},[]),!l.component)return A(w.Provider,{value:m},A(O.Provider,{value:l.page},null));let y=p||(({Component:f,props:e,key:c})=>{let o=A(f,{key:c,...e});return typeof f.layout=="function"?f.layout(o):Array.isArray(f.layout)?f.layout.concat(o).reverse().reduce((h,S)=>A(S,{children:h,...e})):o});return A(w.Provider,{value:m},A(O.Provider,{value:l.page},y({Component:l.component,key:l.key,props:l.page.props})))}H.displayName="Inertia";async function X({id:p="app",resolve:r,setup:s,title:a,progress:i={},page:P,render:l}){let d=typeof window>"u",m=d?null:document.getElementById(p),y=P||JSON.parse(m.dataset.page),f=o=>Promise.resolve(r(o)).then(h=>h.default||h),e=[],c=await Promise.all([f(y.component),Ce.decryptHistory().catch(()=>{})]).then(([o])=>s({el:m,App:H,props:{initialPage:y,initialComponent:o,resolveComponent:f,titleCallback:a,onHeadUpdate:d?h=>e=h:null}}));if(!d&&i&&be(i),d){let o=await l(ke("div",{id:p,"data-page":JSON.stringify(y)},c));return{head:e,body:o}}}import{useEffect as xe,useState as Ie}from"react";import{useContext as Re}from"react";function V(){let p=Re(O);if(!p)throw new Error("usePage must be used within the Inertia component");return p}var Z=({children:p,data:r,fallback:s})=>{if(!r)throw new Error("`<Deferred>` requires a `data` prop");let[a,i]=Ie(!1),P=V().props,l=Array.isArray(r)?r:[r];return xe(()=>{i(l.every(d=>P[d]!==void 0))},[P,l]),a?p:s};Z.displayName="InertiaDeferred";var Ae=Z;import ee,{useContext as Ee,useEffect as we,useMemo as Oe}from"react";var De=function({children:p,title:r}){let s=Ee(w),a=Oe(()=>s.createProvider(),[s]);we(()=>()=>{a.disconnect()},[a]);function i(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function P(e){let c=Object.keys(e.props).reduce((o,h)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(h))return o;let S=e.props[h];return S===""?o+` ${h}`:o+` ${h}="${S}"`},"");return`<${e.type}${c}>`}function l(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((c,o)=>c+d(o),"")}function d(e){let c=P(e);return e.props.children&&(c+=l(e)),e.props.dangerouslySetInnerHTML&&(c+=e.props.dangerouslySetInnerHTML.__html),i(e)||(c+=`</${e.type}>`),c}function m(e){return ee.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function y(e){return d(m(e))}function f(e){let c=ee.Children.toArray(e).filter(o=>o).map(o=>y(o));return r&&!c.find(o=>o.startsWith("<title"))&&c.push(`<title inertia>${r}</title>`),c}return a.update(f(p)),null},Me=De;import{mergeDataIntoQueryString as Le,router as j,shouldIntercept as W}from"@inertiajs/core";import{createElement as He,forwardRef as Ve,useEffect as te,useMemo as re,useRef as Be,useState as Ne}from"react";var b=()=>{},oe=Ve(({children:p,as:r="a",data:s={},href:a,method:i="get",preserveScroll:P=!1,preserveState:l=null,replace:d=!1,only:m=[],except:y=[],headers:f={},queryStringArrayFormat:e="brackets",async:c=!1,onClick:o=b,onCancelToken:h=b,onBefore:S=b,onStart:R=b,onProgress:x=b,onFinish:B=b,onCancel:L=b,onSuccess:N=b,onError:E=b,prefetch:v=!1,cacheFor:F=0,...t},u)=>{let[n,C]=Ne(0),g=Be();r=r.toLowerCase(),i=i.toLowerCase();let[fe,de]=Le(i,a||"",s,e);a=fe,s=de;let q={data:s,method:i,preserveScroll:P,preserveState:l??i!=="get",replace:d,only:m,except:y,headers:f,async:c},J={...q,onCancelToken:h,onBefore:S,onStart(T){C($=>$+1),R(T)},onProgress:x,onFinish(T){C($=>$-1),B(T)},onCancel:L,onSuccess:N,onError:E},U=()=>{j.prefetch(a,q,{cacheFor:me})},I=re(()=>v===!0?["hover"]:v===!1?[]:Array.isArray(v)?v:[v],Array.isArray(v)?v:[v]),me=re(()=>F!==0?F:I.length===1&&I[0]==="click"?0:3e4,[F,I]);te(()=>()=>{clearTimeout(g.current)},[]),te(()=>{I.includes("mount")&&setTimeout(()=>U())},I);let Q={onClick:T=>{o(T),W(T)&&(T.preventDefault(),j.visit(a,J))}},ge={onMouseEnter:()=>{g.current=window.setTimeout(()=>{U()},75)},onMouseLeave:()=>{clearTimeout(g.current)},onClick:Q.onClick},Pe={onMouseDown:T=>{W(T)&&(T.preventDefault(),U())},onMouseUp:T=>{T.preventDefault(),j.visit(a,J)},onClick:T=>{o(T),W(T)&&T.preventDefault()}};return i!=="get"&&(r="button"),He(r,{...t,...{a:{href:a},button:{type:"button"}}[r]||{},ref:u,...(()=>I.includes("hover")?ge:I.includes("click")?Pe:Q)(),"data-loading":n>0?"":void 0},p)});oe.displayName="InertiaLink";var Ue=oe;import{router as se}from"@inertiajs/core";import We from"lodash.isequal";import{useCallback as Ke,useEffect as _e,useRef as K,useState as k}from"react";import{router as ne}from"@inertiajs/core";import{useEffect as $e,useState as je}from"react";function D(p,r){let[s,a]=je(()=>{let i=ne.restore(r);return i!==void 0?i:p});return $e(()=>{ne.remember(s,r)},[s,r]),[s,a]}function ae(p,r){let s=K(null),a=typeof p=="string"?p:null,[i,P]=k((typeof p=="string"?r:p)||{}),l=K(null),d=K(null),[m,y]=a?D(i,`${a}:data`):k(i),[f,e]=a?D({},`${a}:errors`):k({}),[c,o]=k(!1),[h,S]=k(!1),[R,x]=k(null),[B,L]=k(!1),[N,E]=k(!1),v=t=>t;_e(()=>(s.current=!0,()=>{s.current=!1}),[]);let F=Ke((t,u,n={})=>{let C={...n,onCancelToken:g=>{if(l.current=g,n.onCancelToken)return n.onCancelToken(g)},onBefore:g=>{if(L(!1),E(!1),clearTimeout(d.current),n.onBefore)return n.onBefore(g)},onStart:g=>{if(S(!0),n.onStart)return n.onStart(g)},onProgress:g=>{if(x(g),n.onProgress)return n.onProgress(g)},onSuccess:g=>{if(s.current&&(S(!1),x(null),e({}),o(!1),L(!0),E(!0),d.current=setTimeout(()=>{s.current&&E(!1)},2e3)),n.onSuccess)return n.onSuccess(g)},onError:g=>{if(s.current&&(S(!1),x(null),e(g),o(!0)),n.onError)return n.onError(g)},onCancel:()=>{if(s.current&&(S(!1),x(null)),n.onCancel)return n.onCancel()},onFinish:()=>{if(s.current&&(S(!1),x(null)),l.current=null,n.onFinish)return n.onFinish()}};t==="delete"?se.delete(u,{...C,data:v(m)}):se[t](u,v(m),C)},[m,e,v]);return{data:m,setData(t,u){y(typeof t=="string"?n=>({...n,[t]:u}):typeof t=="function"?n=>t(n):t)},isDirty:!We(m,i),errors:f,hasErrors:c,processing:h,progress:R,wasSuccessful:B,recentlySuccessful:N,transform(t){v=t},setDefaults(t,u){P(typeof t>"u"?()=>m:n=>({...n,...typeof t=="string"?{[t]:u}:t}))},reset(...t){t.length===0?y(i):y(Object.keys(i).filter(u=>t.includes(u)).reduce((u,n)=>(u[n]=i[n],u),{...m}))},setError(t,u){e(n=>{let C={...n,...typeof t=="string"?{[t]:u}:t};return o(Object.keys(C).length>0),C})},clearErrors(...t){e(u=>{let n=Object.keys(u).reduce((C,g)=>({...C,...t.length>0&&!t.includes(g)?{[g]:u[g]}:{}}),{});return o(Object.keys(n).length>0),n})},submit:F,get(t,u){F("get",t,u)},post(t,u){F("post",t,u)},put(t,u){F("put",t,u)},patch(t,u){F("patch",t,u)},delete(t,u){F("delete",t,u)},cancel(){l.current&&l.current.cancel()}}}import{router as qe}from"@inertiajs/core";import{useEffect as Je,useRef as Qe}from"react";function ie(p,r={},s={keepAlive:!1,autoStart:!0}){let a=Qe(qe.poll(p,r,{...s,autoStart:!1}));return Je(()=>((s.autoStart??!0)&&a.current.start(),()=>a.current.stop()),[]),{stop:a.current.stop,start:a.current.start}}import{router as M}from"@inertiajs/core";import{useEffect as Ye,useState as _}from"react";function pe(p={}){let r=typeof window>"u"?null:M.getCached(window.location.pathname,p),s=typeof window>"u"?null:M.getPrefetching(window.location.pathname,p),[a,i]=_(r?.staleTimestamp||null),[P,l]=_(s!==null),[d,m]=_(r!==null);return Ye(()=>{let y=M.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&l(!0)}),f=M.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(l(!1),m(!0),i(e.detail.fetchedAt))});return()=>{f(),y()}},[]),{lastUpdatedAt:a,isPrefetching:P,isPrefetched:d,flush:()=>M.flush(window.location.pathname,p)}}import{router as ze}from"@inertiajs/core";import{createElement as Ge,useEffect as Xe,useRef as ue,useState as le}from"react";var ce=({children:p,data:r,params:s,buffer:a,as:i,always:P,fallback:l})=>{P=P??!1,i=i??"div",l=l??null;let[d,m]=le(!1),[y,f]=le(!1),e=ue(null),c=ue(null),o=()=>{if(r)return{only:Array.isArray(r)?r:[r]};if(!s)throw new Error("You must provide either a `data` or `params` prop.");return s};return Xe(()=>{if(c.current)return e.current=new IntersectionObserver(h=>{if(!h[0].isIntersecting||(P||e.current?.disconnect(),y))return;f(!0);let S=o();ze.reload({...S,onStart:R=>{f(!0),S.onStart?.(R)},onFinish:R=>{m(!0),f(!1),S.onFinish?.(R)}})},{rootMargin:`${a||0}px`}),e.current.observe(c.current),()=>{e.current?.disconnect()}},[c]),P||!d?Ge(i,{props:null,ref:c},d?p:l):d?p:null};ce.displayName="InertiaWhenVisible";var Ze=ce;var hr=et;export{Ae as Deferred,Me as Head,Ue as Link,Ze as WhenVisible,X as createInertiaApp,hr as router,ae as useForm,V as usePage,ie as usePoll,pe as usePrefetch,D as useRemember};
6
2
  //# sourceMappingURL=index.esm.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/HeadContext.ts", "../src/PageContext.ts", "../src/Head.ts", "../src/Link.ts", "../src/useForm.ts", "../src/useRemember.ts", "../src/usePage.ts"],
4
- "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as useRemember } from './useRemember'\n", "import { Page, PageProps, PageResolver, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await resolveComponent(initialPage.component).then((initialComponent) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n mergeDataIntoQueryString,\n Method,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useCallback } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: () => void\n onProgress?: (progress: Progress) => void\n onFinish?: () => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n ...props\n },\n ref,\n ) => {\n const visit = useCallback(\n (event: React.MouseEvent) => {\n onClick(event)\n\n if (shouldIntercept(event.nativeEvent)) {\n event.preventDefault()\n\n router.visit(href, {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n })\n }\n },\n [\n data,\n href,\n method,\n preserveScroll,\n preserveState,\n replace,\n only,\n except,\n headers,\n onClick,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n ],\n )\n\n as = as.toLowerCase()\n method = method.toLowerCase() as Method\n const [_href, _data] = mergeDataIntoQueryString(method, href || '', data, queryStringArrayFormat)\n href = _href\n data = _data\n\n if (as === 'a' && method !== 'get') {\n console.warn(\n `Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes \"Open Link in New Tab/Window\" accessibility issues.\\n\\nPlease specify a more appropriate element using the \"as\" attribute. For example:\\n\\n<Link href=\"${href}\" method=\"${method}\" as=\"button\">...</Link>`,\n )\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(as === 'a' ? { href } : {}),\n ref,\n onClick: visit,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import { FormDataConvertible, Method, Progress, router, VisitOptions } from '@inertiajs/core'\nimport isEqual from 'lodash.isequal'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype setDataByObject<TForm> = (data: TForm) => void\ntype setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void\ntype FormDataType = object\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: keyof TForm, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: (keyof TForm)[]) => void\n clearErrors: (...fields: (keyof TForm)[]) => void\n setError(field: keyof TForm, value: string): void\n setError(errors: Record<keyof TForm, string>): void\n submit: (method: Method, url: string, options?: VisitOptions) => void\n get: (url: string, options?: VisitOptions) => void\n patch: (url: string, options?: VisitOptions) => void\n post: (url: string, options?: VisitOptions) => void\n put: (url: string, options?: VisitOptions) => void\n delete: (url: string, options?: VisitOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<keyof TForm, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<keyof TForm, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n const transform = useRef((data) => data)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (method, url, options = {}) => {\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish()\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform.current(data) })\n } else {\n router[method](url, transform.current(data), _options)\n }\n },\n [data, setErrors],\n )\n\n const setDataFunction = useCallback(\n (keyOrData: keyof TForm | Function | TForm, maybeValue?: TForm[keyof TForm]) => {\n if (typeof keyOrData === 'string') {\n setData((data) => ({ ...data, [keyOrData]: maybeValue }))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n [setData],\n )\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: keyof TForm | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => ({\n ...defaults,\n ...(typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : (fieldOrFields as TForm)),\n }))\n }\n },\n [data, setDefaults],\n )\n\n const reset = useCallback(\n (...fields) => {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData((data) =>\n (Object.keys(defaults) as Array<keyof TForm>)\n .filter((key) => fields.includes(key))\n .reduce(\n (carry, key) => {\n carry[key] = defaults[key]\n return carry\n },\n { ...data },\n ),\n )\n }\n },\n [setData, defaults],\n )\n\n const setError = useCallback(\n (fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) => {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<keyof TForm, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const clearErrors = useCallback(\n (...fields) => {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<keyof TForm>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const createSubmitMethod = (method) => (url, options) => {\n submit(method, url, options)\n }\n const get = useCallback(createSubmitMethod('get'), [submit])\n const post = useCallback(createSubmitMethod('post'), [submit])\n const put = useCallback(createSubmitMethod('put'), [submit])\n const patch = useCallback(createSubmitMethod('patch'), [submit])\n const deleteMethod = useCallback(createSubmitMethod('delete'), [submit])\n\n const cancel = useCallback(() => {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n }, [])\n\n const transformFunction = useCallback((callback) => {\n transform.current = callback\n }, [])\n\n return {\n data,\n setData: setDataFunction,\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform: transformFunction,\n setDefaults: setDefaultsFunction,\n reset,\n setError,\n clearErrors,\n submit,\n get,\n post,\n put,\n patch,\n delete: deleteMethod,\n cancel,\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n\n/** @deprecated use `useRemember` instead */\nexport function useRememberedState<State>(initialState: State, key?: string): [State, Dispatch<SetStateAction<State>>] {\n console.warn(\n 'The \"useRememberedState\" hook has been deprecated and will be removed in a future release. Use \"useRemember\" instead.',\n )\n return useRemember(initialState, key)\n}\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n"],
5
- "mappings": "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",
6
- "names": ["Router", "setupProgress", "createElement", "createHeadManager", "router", "createElement", "useEffect", "useMemo", "useState", "createContext", "headContext", "HeadContext_default", "createContext", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "useState", "headManager", "useMemo", "createHeadManager", "title", "useEffect", "router", "component", "page", "preserveState", "createElement", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "initialComponent", "App", "elements", "setupProgress", "body", "createElement", "React", "useContext", "useEffect", "useMemo", "Head", "children", "title", "headManager", "useContext", "HeadContext_default", "provider", "useMemo", "useEffect", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "mergeDataIntoQueryString", "router", "shouldIntercept", "createElement", "forwardRef", "useCallback", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "props", "ref", "visit", "event", "_href", "_data", "Link_default", "router", "isEqual", "useCallback", "useEffect", "useRef", "useState", "router", "useEffect", "useState", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "useRef", "rememberKey", "defaults", "setDefaults", "useState", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "useEffect", "submit", "useCallback", "method", "url", "options", "_options", "token", "visit", "event", "page", "router", "setDataFunction", "keyOrData", "maybeValue", "setDefaultsFunction", "fieldOrFields", "reset", "fields", "key", "carry", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "get", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "isEqual", "useContext", "usePage", "page", "useContext", "PageContext_default", "router", "Router"]
3
+ "sources": ["../src/index.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/HeadContext.ts", "../src/PageContext.ts", "../src/Deferred.ts", "../src/usePage.ts", "../src/Head.ts", "../src/Link.ts", "../src/useForm.ts", "../src/useRemember.ts", "../src/usePoll.ts", "../src/usePrefetch.ts", "../src/WhenVisible.ts"],
4
+ "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './Deferred'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './WhenVisible'\n", "import { Page, PageProps, PageResolver, router, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import { ReactChild, useEffect, useState } from 'react'\nimport usePage from './usePage'\n\ninterface DeferredProps {\n children: ReactChild\n fallback: ReactChild\n data: string | string[]\n}\n\nconst Deferred = ({ children, data, fallback }: DeferredProps) => {\n if (!data) {\n throw new Error('`<Deferred>` requires a `data` prop')\n }\n\n const [loaded, setLoaded] = useState(false)\n const pageProps = usePage().props\n const keys = Array.isArray(data) ? data : [data]\n\n useEffect(() => {\n setLoaded(keys.every((key) => pageProps[key] !== undefined))\n }, [pageProps, keys])\n\n return loaded ? children : fallback\n}\n\nDeferred.displayName = 'InertiaDeferred'\n\nexport default Deferred\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useEffect, useMemo, useRef, useState } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: (event: PendingVisit) => void\n onProgress?: (progress: Progress) => void\n onFinish?: (event: PendingVisit) => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n async?: boolean\n cacheFor?: number | string\n prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[]\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n async = false,\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n prefetch = false,\n cacheFor = 0,\n ...props\n },\n ref,\n ) => {\n const [inFlightCount, setInFlightCount] = useState(0)\n const hoverTimeout = useRef<number>()\n\n as = as.toLowerCase()\n method = method.toLowerCase() as Method\n const [_href, _data] = mergeDataIntoQueryString(method, href || '', data, queryStringArrayFormat)\n href = _href\n data = _data\n\n const baseParams = {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n async,\n }\n\n const visitParams = {\n ...baseParams,\n onCancelToken,\n onBefore,\n onStart(event) {\n setInFlightCount((count) => count + 1)\n onStart(event)\n },\n onProgress,\n onFinish(event) {\n setInFlightCount((count) => count - 1)\n onFinish(event)\n },\n onCancel,\n onSuccess,\n onError,\n }\n\n const doPrefetch = () => {\n router.prefetch(href, baseParams, { cacheFor: cacheForValue })\n }\n\n const prefetchModes: LinkPrefetchOption[] = useMemo(\n () => {\n if (prefetch === true) {\n return ['hover']\n }\n\n if (prefetch === false) {\n return []\n }\n\n if (Array.isArray(prefetch)) {\n return prefetch\n }\n\n return [prefetch]\n },\n Array.isArray(prefetch) ? prefetch : [prefetch],\n )\n\n const cacheForValue = useMemo(() => {\n if (cacheFor !== 0) {\n // If they've provided a value, respect it\n return cacheFor\n }\n\n if (prefetchModes.length === 1 && prefetchModes[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return 30_000\n }, [cacheFor, prefetchModes])\n\n useEffect(() => {\n return () => {\n clearTimeout(hoverTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (prefetchModes.includes('mount')) {\n setTimeout(() => doPrefetch())\n }\n }, prefetchModes)\n\n const regularEvents = {\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, visitParams)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseEnter: () => {\n hoverTimeout.current = window.setTimeout(() => {\n doPrefetch()\n }, 75)\n },\n onMouseLeave: () => {\n clearTimeout(hoverTimeout.current)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMouseDown: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n doPrefetch()\n }\n },\n onMouseUp: (event) => {\n event.preventDefault()\n router.visit(href, visitParams)\n },\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n // Let the mouseup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n if (method !== 'get') {\n as = 'button'\n }\n\n const elProps = {\n a: { href },\n button: { type: 'button' },\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(elProps[as] || {}),\n ref,\n ...(() => {\n if (prefetchModes.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n 'data-loading': inFlightCount > 0 ? '' : undefined,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import { FormDataConvertible, Method, Progress, router, VisitOptions } from '@inertiajs/core'\nimport isEqual from 'lodash.isequal'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype setDataByObject<TForm> = (data: TForm) => void\ntype setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void\ntype FormDataType = object\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: keyof TForm, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: (keyof TForm)[]) => void\n clearErrors: (...fields: (keyof TForm)[]) => void\n setError(field: keyof TForm, value: string): void\n setError(errors: Record<keyof TForm, string>): void\n submit: (method: Method, url: string, options?: VisitOptions) => void\n get: (url: string, options?: VisitOptions) => void\n patch: (url: string, options?: VisitOptions) => void\n post: (url: string, options?: VisitOptions) => void\n put: (url: string, options?: VisitOptions) => void\n delete: (url: string, options?: VisitOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<keyof TForm, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<keyof TForm, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n let transform = (data) => data\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (method, url, options = {}) => {\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish()\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform(data) })\n } else {\n router[method](url, transform(data), _options)\n }\n },\n [data, setErrors, transform],\n )\n\n return {\n data,\n setData(keyOrData: keyof TForm | Function | TForm, maybeValue?: TForm[keyof TForm]) {\n if (typeof keyOrData === 'string') {\n setData((data) => ({ ...data, [keyOrData]: maybeValue }))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform(callback) {\n transform = callback\n },\n setDefaults(fieldOrFields?: keyof TForm | Partial<TForm>, maybeValue?: FormDataConvertible) {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => ({\n ...defaults,\n ...(typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : (fieldOrFields as TForm)),\n }))\n }\n },\n reset(...fields) {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData(\n (Object.keys(defaults) as Array<keyof TForm>)\n .filter((key) => fields.includes(key))\n .reduce(\n (carry, key) => {\n carry[key] = defaults[key]\n return carry\n },\n { ...data },\n ),\n )\n }\n },\n setError(fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<keyof TForm, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n clearErrors(...fields) {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<keyof TForm>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n submit,\n get(url, options) {\n submit('get', url, options)\n },\n post(url, options) {\n submit('post', url, options)\n },\n put(url, options) {\n submit('put', url, options)\n },\n patch(url, options) {\n submit('patch', url, options)\n },\n delete(url, options) {\n submit('delete', url, options)\n },\n cancel() {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n },\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { useEffect, useRef } from 'react'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n) {\n const pollRef = useRef(\n router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n }),\n )\n\n useEffect(() => {\n if (options.autoStart ?? true) {\n pollRef.current.start()\n }\n\n return () => pollRef.current.stop()\n }, [])\n\n return {\n stop: pollRef.current.stop,\n start: pollRef.current.start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { useEffect, useState } from 'react'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: number | null\n isPrefetching: boolean\n isPrefetched: boolean\n flush: () => void\n} {\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n const [lastUpdatedAt, setLastUpdatedAt] = useState<number | null>(cached?.staleTimestamp || null)\n const [isPrefetching, setIsPrefetching] = useState(inFlight !== null)\n const [isPrefetched, setIsPrefetched] = useState(cached !== null)\n\n useEffect(() => {\n const onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(true)\n }\n })\n\n const onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(false)\n setIsPrefetched(true)\n setLastUpdatedAt(e.detail.fetchedAt)\n }\n })\n\n return () => {\n onPrefetchedListener()\n onPrefetchingListener()\n }\n }, [])\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { createElement, ReactChild, useEffect, useRef, useState } from 'react'\n\ninterface WhenVisibleProps {\n children: ReactChild\n fallback: ReactChild\n data: string | string[]\n params?: ReloadOptions\n buffer?: number\n as?: string\n always?: boolean\n}\n\nconst WhenVisible = ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps) => {\n always = always ?? false\n as = as ?? 'div'\n fallback = fallback ?? null\n\n const [loaded, setLoaded] = useState(false)\n const [fetching, setFetching] = useState(false)\n const observer = useRef<IntersectionObserver | null>(null)\n const ref = useRef<HTMLDivElement>(null)\n\n const getReloadParams = (): Partial<ReloadOptions> => {\n if (data) {\n return {\n only: (Array.isArray(data) ? data : [data]) as string[],\n }\n }\n\n if (!params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return params\n }\n\n useEffect(() => {\n if (!ref.current) {\n return\n }\n\n observer.current = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!always) {\n observer.current?.disconnect()\n }\n\n if (fetching) {\n return\n }\n\n setFetching(true)\n\n const reloadParams = getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n setFetching(true)\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n setLoaded(true)\n setFetching(false)\n reloadParams.onFinish?.(e)\n },\n })\n },\n {\n rootMargin: `${buffer || 0}px`,\n },\n )\n\n observer.current.observe(ref.current)\n\n return () => {\n observer.current?.disconnect()\n }\n }, [ref])\n\n if (always || !loaded) {\n return createElement(\n as,\n {\n props: null,\n ref,\n },\n loaded ? children : fallback,\n )\n }\n\n return loaded ? children : null\n}\n\nWhenVisible.displayName = 'InertiaWhenVisible'\n\nexport default WhenVisible\n"],
5
+ "mappings": "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",
6
+ "names": ["Router", "router", "setupProgress", "createElement", "createHeadManager", "router", "createElement", "useEffect", "useMemo", "useState", "createContext", "headContext", "HeadContext_default", "createContext", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "useState", "headManager", "useMemo", "createHeadManager", "title", "useEffect", "router", "component", "page", "preserveState", "createElement", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "router", "initialComponent", "App", "elements", "setupProgress", "body", "createElement", "useEffect", "useState", "useContext", "usePage", "page", "useContext", "PageContext_default", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "useState", "pageProps", "usePage", "keys", "useEffect", "key", "Deferred_default", "React", "useContext", "useEffect", "useMemo", "Head", "children", "title", "headManager", "useContext", "HeadContext_default", "provider", "useMemo", "useEffect", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "mergeDataIntoQueryString", "router", "shouldIntercept", "createElement", "forwardRef", "useEffect", "useMemo", "useRef", "useState", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "async", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "prefetch", "cacheFor", "props", "ref", "inFlightCount", "setInFlightCount", "hoverTimeout", "_href", "_data", "baseParams", "visitParams", "event", "count", "doPrefetch", "cacheForValue", "prefetchModes", "regularEvents", "prefetchHoverEvents", "prefetchClickEvents", "Link_default", "router", "isEqual", "useCallback", "useEffect", "useRef", "useState", "router", "useEffect", "useState", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "useRef", "rememberKey", "defaults", "setDefaults", "useState", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "useEffect", "submit", "useCallback", "method", "url", "options", "_options", "token", "visit", "event", "page", "router", "keyOrData", "maybeValue", "isEqual", "callback", "fieldOrFields", "fields", "key", "carry", "newErrors", "field", "router", "useEffect", "useRef", "usePoll", "interval", "requestOptions", "options", "pollRef", "router", "useEffect", "useState", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "onPrefetchedListener", "router", "createElement", "useEffect", "useRef", "useState", "WhenVisible", "children", "data", "params", "buffer", "as", "always", "fallback", "loaded", "setLoaded", "fetching", "setFetching", "observer", "ref", "getReloadParams", "entries", "reloadParams", "e", "WhenVisible_default", "router", "Router"]
7
7
  }
package/dist/index.js CHANGED
@@ -1,6 +1,2 @@
1
- var Fe=Object.create;var U=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var Ce=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var be=(r,s)=>{for(var n in s)U(r,n,{get:s[n],enumerable:!0})},X=(r,s,n,u)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of he(s))!ke.call(r,a)&&a!==n&&U(r,a,{get:()=>s[a],enumerable:!(u=ve(s,a))||u.enumerable});return r};var Y=(r,s,n)=>(n=r!=null?Fe(Ce(r)):{},X(s||!r||!r.__esModule?U(n,"default",{value:r,enumerable:!0}):n,r)),xe=r=>X(U({},"__esModule",{value:!0}),r);var Ae={};be(Ae,{Head:()=>ae,Link:()=>ie,createInertiaApp:()=>q,router:()=>Ie,useForm:()=>z,usePage:()=>G,useRemember:()=>A});module.exports=xe(Ae);var ce=require("@inertiajs/core");var oe=require("@inertiajs/core"),ne=require("react");var B=require("@inertiajs/core"),F=require("react");var Z=require("react"),ee=(0,Z.createContext)(void 0);ee.displayName="InertiaHeadContext";var O=ee;var te=require("react"),re=(0,te.createContext)(void 0);re.displayName="InertiaPageContext";var L=re;function V({children:r,initialPage:s,initialComponent:n,resolveComponent:u,titleCallback:a,onHeadUpdate:v}){let[f,P]=(0,F.useState)({component:n||null,page:s,key:null}),l=(0,F.useMemo)(()=>(0,B.createHeadManager)(typeof window>"u",a||(d=>d),v||(()=>{})),[]);if((0,F.useEffect)(()=>{B.router.init({initialPage:s,resolveComponent:u,swapComponent:async({component:d,page:e,preserveState:c})=>{P(o=>({component:d,page:e,key:c?o.key:Date.now()}))}}),B.router.on("navigate",()=>l.forceUpdate())},[]),!f.component)return(0,F.createElement)(O.Provider,{value:l},(0,F.createElement)(L.Provider,{value:f.page},null));let m=r||(({Component:d,props:e,key:c})=>{let o=(0,F.createElement)(d,{key:c,...e});return typeof d.layout=="function"?d.layout(o):Array.isArray(d.layout)?d.layout.concat(o).reverse().reduce((y,S)=>(0,F.createElement)(S,{children:y,...e})):o});return(0,F.createElement)(O.Provider,{value:l},(0,F.createElement)(L.Provider,{value:f.page},m({Component:f.component,key:f.key,props:f.page.props})))}V.displayName="Inertia";async function q({id:r="app",resolve:s,setup:n,title:u,progress:a={},page:v,render:f}){let P=typeof window>"u",l=P?null:document.getElementById(r),m=v||JSON.parse(l.dataset.page),d=o=>Promise.resolve(s(o)).then(y=>y.default||y),e=[],c=await d(m.component).then(o=>n({el:l,App:V,props:{initialPage:m,initialComponent:o,resolveComponent:d,titleCallback:u,onHeadUpdate:P?y=>e=y:null}}));if(!P&&a&&(0,oe.setupProgress)(a),P){let o=await f((0,ne.createElement)("div",{id:r,"data-page":JSON.stringify(m)},c));return{head:e,body:o}}}var k=Y(require("react"),1);var Re=function({children:r,title:s}){let n=(0,k.useContext)(O),u=(0,k.useMemo)(()=>n.createProvider(),[n]);(0,k.useEffect)(()=>()=>{u.disconnect()},[u]);function a(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function v(e){let c=Object.keys(e.props).reduce((o,y)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(y))return o;let S=e.props[y];return S===""?o+` ${y}`:o+` ${y}="${S}"`},"");return`<${e.type}${c}>`}function f(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((c,o)=>c+P(o),"")}function P(e){let c=v(e);return e.props.children&&(c+=f(e)),e.props.dangerouslySetInnerHTML&&(c+=e.props.dangerouslySetInnerHTML.__html),a(e)||(c+=`</${e.type}>`),c}function l(e){return k.default.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function m(e){return P(l(e))}function d(e){let c=k.default.Children.toArray(e).filter(o=>o).map(o=>m(o));return s&&!c.find(o=>o.startsWith("<title"))&&c.push(`<title inertia>${s}</title>`),c}return u.update(d(r)),null},ae=Re;var R=require("@inertiajs/core"),I=require("react"),b=()=>{},se=(0,I.forwardRef)(({children:r,as:s="a",data:n={},href:u,method:a="get",preserveScroll:v=!1,preserveState:f=null,replace:P=!1,only:l=[],except:m=[],headers:d={},queryStringArrayFormat:e="brackets",onClick:c=b,onCancelToken:o=b,onBefore:y=b,onStart:S=b,onProgress:N=b,onFinish:x=b,onCancel:$=b,onSuccess:E=b,onError:j=b,...D},M)=>{let C=(0,I.useCallback)(H=>{c(H),(0,R.shouldIntercept)(H.nativeEvent)&&(H.preventDefault(),R.router.visit(u,{data:n,method:a,preserveScroll:v,preserveState:f??a!=="get",replace:P,only:l,except:m,headers:d,onCancelToken:o,onBefore:y,onStart:S,onProgress:N,onFinish:x,onCancel:$,onSuccess:E,onError:j}))},[n,u,a,v,f,P,l,m,d,c,o,y,S,N,x,$,E,j]);s=s.toLowerCase(),a=a.toLowerCase();let[_,W]=(0,R.mergeDataIntoQueryString)(a,u||"",n,e);return u=_,n=W,s==="a"&&a!=="get"&&console.warn(`Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.
2
-
3
- Please specify a more appropriate element using the "as" attribute. For example:
4
-
5
- <Link href="${u}" method="${a}" as="button">...</Link>`),(0,I.createElement)(s,{...D,...s==="a"?{href:u}:{},ref:M,onClick:C},r)});se.displayName="InertiaLink";var ie=se;var Q=require("@inertiajs/core"),pe=Y(require("lodash.isequal"),1),i=require("react");var J=require("@inertiajs/core"),K=require("react");function A(r,s){let[n,u]=(0,K.useState)(()=>{let a=J.router.restore(s);return a!==void 0?a:r});return(0,K.useEffect)(()=>{J.router.remember(n,s)},[n,s]),[n,u]}function z(r,s){let n=(0,i.useRef)(null),u=typeof r=="string"?r:null,[a,v]=(0,i.useState)((typeof r=="string"?s:r)||{}),f=(0,i.useRef)(null),P=(0,i.useRef)(null),[l,m]=u?A(a,`${u}:data`):(0,i.useState)(a),[d,e]=u?A({},`${u}:errors`):(0,i.useState)({}),[c,o]=(0,i.useState)(!1),[y,S]=(0,i.useState)(!1),[N,x]=(0,i.useState)(null),[$,E]=(0,i.useState)(!1),[j,D]=(0,i.useState)(!1),M=(0,i.useRef)(p=>p);(0,i.useEffect)(()=>(n.current=!0,()=>{n.current=!1}),[]);let C=(0,i.useCallback)((p,T,t={})=>{let h={...t,onCancelToken:g=>{if(f.current=g,t.onCancelToken)return t.onCancelToken(g)},onBefore:g=>{if(E(!1),D(!1),clearTimeout(P.current),t.onBefore)return t.onBefore(g)},onStart:g=>{if(S(!0),t.onStart)return t.onStart(g)},onProgress:g=>{if(x(g),t.onProgress)return t.onProgress(g)},onSuccess:g=>{if(n.current&&(S(!1),x(null),e({}),o(!1),E(!0),D(!0),P.current=setTimeout(()=>{n.current&&D(!1)},2e3)),t.onSuccess)return t.onSuccess(g)},onError:g=>{if(n.current&&(S(!1),x(null),e(g),o(!0)),t.onError)return t.onError(g)},onCancel:()=>{if(n.current&&(S(!1),x(null)),t.onCancel)return t.onCancel()},onFinish:()=>{if(n.current&&(S(!1),x(null)),f.current=null,t.onFinish)return t.onFinish()}};p==="delete"?Q.router.delete(T,{...h,data:M.current(l)}):Q.router[p](T,M.current(l),h)},[l,e]),_=(0,i.useCallback)((p,T)=>{m(typeof p=="string"?t=>({...t,[p]:T}):typeof p=="function"?t=>p(t):p)},[m]),W=(0,i.useCallback)((p,T)=>{v(typeof p>"u"?()=>l:t=>({...t,...typeof p=="string"?{[p]:T}:p}))},[l,v]),H=(0,i.useCallback)((...p)=>{p.length===0?m(a):m(T=>Object.keys(a).filter(t=>p.includes(t)).reduce((t,h)=>(t[h]=a[h],t),{...T}))},[m,a]),le=(0,i.useCallback)((p,T)=>{e(t=>{let h={...t,...typeof p=="string"?{[p]:T}:p};return o(Object.keys(h).length>0),h})},[e,o]),de=(0,i.useCallback)((...p)=>{e(T=>{let t=Object.keys(T).reduce((h,g)=>({...h,...p.length>0&&!p.includes(g)?{[g]:T[g]}:{}}),{});return o(Object.keys(t).length>0),t})},[e,o]),w=p=>(T,t)=>{C(p,T,t)},fe=(0,i.useCallback)(w("get"),[C]),me=(0,i.useCallback)(w("post"),[C]),ge=(0,i.useCallback)(w("put"),[C]),ye=(0,i.useCallback)(w("patch"),[C]),Pe=(0,i.useCallback)(w("delete"),[C]),Te=(0,i.useCallback)(()=>{f.current&&f.current.cancel()},[]),Se=(0,i.useCallback)(p=>{M.current=p},[]);return{data:l,setData:_,isDirty:!(0,pe.default)(l,a),errors:d,hasErrors:c,processing:y,progress:N,wasSuccessful:$,recentlySuccessful:j,transform:Se,setDefaults:W,reset:H,setError:le,clearErrors:de,submit:C,get:fe,post:me,put:ge,patch:ye,delete:Pe,cancel:Te}}var ue=require("react");function G(){let r=(0,ue.useContext)(L);if(!r)throw new Error("usePage must be used within the Inertia component");return r}var Ie=ce.router;
1
+ var Oe=Object.create;var W=Object.defineProperty;var De=Object.getOwnPropertyDescriptor;var Me=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,He=Object.prototype.hasOwnProperty;var Ve=(r,t)=>{for(var o in t)W(r,o,{get:t[o],enumerable:!0})},pe=(r,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Me(t))!He.call(r,s)&&s!==o&&W(r,s,{get:()=>t[s],enumerable:!(a=De(t,s))||a.enumerable});return r};var ue=(r,t,o)=>(o=r!=null?Oe(Le(r)):{},pe(t||!r||!r.__esModule?W(o,"default",{value:r,enumerable:!0}):o,r)),Be=r=>pe(W({},"__esModule",{value:!0}),r);var $e={};Ve($e,{Deferred:()=>ye,Head:()=>he,Link:()=>Te,WhenVisible:()=>ke,createInertiaApp:()=>Z,router:()=>Ue,useForm:()=>re,usePage:()=>$,usePoll:()=>oe,usePrefetch:()=>ne,useRemember:()=>M});module.exports=Be($e);var Re=require("@inertiajs/core");var _=require("@inertiajs/core"),me=require("react");var U=require("@inertiajs/core"),b=require("react");var le=require("react"),ce=(0,le.createContext)(void 0);ce.displayName="InertiaHeadContext";var B=ce;var fe=require("react"),de=(0,fe.createContext)(void 0);de.displayName="InertiaPageContext";var N=de;function K({children:r,initialPage:t,initialComponent:o,resolveComponent:a,titleCallback:s,onHeadUpdate:P}){let[l,d]=(0,b.useState)({component:o||null,page:t,key:null}),m=(0,b.useMemo)(()=>(0,U.createHeadManager)(typeof window>"u",s||(f=>f),P||(()=>{})),[]);if((0,b.useEffect)(()=>{U.router.init({initialPage:t,resolveComponent:a,swapComponent:async({component:f,page:e,preserveState:c})=>{d(i=>({component:f,page:e,key:c?i.key:Date.now()}))}}),U.router.on("navigate",()=>m.forceUpdate())},[]),!l.component)return(0,b.createElement)(B.Provider,{value:m},(0,b.createElement)(N.Provider,{value:l.page},null));let y=r||(({Component:f,props:e,key:c})=>{let i=(0,b.createElement)(f,{key:c,...e});return typeof f.layout=="function"?f.layout(i):Array.isArray(f.layout)?f.layout.concat(i).reverse().reduce((h,T)=>(0,b.createElement)(T,{children:h,...e})):i});return(0,b.createElement)(B.Provider,{value:m},(0,b.createElement)(N.Provider,{value:l.page},y({Component:l.component,key:l.key,props:l.page.props})))}K.displayName="Inertia";async function Z({id:r="app",resolve:t,setup:o,title:a,progress:s={},page:P,render:l}){let d=typeof window>"u",m=d?null:document.getElementById(r),y=P||JSON.parse(m.dataset.page),f=i=>Promise.resolve(t(i)).then(h=>h.default||h),e=[],c=await Promise.all([f(y.component),_.router.decryptHistory().catch(()=>{})]).then(([i])=>o({el:m,App:K,props:{initialPage:y,initialComponent:i,resolveComponent:f,titleCallback:a,onHeadUpdate:d?h=>e=h:null}}));if(!d&&s&&(0,_.setupProgress)(s),d){let i=await l((0,me.createElement)("div",{id:r,"data-page":JSON.stringify(y)},c));return{head:e,body:i}}}var q=require("react");var ge=require("react");function $(){let r=(0,ge.useContext)(N);if(!r)throw new Error("usePage must be used within the Inertia component");return r}var Pe=({children:r,data:t,fallback:o})=>{if(!t)throw new Error("`<Deferred>` requires a `data` prop");let[a,s]=(0,q.useState)(!1),P=$().props,l=Array.isArray(t)?t:[t];return(0,q.useEffect)(()=>{s(l.every(d=>P[d]!==void 0))},[P,l]),a?r:o};Pe.displayName="InertiaDeferred";var ye=Pe;var A=ue(require("react"),1);var Ne=function({children:r,title:t}){let o=(0,A.useContext)(B),a=(0,A.useMemo)(()=>o.createProvider(),[o]);(0,A.useEffect)(()=>()=>{a.disconnect()},[a]);function s(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function P(e){let c=Object.keys(e.props).reduce((i,h)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(h))return i;let T=e.props[h];return T===""?i+` ${h}`:i+` ${h}="${T}"`},"");return`<${e.type}${c}>`}function l(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((c,i)=>c+d(i),"")}function d(e){let c=P(e);return e.props.children&&(c+=l(e)),e.props.dangerouslySetInnerHTML&&(c+=e.props.dangerouslySetInnerHTML.__html),s(e)||(c+=`</${e.type}>`),c}function m(e){return A.default.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function y(e){return d(m(e))}function f(e){let c=A.default.Children.toArray(e).filter(i=>i).map(i=>y(i));return t&&!c.find(i=>i.startsWith("<title"))&&c.push(`<title inertia>${t}</title>`),c}return a.update(f(r)),null},he=Ne;var x=require("@inertiajs/core"),F=require("react"),E=()=>{},Se=(0,F.forwardRef)(({children:r,as:t="a",data:o={},href:a,method:s="get",preserveScroll:P=!1,preserveState:l=null,replace:d=!1,only:m=[],except:y=[],headers:f={},queryStringArrayFormat:e="brackets",async:c=!1,onClick:i=E,onCancelToken:h=E,onBefore:T=E,onStart:w=E,onProgress:O=E,onFinish:Y=E,onCancel:j=E,onSuccess:z=E,onError:V=E,prefetch:C=!1,cacheFor:k=0,...n},u)=>{let[p,R]=(0,F.useState)(0),g=(0,F.useRef)();t=t.toLowerCase(),s=s.toLowerCase();let[xe,Ie]=(0,x.mergeDataIntoQueryString)(s,a||"",o,e);a=xe,o=Ie;let se={data:o,method:s,preserveScroll:P,preserveState:l??s!=="get",replace:d,only:m,except:y,headers:f,async:c},ae={...se,onCancelToken:h,onBefore:T,onStart(v){R(X=>X+1),w(v)},onProgress:O,onFinish(v){R(X=>X-1),Y(v)},onCancel:j,onSuccess:z,onError:V},G=()=>{x.router.prefetch(a,se,{cacheFor:Ae})},D=(0,F.useMemo)(()=>C===!0?["hover"]:C===!1?[]:Array.isArray(C)?C:[C],Array.isArray(C)?C:[C]),Ae=(0,F.useMemo)(()=>k!==0?k:D.length===1&&D[0]==="click"?0:3e4,[k,D]);(0,F.useEffect)(()=>()=>{clearTimeout(g.current)},[]),(0,F.useEffect)(()=>{D.includes("mount")&&setTimeout(()=>G())},D);let ie={onClick:v=>{i(v),(0,x.shouldIntercept)(v)&&(v.preventDefault(),x.router.visit(a,ae))}},Ee={onMouseEnter:()=>{g.current=window.setTimeout(()=>{G()},75)},onMouseLeave:()=>{clearTimeout(g.current)},onClick:ie.onClick},we={onMouseDown:v=>{(0,x.shouldIntercept)(v)&&(v.preventDefault(),G())},onMouseUp:v=>{v.preventDefault(),x.router.visit(a,ae)},onClick:v=>{i(v),(0,x.shouldIntercept)(v)&&v.preventDefault()}};return s!=="get"&&(t="button"),(0,F.createElement)(t,{...n,...{a:{href:a},button:{type:"button"}}[t]||{},ref:u,...(()=>D.includes("hover")?Ee:D.includes("click")?we:ie)(),"data-loading":p>0?"":void 0},r)});Se.displayName="InertiaLink";var Te=Se;var te=require("@inertiajs/core"),ve=ue(require("lodash.isequal"),1),S=require("react");var ee=require("@inertiajs/core"),J=require("react");function M(r,t){let[o,a]=(0,J.useState)(()=>{let s=ee.router.restore(t);return s!==void 0?s:r});return(0,J.useEffect)(()=>{ee.router.remember(o,t)},[o,t]),[o,a]}function re(r,t){let o=(0,S.useRef)(null),a=typeof r=="string"?r:null,[s,P]=(0,S.useState)((typeof r=="string"?t:r)||{}),l=(0,S.useRef)(null),d=(0,S.useRef)(null),[m,y]=a?M(s,`${a}:data`):(0,S.useState)(s),[f,e]=a?M({},`${a}:errors`):(0,S.useState)({}),[c,i]=(0,S.useState)(!1),[h,T]=(0,S.useState)(!1),[w,O]=(0,S.useState)(null),[Y,j]=(0,S.useState)(!1),[z,V]=(0,S.useState)(!1),C=n=>n;(0,S.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]);let k=(0,S.useCallback)((n,u,p={})=>{let R={...p,onCancelToken:g=>{if(l.current=g,p.onCancelToken)return p.onCancelToken(g)},onBefore:g=>{if(j(!1),V(!1),clearTimeout(d.current),p.onBefore)return p.onBefore(g)},onStart:g=>{if(T(!0),p.onStart)return p.onStart(g)},onProgress:g=>{if(O(g),p.onProgress)return p.onProgress(g)},onSuccess:g=>{if(o.current&&(T(!1),O(null),e({}),i(!1),j(!0),V(!0),d.current=setTimeout(()=>{o.current&&V(!1)},2e3)),p.onSuccess)return p.onSuccess(g)},onError:g=>{if(o.current&&(T(!1),O(null),e(g),i(!0)),p.onError)return p.onError(g)},onCancel:()=>{if(o.current&&(T(!1),O(null)),p.onCancel)return p.onCancel()},onFinish:()=>{if(o.current&&(T(!1),O(null)),l.current=null,p.onFinish)return p.onFinish()}};n==="delete"?te.router.delete(u,{...R,data:C(m)}):te.router[n](u,C(m),R)},[m,e,C]);return{data:m,setData(n,u){y(typeof n=="string"?p=>({...p,[n]:u}):typeof n=="function"?p=>n(p):n)},isDirty:!(0,ve.default)(m,s),errors:f,hasErrors:c,processing:h,progress:w,wasSuccessful:Y,recentlySuccessful:z,transform(n){C=n},setDefaults(n,u){P(typeof n>"u"?()=>m:p=>({...p,...typeof n=="string"?{[n]:u}:n}))},reset(...n){n.length===0?y(s):y(Object.keys(s).filter(u=>n.includes(u)).reduce((u,p)=>(u[p]=s[p],u),{...m}))},setError(n,u){e(p=>{let R={...p,...typeof n=="string"?{[n]:u}:n};return i(Object.keys(R).length>0),R})},clearErrors(...n){e(u=>{let p=Object.keys(u).reduce((R,g)=>({...R,...n.length>0&&!n.includes(g)?{[g]:u[g]}:{}}),{});return i(Object.keys(p).length>0),p})},submit:k,get(n,u){k("get",n,u)},post(n,u){k("post",n,u)},put(n,u){k("put",n,u)},patch(n,u){k("patch",n,u)},delete(n,u){k("delete",n,u)},cancel(){l.current&&l.current.cancel()}}}var Fe=require("@inertiajs/core"),Q=require("react");function oe(r,t={},o={keepAlive:!1,autoStart:!0}){let a=(0,Q.useRef)(Fe.router.poll(r,t,{...o,autoStart:!1}));return(0,Q.useEffect)(()=>((o.autoStart??!0)&&a.current.start(),()=>a.current.stop()),[]),{stop:a.current.stop,start:a.current.start}}var L=require("@inertiajs/core"),H=require("react");function ne(r={}){let t=typeof window>"u"?null:L.router.getCached(window.location.pathname,r),o=typeof window>"u"?null:L.router.getPrefetching(window.location.pathname,r),[a,s]=(0,H.useState)(t?.staleTimestamp||null),[P,l]=(0,H.useState)(o!==null),[d,m]=(0,H.useState)(t!==null);return(0,H.useEffect)(()=>{let y=L.router.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&l(!0)}),f=L.router.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(l(!1),m(!0),s(e.detail.fetchedAt))});return()=>{f(),y()}},[]),{lastUpdatedAt:a,isPrefetching:P,isPrefetched:d,flush:()=>L.router.flush(window.location.pathname,r)}}var Ce=require("@inertiajs/core"),I=require("react"),be=({children:r,data:t,params:o,buffer:a,as:s,always:P,fallback:l})=>{P=P??!1,s=s??"div",l=l??null;let[d,m]=(0,I.useState)(!1),[y,f]=(0,I.useState)(!1),e=(0,I.useRef)(null),c=(0,I.useRef)(null),i=()=>{if(t)return{only:Array.isArray(t)?t:[t]};if(!o)throw new Error("You must provide either a `data` or `params` prop.");return o};return(0,I.useEffect)(()=>{if(c.current)return e.current=new IntersectionObserver(h=>{if(!h[0].isIntersecting||(P||e.current?.disconnect(),y))return;f(!0);let T=i();Ce.router.reload({...T,onStart:w=>{f(!0),T.onStart?.(w)},onFinish:w=>{m(!0),f(!1),T.onFinish?.(w)}})},{rootMargin:`${a||0}px`}),e.current.observe(c.current),()=>{e.current?.disconnect()}},[c]),P||!d?(0,I.createElement)(s,{props:null,ref:c},d?r:l):d?r:null};be.displayName="InertiaWhenVisible";var ke=be;var Ue=Re.router;
6
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/HeadContext.ts", "../src/PageContext.ts", "../src/Head.ts", "../src/Link.ts", "../src/useForm.ts", "../src/useRemember.ts", "../src/usePage.ts"],
4
- "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as useRemember } from './useRemember'\n", "import { Page, PageProps, PageResolver, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await resolveComponent(initialPage.component).then((initialComponent) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n mergeDataIntoQueryString,\n Method,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useCallback } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: () => void\n onProgress?: (progress: Progress) => void\n onFinish?: () => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n ...props\n },\n ref,\n ) => {\n const visit = useCallback(\n (event: React.MouseEvent) => {\n onClick(event)\n\n if (shouldIntercept(event.nativeEvent)) {\n event.preventDefault()\n\n router.visit(href, {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n })\n }\n },\n [\n data,\n href,\n method,\n preserveScroll,\n preserveState,\n replace,\n only,\n except,\n headers,\n onClick,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n ],\n )\n\n as = as.toLowerCase()\n method = method.toLowerCase() as Method\n const [_href, _data] = mergeDataIntoQueryString(method, href || '', data, queryStringArrayFormat)\n href = _href\n data = _data\n\n if (as === 'a' && method !== 'get') {\n console.warn(\n `Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes \"Open Link in New Tab/Window\" accessibility issues.\\n\\nPlease specify a more appropriate element using the \"as\" attribute. For example:\\n\\n<Link href=\"${href}\" method=\"${method}\" as=\"button\">...</Link>`,\n )\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(as === 'a' ? { href } : {}),\n ref,\n onClick: visit,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import { FormDataConvertible, Method, Progress, router, VisitOptions } from '@inertiajs/core'\nimport isEqual from 'lodash.isequal'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype setDataByObject<TForm> = (data: TForm) => void\ntype setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void\ntype FormDataType = object\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: keyof TForm, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: (keyof TForm)[]) => void\n clearErrors: (...fields: (keyof TForm)[]) => void\n setError(field: keyof TForm, value: string): void\n setError(errors: Record<keyof TForm, string>): void\n submit: (method: Method, url: string, options?: VisitOptions) => void\n get: (url: string, options?: VisitOptions) => void\n patch: (url: string, options?: VisitOptions) => void\n post: (url: string, options?: VisitOptions) => void\n put: (url: string, options?: VisitOptions) => void\n delete: (url: string, options?: VisitOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<keyof TForm, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<keyof TForm, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n const transform = useRef((data) => data)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (method, url, options = {}) => {\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish()\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform.current(data) })\n } else {\n router[method](url, transform.current(data), _options)\n }\n },\n [data, setErrors],\n )\n\n const setDataFunction = useCallback(\n (keyOrData: keyof TForm | Function | TForm, maybeValue?: TForm[keyof TForm]) => {\n if (typeof keyOrData === 'string') {\n setData((data) => ({ ...data, [keyOrData]: maybeValue }))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n [setData],\n )\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: keyof TForm | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => ({\n ...defaults,\n ...(typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : (fieldOrFields as TForm)),\n }))\n }\n },\n [data, setDefaults],\n )\n\n const reset = useCallback(\n (...fields) => {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData((data) =>\n (Object.keys(defaults) as Array<keyof TForm>)\n .filter((key) => fields.includes(key))\n .reduce(\n (carry, key) => {\n carry[key] = defaults[key]\n return carry\n },\n { ...data },\n ),\n )\n }\n },\n [setData, defaults],\n )\n\n const setError = useCallback(\n (fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) => {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<keyof TForm, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const clearErrors = useCallback(\n (...fields) => {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<keyof TForm>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const createSubmitMethod = (method) => (url, options) => {\n submit(method, url, options)\n }\n const get = useCallback(createSubmitMethod('get'), [submit])\n const post = useCallback(createSubmitMethod('post'), [submit])\n const put = useCallback(createSubmitMethod('put'), [submit])\n const patch = useCallback(createSubmitMethod('patch'), [submit])\n const deleteMethod = useCallback(createSubmitMethod('delete'), [submit])\n\n const cancel = useCallback(() => {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n }, [])\n\n const transformFunction = useCallback((callback) => {\n transform.current = callback\n }, [])\n\n return {\n data,\n setData: setDataFunction,\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform: transformFunction,\n setDefaults: setDefaultsFunction,\n reset,\n setError,\n clearErrors,\n submit,\n get,\n post,\n put,\n patch,\n delete: deleteMethod,\n cancel,\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n\n/** @deprecated use `useRemember` instead */\nexport function useRememberedState<State>(initialState: State, key?: string): [State, Dispatch<SetStateAction<State>>] {\n console.warn(\n 'The \"useRememberedState\" hook has been deprecated and will be removed in a future release. Use \"useRemember\" instead.',\n )\n return useRemember(initialState, key)\n}\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "Head_default", "Link_default", "createInertiaApp", "router", "useForm", "usePage", "useRemember", "__toCommonJS", "import_core", "import_core", "import_react", "import_core", "import_react", "import_react", "headContext", "HeadContext_default", "import_react", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "headManager", "title", "component", "page", "preserveState", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "initialComponent", "App", "elements", "body", "import_react", "Head", "children", "title", "headManager", "HeadContext_default", "provider", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "import_core", "import_react", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "props", "ref", "visit", "event", "_href", "_data", "Link_default", "import_core", "import_lodash", "import_react", "import_core", "import_react", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "rememberKey", "defaults", "setDefaults", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "submit", "method", "url", "options", "_options", "token", "visit", "event", "page", "setDataFunction", "keyOrData", "maybeValue", "setDefaultsFunction", "fieldOrFields", "reset", "fields", "key", "carry", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "get", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "isEqual", "import_react", "usePage", "page", "PageContext_default", "router", "Router"]
3
+ "sources": ["../src/index.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/HeadContext.ts", "../src/PageContext.ts", "../src/Deferred.ts", "../src/usePage.ts", "../src/Head.ts", "../src/Link.ts", "../src/useForm.ts", "../src/useRemember.ts", "../src/usePoll.ts", "../src/usePrefetch.ts", "../src/WhenVisible.ts"],
4
+ "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './Deferred'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './WhenVisible'\n", "import { Page, PageProps, PageResolver, router, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import { ReactChild, useEffect, useState } from 'react'\nimport usePage from './usePage'\n\ninterface DeferredProps {\n children: ReactChild\n fallback: ReactChild\n data: string | string[]\n}\n\nconst Deferred = ({ children, data, fallback }: DeferredProps) => {\n if (!data) {\n throw new Error('`<Deferred>` requires a `data` prop')\n }\n\n const [loaded, setLoaded] = useState(false)\n const pageProps = usePage().props\n const keys = Array.isArray(data) ? data : [data]\n\n useEffect(() => {\n setLoaded(keys.every((key) => pageProps[key] !== undefined))\n }, [pageProps, keys])\n\n return loaded ? children : fallback\n}\n\nDeferred.displayName = 'InertiaDeferred'\n\nexport default Deferred\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useEffect, useMemo, useRef, useState } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: (event: PendingVisit) => void\n onProgress?: (progress: Progress) => void\n onFinish?: (event: PendingVisit) => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n async?: boolean\n cacheFor?: number | string\n prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[]\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n async = false,\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n prefetch = false,\n cacheFor = 0,\n ...props\n },\n ref,\n ) => {\n const [inFlightCount, setInFlightCount] = useState(0)\n const hoverTimeout = useRef<number>()\n\n as = as.toLowerCase()\n method = method.toLowerCase() as Method\n const [_href, _data] = mergeDataIntoQueryString(method, href || '', data, queryStringArrayFormat)\n href = _href\n data = _data\n\n const baseParams = {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n async,\n }\n\n const visitParams = {\n ...baseParams,\n onCancelToken,\n onBefore,\n onStart(event) {\n setInFlightCount((count) => count + 1)\n onStart(event)\n },\n onProgress,\n onFinish(event) {\n setInFlightCount((count) => count - 1)\n onFinish(event)\n },\n onCancel,\n onSuccess,\n onError,\n }\n\n const doPrefetch = () => {\n router.prefetch(href, baseParams, { cacheFor: cacheForValue })\n }\n\n const prefetchModes: LinkPrefetchOption[] = useMemo(\n () => {\n if (prefetch === true) {\n return ['hover']\n }\n\n if (prefetch === false) {\n return []\n }\n\n if (Array.isArray(prefetch)) {\n return prefetch\n }\n\n return [prefetch]\n },\n Array.isArray(prefetch) ? prefetch : [prefetch],\n )\n\n const cacheForValue = useMemo(() => {\n if (cacheFor !== 0) {\n // If they've provided a value, respect it\n return cacheFor\n }\n\n if (prefetchModes.length === 1 && prefetchModes[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return 30_000\n }, [cacheFor, prefetchModes])\n\n useEffect(() => {\n return () => {\n clearTimeout(hoverTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (prefetchModes.includes('mount')) {\n setTimeout(() => doPrefetch())\n }\n }, prefetchModes)\n\n const regularEvents = {\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, visitParams)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseEnter: () => {\n hoverTimeout.current = window.setTimeout(() => {\n doPrefetch()\n }, 75)\n },\n onMouseLeave: () => {\n clearTimeout(hoverTimeout.current)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMouseDown: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n doPrefetch()\n }\n },\n onMouseUp: (event) => {\n event.preventDefault()\n router.visit(href, visitParams)\n },\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n // Let the mouseup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n if (method !== 'get') {\n as = 'button'\n }\n\n const elProps = {\n a: { href },\n button: { type: 'button' },\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(elProps[as] || {}),\n ref,\n ...(() => {\n if (prefetchModes.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n 'data-loading': inFlightCount > 0 ? '' : undefined,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import { FormDataConvertible, Method, Progress, router, VisitOptions } from '@inertiajs/core'\nimport isEqual from 'lodash.isequal'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype setDataByObject<TForm> = (data: TForm) => void\ntype setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void\ntype FormDataType = object\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: keyof TForm, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: (keyof TForm)[]) => void\n clearErrors: (...fields: (keyof TForm)[]) => void\n setError(field: keyof TForm, value: string): void\n setError(errors: Record<keyof TForm, string>): void\n submit: (method: Method, url: string, options?: VisitOptions) => void\n get: (url: string, options?: VisitOptions) => void\n patch: (url: string, options?: VisitOptions) => void\n post: (url: string, options?: VisitOptions) => void\n put: (url: string, options?: VisitOptions) => void\n delete: (url: string, options?: VisitOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<keyof TForm, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<keyof TForm, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n let transform = (data) => data\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (method, url, options = {}) => {\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish()\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform(data) })\n } else {\n router[method](url, transform(data), _options)\n }\n },\n [data, setErrors, transform],\n )\n\n return {\n data,\n setData(keyOrData: keyof TForm | Function | TForm, maybeValue?: TForm[keyof TForm]) {\n if (typeof keyOrData === 'string') {\n setData((data) => ({ ...data, [keyOrData]: maybeValue }))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform(callback) {\n transform = callback\n },\n setDefaults(fieldOrFields?: keyof TForm | Partial<TForm>, maybeValue?: FormDataConvertible) {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => ({\n ...defaults,\n ...(typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : (fieldOrFields as TForm)),\n }))\n }\n },\n reset(...fields) {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData(\n (Object.keys(defaults) as Array<keyof TForm>)\n .filter((key) => fields.includes(key))\n .reduce(\n (carry, key) => {\n carry[key] = defaults[key]\n return carry\n },\n { ...data },\n ),\n )\n }\n },\n setError(fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<keyof TForm, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n clearErrors(...fields) {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<keyof TForm>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n submit,\n get(url, options) {\n submit('get', url, options)\n },\n post(url, options) {\n submit('post', url, options)\n },\n put(url, options) {\n submit('put', url, options)\n },\n patch(url, options) {\n submit('patch', url, options)\n },\n delete(url, options) {\n submit('delete', url, options)\n },\n cancel() {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n },\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { useEffect, useRef } from 'react'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n) {\n const pollRef = useRef(\n router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n }),\n )\n\n useEffect(() => {\n if (options.autoStart ?? true) {\n pollRef.current.start()\n }\n\n return () => pollRef.current.stop()\n }, [])\n\n return {\n stop: pollRef.current.stop,\n start: pollRef.current.start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { useEffect, useState } from 'react'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: number | null\n isPrefetching: boolean\n isPrefetched: boolean\n flush: () => void\n} {\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n const [lastUpdatedAt, setLastUpdatedAt] = useState<number | null>(cached?.staleTimestamp || null)\n const [isPrefetching, setIsPrefetching] = useState(inFlight !== null)\n const [isPrefetched, setIsPrefetched] = useState(cached !== null)\n\n useEffect(() => {\n const onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(true)\n }\n })\n\n const onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(false)\n setIsPrefetched(true)\n setLastUpdatedAt(e.detail.fetchedAt)\n }\n })\n\n return () => {\n onPrefetchedListener()\n onPrefetchingListener()\n }\n }, [])\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { createElement, ReactChild, useEffect, useRef, useState } from 'react'\n\ninterface WhenVisibleProps {\n children: ReactChild\n fallback: ReactChild\n data: string | string[]\n params?: ReloadOptions\n buffer?: number\n as?: string\n always?: boolean\n}\n\nconst WhenVisible = ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps) => {\n always = always ?? false\n as = as ?? 'div'\n fallback = fallback ?? null\n\n const [loaded, setLoaded] = useState(false)\n const [fetching, setFetching] = useState(false)\n const observer = useRef<IntersectionObserver | null>(null)\n const ref = useRef<HTMLDivElement>(null)\n\n const getReloadParams = (): Partial<ReloadOptions> => {\n if (data) {\n return {\n only: (Array.isArray(data) ? data : [data]) as string[],\n }\n }\n\n if (!params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return params\n }\n\n useEffect(() => {\n if (!ref.current) {\n return\n }\n\n observer.current = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!always) {\n observer.current?.disconnect()\n }\n\n if (fetching) {\n return\n }\n\n setFetching(true)\n\n const reloadParams = getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n setFetching(true)\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n setLoaded(true)\n setFetching(false)\n reloadParams.onFinish?.(e)\n },\n })\n },\n {\n rootMargin: `${buffer || 0}px`,\n },\n )\n\n observer.current.observe(ref.current)\n\n return () => {\n observer.current?.disconnect()\n }\n }, [ref])\n\n if (always || !loaded) {\n return createElement(\n as,\n {\n props: null,\n ref,\n },\n loaded ? children : fallback,\n )\n }\n\n return loaded ? children : null\n}\n\nWhenVisible.displayName = 'InertiaWhenVisible'\n\nexport default WhenVisible\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "Deferred_default", "Head_default", "Link_default", "WhenVisible_default", "createInertiaApp", "router", "useForm", "usePage", "usePoll", "usePrefetch", "useRemember", "__toCommonJS", "import_core", "import_core", "import_react", "import_core", "import_react", "import_react", "headContext", "HeadContext_default", "import_react", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "headManager", "title", "component", "page", "preserveState", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "initialComponent", "App", "elements", "body", "import_react", "import_react", "usePage", "page", "PageContext_default", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "pageProps", "usePage", "keys", "key", "Deferred_default", "import_react", "Head", "children", "title", "headManager", "HeadContext_default", "provider", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "import_core", "import_react", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "async", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "prefetch", "cacheFor", "props", "ref", "inFlightCount", "setInFlightCount", "hoverTimeout", "_href", "_data", "baseParams", "visitParams", "event", "count", "doPrefetch", "cacheForValue", "prefetchModes", "regularEvents", "prefetchHoverEvents", "prefetchClickEvents", "Link_default", "import_core", "import_lodash", "import_react", "import_core", "import_react", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "rememberKey", "defaults", "setDefaults", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "submit", "method", "url", "options", "_options", "token", "visit", "event", "page", "keyOrData", "maybeValue", "isEqual", "callback", "fieldOrFields", "fields", "key", "carry", "newErrors", "field", "import_core", "import_react", "usePoll", "interval", "requestOptions", "options", "pollRef", "import_core", "import_react", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "onPrefetchedListener", "import_core", "import_react", "WhenVisible", "children", "data", "params", "buffer", "as", "always", "fallback", "loaded", "setLoaded", "fetching", "setFetching", "observer", "ref", "getReloadParams", "entries", "reloadParams", "e", "WhenVisible_default", "router", "Router"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/react",
3
- "version": "1.3.0-beta.2",
3
+ "version": "2.0.0-beta.2",
4
4
  "license": "MIT",
5
5
  "description": "The React adapter for Inertia.js",
6
6
  "contributors": [
@@ -59,7 +59,7 @@
59
59
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0"
60
60
  },
61
61
  "dependencies": {
62
- "@inertiajs/core": "1.3.0-beta.2",
62
+ "@inertiajs/core": "2.0.0-beta.2",
63
63
  "lodash.isequal": "^4.5.0"
64
64
  }
65
65
  }
@@ -0,0 +1,11 @@
1
+ import { ReactChild } from 'react';
2
+ interface DeferredProps {
3
+ children: ReactChild;
4
+ fallback: ReactChild;
5
+ data: string | string[];
6
+ }
7
+ declare const Deferred: {
8
+ ({ children, data, fallback }: DeferredProps): ReactChild;
9
+ displayName: string;
10
+ };
11
+ export default Deferred;
package/types/Link.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { FormDataConvertible, Method, PreserveStateOption, Progress } from '@inertiajs/core';
1
+ import { FormDataConvertible, LinkPrefetchOption, Method, PendingVisit, PreserveStateOption, Progress } from '@inertiajs/core';
2
2
  interface BaseInertiaLinkProps {
3
3
  as?: string;
4
4
  data?: Record<string, FormDataConvertible>;
@@ -13,13 +13,16 @@ interface BaseInertiaLinkProps {
13
13
  except?: string[];
14
14
  onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void;
15
15
  onBefore?: () => void;
16
- onStart?: () => void;
16
+ onStart?: (event: PendingVisit) => void;
17
17
  onProgress?: (progress: Progress) => void;
18
- onFinish?: () => void;
18
+ onFinish?: (event: PendingVisit) => void;
19
19
  onCancel?: () => void;
20
20
  onSuccess?: () => void;
21
21
  onError?: () => void;
22
22
  queryStringArrayFormat?: 'indices' | 'brackets';
23
+ async?: boolean;
24
+ cacheFor?: number | string;
25
+ prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[];
23
26
  }
24
27
  export type InertiaLinkProps = BaseInertiaLinkProps & Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> & Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>;
25
28
  declare const Link: import("react").ForwardRefExoticComponent<BaseInertiaLinkProps & Omit<import("react").HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> & Omit<import("react").AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> & import("react").RefAttributes<unknown>>;
@@ -0,0 +1,16 @@
1
+ import { ReloadOptions } from '@inertiajs/core';
2
+ import { ReactChild } from 'react';
3
+ interface WhenVisibleProps {
4
+ children: ReactChild;
5
+ fallback: ReactChild;
6
+ data: string | string[];
7
+ params?: ReloadOptions;
8
+ buffer?: number;
9
+ as?: string;
10
+ always?: boolean;
11
+ }
12
+ declare const WhenVisible: {
13
+ ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps): ReactChild;
14
+ displayName: string;
15
+ };
16
+ export default WhenVisible;
package/types/index.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  export declare const router: import("@inertiajs/core").Router;
2
2
  export { default as createInertiaApp } from './createInertiaApp';
3
+ export { default as Deferred } from './Deferred';
3
4
  export { default as Head } from './Head';
4
5
  export { InertiaLinkProps, default as Link } from './Link';
5
- export { InertiaFormProps, default as useForm } from './useForm';
6
+ export { default as useForm } from './useForm';
6
7
  export { default as usePage } from './usePage';
8
+ export { default as usePoll } from './usePoll';
9
+ export { default as usePrefetch } from './usePrefetch';
7
10
  export { default as useRemember } from './useRemember';
11
+ export { default as WhenVisible } from './WhenVisible';
@@ -0,0 +1,5 @@
1
+ import { PollOptions, ReloadOptions } from '@inertiajs/core';
2
+ export default function usePoll(interval: number, requestOptions?: ReloadOptions, options?: PollOptions): {
3
+ stop: VoidFunction;
4
+ start: VoidFunction;
5
+ };
@@ -0,0 +1,7 @@
1
+ import { VisitOptions } from '@inertiajs/core';
2
+ export default function usePrefetch(options?: VisitOptions): {
3
+ lastUpdatedAt: number | null;
4
+ isPrefetching: boolean;
5
+ isPrefetched: boolean;
6
+ flush: () => void;
7
+ };
@@ -1,3 +1,2 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
2
  export default function useRemember<State>(initialState: State, key?: string): [State, Dispatch<SetStateAction<State>>];
3
- export declare function useRememberedState<State>(initialState: State, key?: string): [State, Dispatch<SetStateAction<State>>];