1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6449],{20675:(e,t,n)=>{n.d(t,{default:()=>i});var r=n(5877);let i=e=>{let{text:t,maxLengthMobile:n,maxLengthDesktop:i}=e,[l,a]=(0,r.useState)(t);return(0,r.useEffect)(()=>{function e(){if(!t)return"";let e=window.innerWidth<640?n:i;a((null==t?void 0:t.length)>e?"".concat(t.slice(0,e),"..."):t)}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[t,n,i]),l}},26635:(e,t,n)=>{n.d(t,{default:()=>i});var r=n(5877);let i=(e,t)=>{(0,r.useEffect)(()=>{e.current&&t()},[e,t])}},32047:(e,t,n)=>{n.d(t,{default:()=>i});var r=n(5877);function i(){let[e,t]=(0,r.useState)({width:0,height:0});return(0,r.useEffect)(()=>{function e(){t({width:window.innerWidth,height:window.innerHeight})}if(window)return window.addEventListener("resize",e),e(),()=>window.removeEventListener("resize",e)},[]),e}},32646:(e,t,n)=>{n.d(t,{c:()=>i}),n(87281),n(48974);var r=n(86773);let i=()=>(0,r.useRouter)()},33713:(e,t,n)=>{n.r(t),n.d(t,{invalidateSWRCacheByPartialKey:()=>i});var r=n(88928);let i=e=>{e.forEach(e=>{(0,r.j)(t=>Array.isArray(t)?t.some(t=>"string"==typeof t&&t.includes(e)):t&&"object"==typeof t&&"url"in t&&"string"==typeof t.url?t.url.includes(e):"string"==typeof t&&t.includes(e),void 0,{revalidate:!0})})}},36583:(e,t,n)=>{n.r(t),n.d(t,{useUser:()=>l});var r=n(5877),i=n(48593);function l(){let{session:e}=(0,i.B)();return{user:(0,r.useMemo)(()=>{var t;return void 0===e?null:(null==e||null==(t=e.identity)?void 0:t.user)?e.identity.user:null},[e]),isLoading:void 0===e}}}
1,39093:(e,t,n)=>{n.d(t,{V:()=>i});let r=(0,n(60152).vt)(e=>({authTokens:null,setAuthTokens:t=>e({authTokens:t}),decodedToken:null,setDecodedToken:t=>e({decodedToken:t})})),i=()=>{let{authTokens:e,setAuthTokens:t,decodedToken:n,setDecodedToken:i}=r();return{authTokens:e,setAuthTokens:t,decodedToken:n,setDecodedToken:i}}},43922:(e,t,n)=>{n.r(t),n.d(t,{AuthRedirectContextProvider:()=>s,useAuthRedirectContext:()=>a,useSafeAuthRedirectContext:()=>o});var r=n(87281),i=n(5877);let l=(0,i.createContext)(void 0),a=()=>{let e=(0,i.useContext)(l);if(!e)throw Error("useAuthRedirectContext must be used within an AuthRedirectContextProvider");return e},o=()=>{let e=(0,i.useContext)(l);return null!=e?e:{redirectUrl:null,setRedirectUrl:()=>{},verifyEmailUrl:null}},s=e=>{let{children:t,defaultRedirectUrl:n=null,verifyEmailUrl:a}=e,[o,s]=(0,i.useState)(n),u=(0,i.useMemo)(()=>({redirectUrl:o,setRedirectUrl:s,verifyEmailUrl:a}),[o,a]);return(0,r.jsx)(l.Provider,{value:u,children:t})}},48593:(e,t,n)=>{n.d(t,{B:()=>d});var r=n(70853),i=n(60152),l=n(76453),a=n(21591),o=n(61174),s=n(52660),u=n(61840);let d=(0,i.vt)((e,t)=>({setSession:async function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"default";try{await (0,l.h)(t,n,i),e((0,r.jM)(e=>{e.session||(e.session={}),e.session[i]||(e.session[i]={}),e.session[i][t]=n}))}catch(e){u.vF.error("Failed to set Redis session : ".concat(e))}},getSession:async function(e){var n,r,i;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default",o=null==(i=t())||null==(r=i.session)||null==(n=r[l])?void 0:n[e];return o||(o=await (0,a.J)(e,l)),o},getAllSession:async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",n=await (0,o.U)(t);e((0,r.jM)(e=>{null!=e.session||(e.session={}),Reflect.set(e.session,t,n)}))},hydrateSession:async()=>{let[t,n,i,l]=await Promise.all([(0,o.U)("default"),(0,o.U)("identity"),(0,o.U)("apv"),(0,o.U)("measurements")]);e((0,r.jM)(e=>{null!=e.session||(e.session={}),Reflect.set(e.session,"default",t),Reflect.set(e.session,"identity",n),Reflect.set(e.session,"apv",i),Reflect.set(e.session,"measurements",l)}))},removeSession:async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";try{await (0,s.T)(t),e((0,r.jM)(e=>{e.session&&delete e.session[t]}))}catch(e){u.vF.error("Failed to remove Redis session : ".concat(e))}}}))},56691:(e,t,n)=>{n.d(t,{default:()=>l});var r=n(5877),i=n(49671);let l=()=>{let[e,t]=(0,r.useState)({x:0,y:0}),n=(0,r.useCallback)(()=>{t({x:window.scrollX,y:window.scrollY})},[!0]),l=(0,r.useCallback)((e,t)=>{"function"==typeof window.scrollTo&&window.scrollTo(e,t)},[!0]);return(0,i.E)(()=>(n(),window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),{scrollPosition:e,scrollTo:l}}},57575:(e,t,n)=>{n.r(t),n.d(t,{useAuthHandlers:()=>c});var r=n(52586),i=n(78644),l=n(43922),a=n(22773),o=n(34385),s=n(92019),u=n(39093),d=n(32646);let c=(e,t,n)=>{let{setAuthTokens:c,setDecodedToken:v,decodedToken:f}=(0,u.V)(),h=(0,d.c)(),y=(0,r.usePathname)(),w=(0,i.c)("Authentication.Login"),{redirectUrl:p,verifyEmailUrl:m}=(0,l.useSafeAuthRedirectContext)(),g=async(r,i)=>{try{let t=await r(),n=(0,s.mT)(t.token);if(!n.user.signUpCompleted&&!(null==t?void 0:t.isCompleted))return void((e,t)=>{c({token:e.token,refresh_token:e.refresh_token,service:"my-autosphere"}),m&&(t.verifyUrl=m),p&&(t.cbUrl=p),v(t)})(t,n);await e(t.token,t.refresh_token,i),(e=>{if(!e.user.verified&&(m||(null==f?void 0:f.verifyUrl)))return h.replace(m||(null==f?void 0:f.verifyUrl));(null==f?void 0:f.cbUrl)?h.push(null==f?void 0:f.cbUrl):p?h.push(p):y===o.A.authenticate&&h.push(o.A.authentication.home)})(n)}catch(e){(e=>{var r,i,l,o,s;if(!(0,a.F0)(e))return t(w("badLoginTitle"),w("errorLoginDescription"));let u=null==(r=e.response)?void 0:r.data;if((null==(i=e.response)?void 0:i.status)===403&&(null==u?void 0:u.oldPassword)){null==n||n(),c({token:null!=(o=u.token)?o:"",refresh_token:null!=(s=u.refresh_token)?s:"",service:"my-autosphere"});return}if((null==(l=e.response)?void 0:l.status)===401)return t(w("badLoginTitle"),w("badLoginDescription"));t(w("badLoginTitle"),w("errorLoginDescription"))})(e)}};return{onSubmit:e=>async t=>{await g(()=>e(t))},handleCompleteSignup:async(e,t,n)=>{await g(()=>Promise.resolve({token:e,refresh_token:t,isCompleted:!0}),n)}}}}
1,61174:(e,t,n)=>{n.d(t,{U:()=>i});var r=n(99984);let i=(0,r.createServerReference)("4059f925ae953036de27130ed455d693b3b28397c7",r.callServer,void 0,r.findSourceMapURL,"getAll")},61840:(e,t,n)=>{n.d(t,{Pu:()=>o,vF:()=>s,zt:()=>a});var r=n(6128),i=n.n(r);let l=e=>i()().child({module:e});l("vehicle"),l("stock"),l("lead"),l("favorite"),l("history"),l("savedSearch"),l("dealers");let a=l("phygital");l("partExchange");let o=l("afterSales");l("imagino"),l("contact-auth"),l("contact-search"),l("contact-verification");let s=l("default");l("user"),l("corner")},69399:(e,t,n)=>{n.r(t),n.d(t,{useCities:()=>l,useCityByLocation:()=>a});var r=n(5877),i=n(62537);let l=e=>{var t;let[n,l]=(0,r.useState)(""),a=n.length>=2,{data:o,error:s,isLoading:u}=(0,i.useAxiosSWR)(a?"".concat("https://apigateway.autosphere.fr/city-be","/cities/search?q=").concat(encodeURIComponent(n),"&country=").concat(e):void 0);return{cities:null!=(t=null==o?void 0:o.result.map(e=>{let{id:t,name:n,code:r,latitude:i,longitude:l}=e;return{id:t,name:n,postalCode:r,latitude:i,longitude:l}}))?t:[],isLoading:u,error:s,onCitySearch:l}},a=()=>{let[e,t]=(0,r.useState)(""),{data:n,error:l,isLoading:a,isValidating:o,mutate:s}=(0,i.useAxiosSWR)(e&&"".concat("https://apigateway.autosphere.fr/city-be","/cities/location/").concat(e,"?withAssociatedCities=true"));return{city:(null==n?void 0:n.result)?{id:n.result.id,name:n.result.name,postalCode:n.result.code,latitude:n.result.latitude,longitude:n.result.longitude}:{},isLoading:a,isValidating:o,error:l,searchByLocation:e=>{t(e),s()}}}},77587:(e,t,n)=>{n.r(t),n.d(t,{useInfiniteList:()=>i});var r=n(22332);let i=e=>{var t,n,i,l;let{fetcher:a,firstPageSize:o=10,pageSize:s=10,cacheKeyPrefix:u}=e,{data:d,error:c,size:v,setSize:f,mutate:h}=(0,r.Ay)((e,t)=>t&&(!t.data||0===t.data.length)?null:[u,0===e?0:o+(e-1)*s,0===e?o:s],async e=>{let[,t,n]=e;return a(Number(t),Number(n))},{revalidateFirstPage:!1,parallel:!0,revalidateOnFocus:!1}),y=(null==d?void 0:d.flatMap(e=>{var t;return null!=(t=null==e?void 0:e.data)?t:[]}))||[],w=null==d?void 0:d.at(-1),p=null!=(l=null==w||null==(t=w.data)?void 0:t.length)?l:0,m=!w||0===p,g=!d||(null==(i=d[0])||null==(n=i.data)?void 0:n.length)===0,k=d&&1===d.length?o:s,C=!!(v>0&&d&&void 0===d[v-1]);return{items:y,error:c,isLoading:!d&&!c,isLoadingMore:C,isReachingEnd:g||m||p>0&&p<k,loadMore:()=>f(v+1),mutate:h,data:d}}},78167:(e,t,n)=>{function r(e){let{handleClick:t}=e;return[{label:"Entretien courant",leftIcon:"car-repair",onClick:()=>{t("mecanique-electronique")}},{label:"Pneus",leftIcon:"tire",onClick:()=>{t("pneumatiques")}},{label:"Vitrerie",leftIcon:"broken-glass",onClick:()=>{t("vitrerie")}}]}n.r(t),n.d(t,{useMaintainButtons:()=>r})},92019:(e,t,n)=>{n.d(t,{XZ:()=>o,mT:()=>a,zk:()=>l});var r=n(16457),i=n(47877);let l=()=>(0,i.A)(),a=e=>(0,r.s)(e),o=e=>a(e).user},93827:(e,t,n)=>{n.r(t),n.d(t,{useSessionManager:()=>a});var r=n(5877),i=n(92019),l=n(48593);let a=()=>{var e,t;let[n,a]=(0,r.useState)(!1),[o,s]=(0,r.useState)(null),[u,d]=(0,r.useState)(!0),{session:c,getSession:v,setSession:f,removeSession:h}=(0,l.B)(),y=(0,r.useCallback)(async()=>{d(!0);try{await v("token")}finally{d(!1)}},[v]);return(0,r.useEffect)(()=>{var e;a(!!(null==c||null==(e=c.default)?void 0:e.token))},[null==c||null==(e=c.default)?void 0:e.token]),(0,r.useEffect)(()=>{var e;s(!(null==c||null==(e=c.temporary)?void 0:e.token))},[null==c||null==(t=c.temporary)?void 0:t.token]),{isConnected:n,isLoading:u,isVerified:o,setIdentity:async(e,t,n)=>{if(e){let r=(0,i.XZ)(e);r.verified||(null==n?void 0:n.verified)?(await h("temporary"),await f("token",e),await f("refreshToken",t),await f("user",n||r,"identity")):(await f("token",e,"temporary"),await f("refreshToken",t,"temporary"),await f("user",n||r,"temporary"))}else await h("temporary")},logout:async()=>{s(null),await h("identity"),await h("default");try{await fetch("/deconnexion")}catch(e){console.error("Legacy logout failed")}},checkSession:y}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.