@inertiajs/react 1.0.14 → 1.0.16
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 +2 -2
- package/dist/index.esm.js.map +4 -4
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/package.json +2 -2
- package/types/index.d.ts +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{router as Se}from"@inertiajs/core";import
|
|
1
|
+
import{router as Se}from"@inertiajs/core";import N,{useContext as Q,useEffect as z,useMemo as G}from"react";import{createContext as J}from"react";var B=J(void 0);B.displayName="InertiaHeadContext";var A=B;var X=function({children:l,title:c}){let s=Q(A),p=G(()=>s.createProvider(),[s]);z(()=>()=>{p.disconnect()},[p]);function a(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function S(e){let i=Object.keys(e.props).reduce((r,y)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(y))return r;let T=e.props[y];return T===""?r+` ${y}`:r+` ${y}="${T}"`},"");return`<${e.type}${i}>`}function d(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((i,r)=>i+P(r),"")}function P(e){let i=S(e);return e.props.children&&(i+=d(e)),e.props.dangerouslySetInnerHTML&&(i+=e.props.dangerouslySetInnerHTML.__html),a(e)||(i+=`</${e.type}>`),i}function u(e){return N.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function g(e){return P(u(e))}function f(e){let i=N.Children.toArray(e).filter(r=>r).map(r=>g(r));return c&&!i.find(r=>r.startsWith("<title"))&&i.push(`<title inertia>${c}</title>`),i}return p.update(f(l)),null},Y=X;import{mergeDataIntoQueryString as Z,router as ee,shouldIntercept as te}from"@inertiajs/core";import{createElement as re,forwardRef as oe,useCallback as ne}from"react";var F=()=>{},$=oe(({children:l,as:c="a",data:s={},href:p,method:a="get",preserveScroll:S=!1,preserveState:d=null,replace:P=!1,only:u=[],headers:g={},queryStringArrayFormat:f="brackets",onClick:e=F,onCancelToken:i=F,onBefore:r=F,onStart:y=F,onProgress:T=F,onFinish:H=F,onCancel:h=F,onSuccess:M=F,onError:x=F,...O},R)=>{let I=ne(o=>{e(o),te(o)&&(o.preventDefault(),ee.visit(p,{data:s,method:a,preserveScroll:S,preserveState:d??a!=="get",replace:P,only:u,headers:g,onCancelToken:i,onBefore:r,onStart:y,onProgress:T,onFinish:H,onCancel:h,onSuccess:M,onError:x}))},[s,p,a,S,d,P,u,g,e,i,r,y,T,H,h,M,x]);c=c.toLowerCase(),a=a.toLowerCase();let[v,t]=Z(a,p||"",s,f);return p=v,s=t,c==="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
2
|
|
|
3
3
|
Please specify a more appropriate element using the "as" attribute. For example:
|
|
4
4
|
|
|
5
|
-
<Link href="${p}" method="${a}" as="button">...</Link>`),
|
|
5
|
+
<Link href="${p}" method="${a}" as="button">...</Link>`),re(c,{...O,...c==="a"?{href:p}:{},ref:R,onClick:I},l)});$.displayName="InertiaLink";var ae=$;import{setupProgress as le}from"@inertiajs/core";import{createElement as de}from"react";import{createHeadManager as ie,router as U}from"@inertiajs/core";import{createElement as b,useEffect as pe,useMemo as ue,useState as ce}from"react";import{createContext as se}from"react";var j=se(void 0);j.displayName="InertiaPageContext";var E=j;function w({children:l,initialPage:c,initialComponent:s,resolveComponent:p,titleCallback:a,onHeadUpdate:S}){let[d,P]=ce({component:s||null,page:c,key:null}),u=ue(()=>ie(typeof window>"u",a||(f=>f),S||(()=>{})),[]);if(pe(()=>{U.init({initialPage:c,resolveComponent:p,swapComponent:async({component:f,page:e,preserveState:i})=>{P(r=>({component:f,page:e,key:i?r.key:Date.now()}))}}),U.on("navigate",()=>u.forceUpdate())},[]),!d.component)return b(A.Provider,{value:u},b(E.Provider,{value:d.page},null));let g=l||(({Component:f,props:e,key:i})=>{let r=b(f,{key:i,...e});return typeof f.layout=="function"?f.layout(r):Array.isArray(f.layout)?f.layout.concat(r).reverse().reduce((y,T)=>b(T,{children:y,...e})):r});return b(A.Provider,{value:u},b(E.Provider,{value:d.page},g({Component:d.component,key:d.key,props:d.page.props})))}w.displayName="Inertia";async function V({id:l="app",resolve:c,setup:s,title:p,progress:a={},page:S,render:d}){let P=typeof window>"u",u=P?null:document.getElementById(l),g=S||JSON.parse(u.dataset.page),f=r=>Promise.resolve(c(r)).then(y=>y.default||y),e=[],i=await f(g.component).then(r=>s({el:u,App:w,props:{initialPage:g,initialComponent:r,resolveComponent:f,titleCallback:p,onHeadUpdate:P?y=>e=y:null}}));if(!P&&a&&le(a),P){let r=await d(de("div",{id:l,"data-page":JSON.stringify(g)},i));return{head:e,body:r}}}import{router as _}from"@inertiajs/core";import ge from"lodash.isequal";import{useCallback as ye,useEffect as Pe,useRef as L,useState as C}from"react";import{router as K}from"@inertiajs/core";import{useEffect as fe,useState as me}from"react";function D(l,c){let[s,p]=me(()=>{let a=K.restore(c);return a!==void 0?a:l});return fe(()=>{K.remember(s,c)},[s,c]),[s,p]}function W(l,c){let s=L(null),p=typeof l=="string"?l:null,[a,S]=C((typeof l=="string"?c:l)||{}),d=L(null),P=L(null),[u,g]=p?D(a,`${p}:data`):C(a),[f,e]=p?D({},`${p}:errors`):C({}),[i,r]=C(!1),[y,T]=C(!1),[H,h]=C(null),[M,x]=C(!1),[O,R]=C(!1),I=t=>t;Pe(()=>(s.current=!0,()=>{s.current=!1}),[]);let v=ye((t,o,n={})=>{let k={...n,onCancelToken:m=>{if(d.current=m,n.onCancelToken)return n.onCancelToken(m)},onBefore:m=>{if(x(!1),R(!1),clearTimeout(P.current),n.onBefore)return n.onBefore(m)},onStart:m=>{if(T(!0),n.onStart)return n.onStart(m)},onProgress:m=>{if(h(m),n.onProgress)return n.onProgress(m)},onSuccess:m=>{if(s.current&&(T(!1),h(null),e({}),r(!1),x(!0),R(!0),P.current=setTimeout(()=>{s.current&&R(!1)},2e3)),n.onSuccess)return n.onSuccess(m)},onError:m=>{if(s.current&&(T(!1),h(null),e(m),r(!0)),n.onError)return n.onError(m)},onCancel:()=>{if(s.current&&(T(!1),h(null)),n.onCancel)return n.onCancel()},onFinish:()=>{if(s.current&&(T(!1),h(null)),d.current=null,n.onFinish)return n.onFinish()}};t==="delete"?_.delete(o,{...k,data:I(u)}):_[t](o,I(u),k)},[u,e]);return{data:u,setData(t,o){g(typeof t=="string"?{...u,[t]:o}:typeof t=="function"?n=>t(n):t)},isDirty:!ge(u,a),errors:f,hasErrors:i,processing:y,progress:H,wasSuccessful:M,recentlySuccessful:O,transform(t){I=t},setDefaults(t,o){S(typeof t>"u"?()=>u:n=>({...n,...typeof t=="string"?{[t]:o}:t}))},reset(...t){t.length===0?g(a):g(Object.keys(a).filter(o=>t.includes(o)).reduce((o,n)=>(o[n]=a[n],o),{...u}))},setError(t,o){e(n=>{let k={...n,...typeof t=="string"?{[t]:o}:t};return r(Object.keys(k).length>0),k})},clearErrors(...t){e(o=>{let n=Object.keys(o).reduce((k,m)=>({...k,...t.length>0&&!t.includes(m)?{[m]:o[m]}:{}}),{});return r(Object.keys(n).length>0),n})},submit:v,get(t,o){v("get",t,o)},post(t,o){v("post",t,o)},put(t,o){v("put",t,o)},patch(t,o){v("patch",t,o)},delete(t,o){v("delete",t,o)},cancel(){d.current&&d.current.cancel()}}}import{useContext as Te}from"react";function q(){let l=Te(E);if(!l)throw new Error("usePage must be used within the Inertia component");return l}var yt=Se;export{Y as Head,ae as Link,V as createInertiaApp,yt as router,W as useForm,q as usePage,D as useRemember};
|
|
6
6
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts", "../src/
|
|
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 { default as Link, InertiaLinkProps } from './Link'\nexport { 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, createElement, FunctionComponent, Key, ReactElement, ReactNode } 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).filter((node) => node).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<HTMLAnchorElement>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: 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 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) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\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 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) => TForm) => 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],\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, [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\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": "AAAA,OAAS,UAAUA,OAAc,kBCAjC,
|
|
6
|
-
"names": ["Router", "
|
|
3
|
+
"sources": ["../src/index.ts", "../src/Head.ts", "../src/HeadContext.ts", "../src/Link.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/PageContext.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 Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as useRemember } from './useRemember'\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 { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\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<HTMLAnchorElement>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: 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 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) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\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 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 { 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 pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\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) => TForm) => 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],\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, [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\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", "React", "useContext", "useEffect", "useMemo", "createContext", "headContext", "HeadContext_default", "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", "headers", "queryStringArrayFormat", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "props", "ref", "visit", "event", "_href", "_data", "Link_default", "setupProgress", "createElement", "createHeadManager", "router", "createElement", "useEffect", "useMemo", "useState", "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", "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", "useContext", "usePage", "page", "useContext", "PageContext_default", "router", "Router"]
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var ie=Object.create;var N=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var ce=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty;var de=(r,n)=>{for(var o in n)N(r,o,{get:n[o],enumerable:!0})},J=(r,n,o,u)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of ue(n))!le.call(r,a)&&a!==o&&N(r,a,{get:()=>n[a],enumerable:!(u=pe(n,a))||u.enumerable});return r};var Q=(r,n,o)=>(o=r!=null?ie(ce(r)):{},J(n||!r||!r.__esModule?N(o,"default",{value:r,enumerable:!0}):o,r)),fe=r=>J(N({},"__esModule",{value:!0}),r);var ye={};de(ye,{Head:()=>
|
|
1
|
+
var ie=Object.create;var N=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var ce=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty;var de=(r,n)=>{for(var o in n)N(r,o,{get:n[o],enumerable:!0})},J=(r,n,o,u)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of ue(n))!le.call(r,a)&&a!==o&&N(r,a,{get:()=>n[a],enumerable:!(u=pe(n,a))||u.enumerable});return r};var Q=(r,n,o)=>(o=r!=null?ie(ce(r)):{},J(n||!r||!r.__esModule?N(o,"default",{value:r,enumerable:!0}):o,r)),fe=r=>J(N({},"__esModule",{value:!0}),r);var ye={};de(ye,{Head:()=>X,Link:()=>Z,createInertiaApp:()=>V,router:()=>ge,useForm:()=>W,usePage:()=>q,useRemember:()=>A});module.exports=fe(ye);var se=require("@inertiajs/core");var v=Q(require("react"),1);var z=require("react"),G=(0,z.createContext)(void 0);G.displayName="InertiaHeadContext";var M=G;var me=function({children:r,title:n}){let o=(0,v.useContext)(M),u=(0,v.useMemo)(()=>o.createProvider(),[o]);(0,v.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 h(e){let c=Object.keys(e.props).reduce((s,P)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(P))return s;let S=e.props[P];return S===""?s+` ${P}`:s+` ${P}="${S}"`},"");return`<${e.type}${c}>`}function d(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((c,s)=>c+T(s),"")}function T(e){let c=h(e);return e.props.children&&(c+=d(e)),e.props.dangerouslySetInnerHTML&&(c+=e.props.dangerouslySetInnerHTML.__html),a(e)||(c+=`</${e.type}>`),c}function l(e){return v.default.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function y(e){return T(l(e))}function f(e){let c=v.default.Children.toArray(e).filter(s=>s).map(s=>y(s));return n&&!c.find(s=>s.startsWith("<title"))&&c.push(`<title inertia>${n}</title>`),c}return u.update(f(r)),null},X=me;var R=require("@inertiajs/core"),I=require("react"),C=()=>{},Y=(0,I.forwardRef)(({children:r,as:n="a",data:o={},href:u,method:a="get",preserveScroll:h=!1,preserveState:d=null,replace:T=!1,only:l=[],headers:y={},queryStringArrayFormat:f="brackets",onClick:e=C,onCancelToken:c=C,onBefore:s=C,onStart:P=C,onProgress:S=C,onFinish:L=C,onCancel:k=C,onSuccess:B=C,onError:E=C,...U},D)=>{let H=(0,I.useCallback)(i=>{e(i),(0,R.shouldIntercept)(i)&&(i.preventDefault(),R.router.visit(u,{data:o,method:a,preserveScroll:h,preserveState:d??a!=="get",replace:T,only:l,headers:y,onCancelToken:c,onBefore:s,onStart:P,onProgress:S,onFinish:L,onCancel:k,onSuccess:B,onError:E}))},[o,u,a,h,d,T,l,y,e,c,s,P,S,L,k,B,E]);n=n.toLowerCase(),a=a.toLowerCase();let[b,t]=(0,R.mergeDataIntoQueryString)(a,u||"",o,f);return u=b,o=t,n==="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
2
|
|
|
3
3
|
Please specify a more appropriate element using the "as" attribute. For example:
|
|
4
4
|
|
|
5
|
-
<Link href="${u}" method="${a}" as="button">...</Link>`),(0,I.createElement)(n,{...U,...n==="a"?{href:u}:{},ref:D,onClick:H},r)});
|
|
5
|
+
<Link href="${u}" method="${a}" as="button">...</Link>`),(0,I.createElement)(n,{...U,...n==="a"?{href:u}:{},ref:D,onClick:H},r)});Y.displayName="InertiaLink";var Z=Y;var re=require("@inertiajs/core"),oe=require("react");var O=require("@inertiajs/core"),F=require("react");var ee=require("react"),te=(0,ee.createContext)(void 0);te.displayName="InertiaPageContext";var w=te;function $({children:r,initialPage:n,initialComponent:o,resolveComponent:u,titleCallback:a,onHeadUpdate:h}){let[d,T]=(0,F.useState)({component:o||null,page:n,key:null}),l=(0,F.useMemo)(()=>(0,O.createHeadManager)(typeof window>"u",a||(f=>f),h||(()=>{})),[]);if((0,F.useEffect)(()=>{O.router.init({initialPage:n,resolveComponent:u,swapComponent:async({component:f,page:e,preserveState:c})=>{T(s=>({component:f,page:e,key:c?s.key:Date.now()}))}}),O.router.on("navigate",()=>l.forceUpdate())},[]),!d.component)return(0,F.createElement)(M.Provider,{value:l},(0,F.createElement)(w.Provider,{value:d.page},null));let y=r||(({Component:f,props:e,key:c})=>{let s=(0,F.createElement)(f,{key:c,...e});return typeof f.layout=="function"?f.layout(s):Array.isArray(f.layout)?f.layout.concat(s).reverse().reduce((P,S)=>(0,F.createElement)(S,{children:P,...e})):s});return(0,F.createElement)(M.Provider,{value:l},(0,F.createElement)(w.Provider,{value:d.page},y({Component:d.component,key:d.key,props:d.page.props})))}$.displayName="Inertia";async function V({id:r="app",resolve:n,setup:o,title:u,progress:a={},page:h,render:d}){let T=typeof window>"u",l=T?null:document.getElementById(r),y=h||JSON.parse(l.dataset.page),f=s=>Promise.resolve(n(s)).then(P=>P.default||P),e=[],c=await f(y.component).then(s=>o({el:l,App:$,props:{initialPage:y,initialComponent:s,resolveComponent:f,titleCallback:u,onHeadUpdate:T?P=>e=P:null}}));if(!T&&a&&(0,re.setupProgress)(a),T){let s=await d((0,oe.createElement)("div",{id:r,"data-page":JSON.stringify(y)},c));return{head:e,body:s}}}var _=require("@inertiajs/core"),ne=Q(require("lodash.isequal"),1),g=require("react");var K=require("@inertiajs/core"),j=require("react");function A(r,n){let[o,u]=(0,j.useState)(()=>{let a=K.router.restore(n);return a!==void 0?a:r});return(0,j.useEffect)(()=>{K.router.remember(o,n)},[o,n]),[o,u]}function W(r,n){let o=(0,g.useRef)(null),u=typeof r=="string"?r:null,[a,h]=(0,g.useState)((typeof r=="string"?n:r)||{}),d=(0,g.useRef)(null),T=(0,g.useRef)(null),[l,y]=u?A(a,`${u}:data`):(0,g.useState)(a),[f,e]=u?A({},`${u}:errors`):(0,g.useState)({}),[c,s]=(0,g.useState)(!1),[P,S]=(0,g.useState)(!1),[L,k]=(0,g.useState)(null),[B,E]=(0,g.useState)(!1),[U,D]=(0,g.useState)(!1),H=t=>t;(0,g.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]);let b=(0,g.useCallback)((t,i,p={})=>{let x={...p,onCancelToken:m=>{if(d.current=m,p.onCancelToken)return p.onCancelToken(m)},onBefore:m=>{if(E(!1),D(!1),clearTimeout(T.current),p.onBefore)return p.onBefore(m)},onStart:m=>{if(S(!0),p.onStart)return p.onStart(m)},onProgress:m=>{if(k(m),p.onProgress)return p.onProgress(m)},onSuccess:m=>{if(o.current&&(S(!1),k(null),e({}),s(!1),E(!0),D(!0),T.current=setTimeout(()=>{o.current&&D(!1)},2e3)),p.onSuccess)return p.onSuccess(m)},onError:m=>{if(o.current&&(S(!1),k(null),e(m),s(!0)),p.onError)return p.onError(m)},onCancel:()=>{if(o.current&&(S(!1),k(null)),p.onCancel)return p.onCancel()},onFinish:()=>{if(o.current&&(S(!1),k(null)),d.current=null,p.onFinish)return p.onFinish()}};t==="delete"?_.router.delete(i,{...x,data:H(l)}):_.router[t](i,H(l),x)},[l,e]);return{data:l,setData(t,i){y(typeof t=="string"?{...l,[t]:i}:typeof t=="function"?p=>t(p):t)},isDirty:!(0,ne.default)(l,a),errors:f,hasErrors:c,processing:P,progress:L,wasSuccessful:B,recentlySuccessful:U,transform(t){H=t},setDefaults(t,i){h(typeof t>"u"?()=>l:p=>({...p,...typeof t=="string"?{[t]:i}:t}))},reset(...t){t.length===0?y(a):y(Object.keys(a).filter(i=>t.includes(i)).reduce((i,p)=>(i[p]=a[p],i),{...l}))},setError(t,i){e(p=>{let x={...p,...typeof t=="string"?{[t]:i}:t};return s(Object.keys(x).length>0),x})},clearErrors(...t){e(i=>{let p=Object.keys(i).reduce((x,m)=>({...x,...t.length>0&&!t.includes(m)?{[m]:i[m]}:{}}),{});return s(Object.keys(p).length>0),p})},submit:b,get(t,i){b("get",t,i)},post(t,i){b("post",t,i)},put(t,i){b("put",t,i)},patch(t,i){b("patch",t,i)},delete(t,i){b("delete",t,i)},cancel(){d.current&&d.current.cancel()}}}var ae=require("react");function q(){let r=(0,ae.useContext)(w);if(!r)throw new Error("usePage must be used within the Inertia component");return r}var ge=se.router;
|
|
6
6
|
//# 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/
|
|
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 { default as Link, InertiaLinkProps } from './Link'\nexport { 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, createElement, FunctionComponent, Key, ReactElement, ReactNode } 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).filter((node) => node).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<HTMLAnchorElement>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: 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 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) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\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 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) => TForm) => 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],\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, [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\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": "yjBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,UAAAE,
|
|
6
|
-
"names": ["src_exports", "__export", "Head_default", "Link_default", "createInertiaApp", "router", "useForm", "usePage", "useRemember", "__toCommonJS", "import_core", "
|
|
3
|
+
"sources": ["../src/index.ts", "../src/Head.ts", "../src/HeadContext.ts", "../src/Link.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/PageContext.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 Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as useRemember } from './useRemember'\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 { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\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<HTMLAnchorElement>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: 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 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) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\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 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 { 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 pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\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) => TForm) => 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],\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, [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\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_react", "import_react", "headContext", "HeadContext_default", "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", "headers", "queryStringArrayFormat", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "props", "ref", "visit", "event", "_href", "_data", "Link_default", "import_core", "import_react", "import_core", "import_react", "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_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_react", "usePage", "page", "PageContext_default", "router", "Router"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inertiajs/react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
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.0.
|
|
62
|
+
"@inertiajs/core": "1.0.16",
|
|
63
63
|
"lodash.isequal": "^4.5.0"
|
|
64
64
|
}
|
|
65
65
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const router: import("@inertiajs/core").Router;
|
|
2
|
-
export { default as createInertiaApp } from './createInertiaApp';
|
|
3
2
|
export { default as Head } from './Head';
|
|
4
|
-
export { default as Link
|
|
3
|
+
export { InertiaLinkProps, default as Link } from './Link';
|
|
4
|
+
export { default as createInertiaApp } from './createInertiaApp';
|
|
5
5
|
export { default as useForm } from './useForm';
|
|
6
6
|
export { default as usePage } from './usePage';
|
|
7
7
|
export { default as useRemember } from './useRemember';
|