@ducks-tinder-client/auth 1.0.0-alpha.3 → 1.0.0-alpha.4
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/cjs/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Dt=Object.create;var P=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Bt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Kt=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},nt=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Gt(e))!qt.call(t,a)&&a!==r&&P(t,a,{get:()=>e[a],enumerable:!(o=Xt(e,a))||o.enumerable});return t};var Vt=(t,e,r)=>(r=t!=null?Dt(Bt(t)):{},nt(e||!t||!t.__esModule?P(r,"default",{value:t,enumerable:!0}):r,t)),jt=t=>nt(P({},"__esModule",{value:!0}),t);var Yt={};Kt(Yt,{AuthLayout:()=>T,AuthQueryKey:()=>v,InitialLoading:()=>W,LoginForm:()=>Nt,RegistrationForm:()=>Wt,UserQueryKey:()=>Y,WithAuthRedirect:()=>F,WithInitialLoading:()=>O,WithUserData:()=>ot,authResponseStub:()=>E,deleteTestUser:()=>K,getAuthService:()=>x,getMockableService:()=>q,getOrCreateService:()=>xt,getTestUser:()=>V,rejectWithAxiosResponseError:()=>B,resolveAxiosResponse:()=>S,saveTestUser:()=>M,setUpInterceptors:()=>$t,useAuthForm:()=>y,useAuthStore:()=>s,useGetCurrentUserQuery:()=>Z,useLoginMutation:()=>Q,useLogoutMutation:()=>Jt,useRefreshMutation:()=>J,useRegisterMutation:()=>$,useUserStore:()=>g});module.exports=jt(Yt);var _=require("@ducks-tinder-client/common");var It=require("react-hook-form"),p=require("@ducks-tinder-client/common");var v=(e=>(e.AuthMutation="auth-data-mutation",e))(v||{});var h={auth:"_auth_4slza_1",container:"_container_4slza_6",wrapper:"_wrapper_4slza_17",formWrapper:"_formWrapper_4slza_32",title:"_title_4slza_35",validation:"_validation_4slza_45",error:"_error_4slza_50",navigate:"_navigate_4slza_55"};var pt=require("@ducks-tinder-client/ui"),d=require("react/jsx-runtime"),T=({errors:t,title:e,children:r,link:o})=>(0,d.jsx)("div",{className:h.auth,children:(0,d.jsx)("div",{className:h.container,children:(0,d.jsxs)("div",{className:h.wrapper,children:[(0,d.jsx)("img",{draggable:!1,src:pt.authDuck,alt:"IMG"}),(0,d.jsxs)("div",{className:h.formWrapper,children:[(0,d.jsx)("span",{className:h.title,children:e}),(0,d.jsx)("div",{className:h.validation,children:Object.values(t).map((a,i)=>(0,d.jsx)("div",{className:h.error,children:a.message?.toString()},i))}),r,(0,d.jsx)("div",{className:h.navigate,children:o})]})]})})});var ct=require("@ducks-tinder-client/ui");var mt=require("zustand"),ut=require("zustand/middleware"),s=(0,mt.create)()((0,ut.devtools)(t=>({isAuth:null,authData:null,setIsAuth:e=>t(()=>({isAuth:e})),setAuthData:e=>t(()=>({authData:e}))})));var _t=require("zustand"),lt=require("zustand/middleware"),g=(0,_t.create)()((0,lt.devtools)(t=>({currentUser:null,setCurrentUser:e=>t(()=>({currentUser:e}))})));var dt=require("react/jsx-runtime"),W=()=>{let t=s(r=>r.isAuth),e=g(r=>r.currentUser);return(0,dt.jsx)(ct.LoadingPage,{visible:t===null&&e===null||t===!0&&e===null})};var At=require("@tanstack/react-query");var R=require("@ducks-tinder-client/common");async function S(t){return Promise.resolve({config:{},data:t,headers:{},status:200,statusText:""})}async function B(t,e){return Promise.reject({config:{},data:e,headers:{},status:t,statusText:""})}function q(t,e){return R.COMMON_LIB_SETTINGS.WITH_MOCKS?e:t}function M(t){localStorage.setItem("testUser",JSON.stringify(t))}function K(){localStorage.removeItem("testUser")}function V(){let t=localStorage.getItem("testUser");if(!t)return null;let e=JSON.parse(t);return Qt(e)?e:(localStorage.removeItem("testUser"),null)}function Qt(t){if(!t||typeof t!="object")return!1;for(let e in R.userStub)if(!(e in t))return!1;return Object.keys(R.userStub).length===Object.keys(t).length}var E={email:"email@gmail.com",accessToken:"token",id:"id",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};var z=require("@ducks-tinder-client/common"),ft={async registration(t,e,r){return z.mockStorage.currentUser={...z.mockStorage.currentUser,name:e},M(z.mockStorage.currentUser),S({...E,...z.mockStorage.currentUser})},async login(t,e){return M(z.mockStorage.currentUser),S({...E,...z.mockStorage.currentUser})},async refresh(){let t=V();return t?(z.mockStorage.currentUser=t,S({...E,...t})):B(401)},async logout(){return K(),S()}};var f=require("@ducks-tinder-client/common"),ht=()=>q({async refresh(){return f.instance.get(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/refresh`)},async registration(t,e,r){return f.instance.post(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/register`,{email:t,name:e,password:r})},async login(t,e){return f.instance.post(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/login`,{email:t,password:e})},async logout(){return f.instance.patch(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/logout`)}},ft);var j={authService:null},xt=(t,e)=>(j[t]||(j[t]=e()),j[t]),x=()=>xt("authService",ht);var gt=Vt(require("axios")),zt=require("@ducks-tinder-client/common");function $t(t){t.interceptors.request.use(e=>(e.headers.Authorization="Bearer "+localStorage.getItem("accessToken"),e)),t.interceptors.response.use(e=>e,async e=>{let r=e.config;if(e.config?.url?.endsWith("/auth/refresh"))throw e;if(e.response?.status===401&&!e.config._isRetry){r._isRetry=!0;let o=await gt.default.get(`${zt.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/refresh`,{withCredentials:!0});return localStorage.setItem("accessToken",o.data.accessToken),t.request(r)}throw e})}var kt=require("@ducks-tinder-client/common"),vt=require("react-toastify");function Q(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,At.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o})=>x().login(r,o),onError:r=>{t(null),e(!1),(0,vt.toast)((0,kt.returnErrorMessage)(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var Tt=require("@tanstack/react-query");var St=require("@ducks-tinder-client/common"),yt=require("react-toastify");function $(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,Tt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o,name:a})=>x().registration(r,a,o),onError:r=>{t(null),e(!1),(0,yt.toast)((0,St.returnErrorMessage)(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var bt=require("@tanstack/react-query");function J(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,bt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async()=>x().refresh(),onError:()=>{t(null),e(!1)},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var wt=require("@tanstack/react-query");function Jt(){let t=s(o=>o.setAuthData),e=s(o=>o.setIsAuth),r=g(o=>o.setCurrentUser);return(0,wt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async()=>(localStorage.removeItem("accessToken"),t(null),e(!1),r(null),x().logout())})}var Y=(e=>(e.User="user",e))(Y||{});var Rt=require("@tanstack/react-query");var Et=require("@ducks-tinder-client/common");function Z(){return(0,Rt.useQuery)({queryKey:["user"],queryFn:async()=>Et.serviceGetter.getUserService().getMe(),select:t=>t.data,retryDelay:2e3})}function y(t){let{mutateAsync:e,isPending:r}=Q(),{mutateAsync:o,isPending:a}=$(),i=r||a,{register:c,formState:{errors:N,isValid:G},handleSubmit:Mt}=(0,It.useForm)({mode:"onChange"}),Ft=Mt(async it=>{t?await o(it):await e(it)}),Ot={type:"text",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.email,...c("email",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.emailRequired,pattern:{value:p.EMAIL_REGEXP,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.emailIncorrect},maxLength:{value:30,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getEmailLengthMax(30)}})},Ht={type:"password",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.password,...c("password",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.passwordRequired,minLength:{value:6,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getPasswordLengthMin(6)},maxLength:{value:30,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getPasswordLengthMax(30)}})},st={fields:{email:Ot,password:Ht},validation:{errors:N,isValid:G},submitHandler:Ft,disabled:i};return t&&(st.fields.name={type:"text",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.name,...c("name",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.nameRequired,minLength:{value:2,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getNameLengthMin(2)},maxLength:{value:14,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getNameLengthMax(14)}})}),st}var tt=require("@ducks-tinder-client/common");var et=require("react"),rt=require("react-toastify"),Ut=require("react/jsx-runtime"),ot=t=>r=>{let{data:o,failureCount:a,isError:i,isLoading:c}=Z(),N=g(G=>G.setCurrentUser);return(0,et.useEffect)(()=>{N(o||null)},[o,N]),(0,et.useEffect)(()=>{i&&!o?(0,rt.toast)(tt.COMMON_LIB_SETTINGS.TEXTS.reconnection):a>=1&&(0,rt.toast)(tt.COMMON_LIB_SETTINGS.TEXTS.successConnect)},[o,a,i,c]),!c&&o?(0,Ut.jsx)(t,{...r}):null};var Ct=require("react"),U=require("react-router-dom"),at=require("@ducks-tinder-client/common");var I=require("react/jsx-runtime"),F=t=>r=>{let{pathname:o}=(0,U.useLocation)(),{mutateAsync:a}=J(),i=s(c=>c.isAuth);return(0,Ct.useEffect)(()=>{i===null&&a()},[i,a]),o===at.ROUTES.LOGIN||o===at.ROUTES.REGISTRATION?i?(0,I.jsx)(U.Navigate,{to:"/"}):(0,I.jsx)(t,{...r}):i===!1?(0,I.jsx)(U.Navigate,{to:"/login",replace:!0}):i?(0,I.jsx)(t,{...r}):null};var k=require("react/jsx-runtime"),O=t=>r=>(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(W,{}),(0,k.jsx)(t,{...r})]});var Lt=require("react-router-dom"),b=require("@fortawesome/free-solid-svg-icons"),H=require("@fortawesome/react-fontawesome");var l={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};var C=require("@ducks-tinder-client/ui"),D=require("@ducks-tinder-client/common"),u=require("react/jsx-runtime"),Nt=()=>{let{fields:{email:t,password:e},validation:{errors:r,isValid:o},submitHandler:a,disabled:i}=y();return(0,u.jsx)(T,{errors:r,title:D.COMMON_LIB_SETTINGS.TEXTS.auth.memberLogin,link:(0,u.jsxs)(Lt.Link,{className:l.link,to:"/reg",children:[D.COMMON_LIB_SETTINGS.TEXTS.auth.create,(0,u.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faArrowRightLong})]}),children:(0,u.jsxs)("form",{onSubmit:a,className:l.form,children:[(0,u.jsxs)("div",{className:l.inputWrapper,children:[(0,u.jsx)(C.TextField,{...t,variant:"rounded",extraClassName:l.input}),(0,u.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faEnvelope})]}),(0,u.jsxs)("div",{className:l.inputWrapper,children:[(0,u.jsx)(C.TextField,{...e,variant:"rounded",extraClassName:l.input}),(0,u.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faLock})]}),(0,u.jsx)(C.Button,{type:"submit",rounded:!0,disabled:!o||i,extraClassName:[l.btn,o&&!i?"":l.disabled],children:D.COMMON_LIB_SETTINGS.TEXTS.auth.login})]})})};var Pt=require("react-router-dom"),A=require("@fortawesome/free-solid-svg-icons"),L=require("@fortawesome/react-fontawesome");var m={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};var w=require("@ducks-tinder-client/ui"),X=require("@ducks-tinder-client/common"),n=require("react/jsx-runtime"),Wt=()=>{let{fields:{name:t,email:e,password:r},validation:{errors:o,isValid:a},submitHandler:i,disabled:c}=y(!0);return(0,n.jsx)(T,{errors:o,title:X.COMMON_LIB_SETTINGS.TEXTS.auth.memberSignUp,link:(0,n.jsxs)(Pt.Link,{className:m.link,to:"/login",children:[X.COMMON_LIB_SETTINGS.TEXTS.auth.loginAccount,(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faArrowRightLong})]}),children:(0,n.jsxs)("form",{onSubmit:i,className:m.form,children:[(0,n.jsxs)("div",{className:m.inputWrapper,children:[(0,n.jsx)(w.TextField,{...t,extraClassName:m.input,variant:"rounded"}),(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faFileText})]}),(0,n.jsxs)("div",{className:m.inputWrapper,children:[(0,n.jsx)(w.TextField,{...e,variant:"rounded",extraClassName:m.input}),(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faEnvelope})]}),(0,n.jsxs)("div",{className:m.inputWrapper,children:[(0,n.jsx)(w.TextField,{...r,variant:"rounded",extraClassName:m.input}),(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faLock})]}),(0,n.jsx)(w.Button,{type:"submit",rounded:!0,disabled:!a||c,extraClassName:[m.btn,a&&!c?"":m.disabled],children:X.COMMON_LIB_SETTINGS.TEXTS.auth.signUp})]})})};_.APP_PRIVATE_HOC_COMPOSITION.addHocs(_.HocCompositionStage.BOOTSTRAPPING,[O]);_.APP_PRIVATE_HOC_COMPOSITION.addHocs(_.HocCompositionStage.AUTH_CHECK,[F]);_.APP_PRIVATE_HOC_COMPOSITION.addHocs(_.HocCompositionStage.USER_HYDRATION,[ot]);_.APP_AUTH_HOC_COMPOSITION.addHocs(_.HocCompositionStage.BOOTSTRAPPING,[O]);_.APP_AUTH_HOC_COMPOSITION.addHocs(_.HocCompositionStage.AUTH_CHECK,[F]);
|
|
1
|
+
"use strict";var Dt=Object.create;var P=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Bt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Kt=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},it=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Gt(e))!qt.call(t,a)&&a!==r&&P(t,a,{get:()=>e[a],enumerable:!(o=Xt(e,a))||o.enumerable});return t};var Vt=(t,e,r)=>(r=t!=null?Dt(Bt(t)):{},it(e||!t||!t.__esModule?P(r,"default",{value:t,enumerable:!0}):r,t)),jt=t=>it(P({},"__esModule",{value:!0}),t);var Yt={};Kt(Yt,{AuthLayout:()=>T,AuthQueryKey:()=>v,InitialLoading:()=>W,LoginForm:()=>Nt,RegistrationForm:()=>Wt,UserQueryKey:()=>Y,WithAuthRedirect:()=>F,WithInitialLoading:()=>O,WithUserData:()=>ot,authResponseStub:()=>R,deleteTestUser:()=>K,getAuthService:()=>g,getMockableService:()=>q,getOrCreateService:()=>xt,getTestUser:()=>V,rejectWithAxiosResponseError:()=>B,resolveAxiosResponse:()=>S,saveTestUser:()=>M,setUpInterceptors:()=>$t,useAuthForm:()=>y,useAuthStore:()=>s,useGetCurrentUserQuery:()=>Z,useLoginMutation:()=>Q,useLogoutMutation:()=>Jt,useRefreshMutation:()=>J,useRegisterMutation:()=>$,useUserStore:()=>f});module.exports=jt(Yt);var u=require("@ducks-tinder-client/common");var Ut=require("react-hook-form"),p=require("@ducks-tinder-client/common");var v=(e=>(e.AuthMutation="auth-data-mutation",e))(v||{});var x={auth:"_auth_4slza_1",container:"_container_4slza_6",wrapper:"_wrapper_4slza_17",formWrapper:"_formWrapper_4slza_32",title:"_title_4slza_35",validation:"_validation_4slza_45",error:"_error_4slza_50",navigate:"_navigate_4slza_55"};var pt=require("@ducks-tinder-client/ui"),d=require("react/jsx-runtime"),T=({errors:t,title:e,children:r,link:o})=>(0,d.jsx)("div",{className:x.auth,children:(0,d.jsx)("div",{className:x.container,children:(0,d.jsxs)("div",{className:x.wrapper,children:[(0,d.jsx)("img",{draggable:!1,src:pt.authDuck,alt:"IMG"}),(0,d.jsxs)("div",{className:x.formWrapper,children:[(0,d.jsx)("span",{className:x.title,children:e}),(0,d.jsx)("div",{className:x.validation,children:Object.values(t).map((a,n)=>(0,d.jsx)("div",{className:x.error,children:a.message?.toString()},n))}),r,(0,d.jsx)("div",{className:x.navigate,children:o})]})]})})});var ct=require("@ducks-tinder-client/ui");var mt=require("zustand"),ut=require("zustand/middleware"),s=(0,mt.create)()((0,ut.devtools)(t=>({isAuth:null,authData:null,setIsAuth:e=>t(()=>({isAuth:e})),setAuthData:e=>t(()=>({authData:e}))}),{name:"authStore"}));var _t=require("zustand"),lt=require("zustand/middleware"),f=(0,_t.create)()((0,lt.devtools)(t=>({currentUser:null,setCurrentUser:e=>t(()=>({currentUser:e}))}),{name:"userStore"}));var dt=require("react/jsx-runtime"),W=()=>{let t=s(r=>r.isAuth),e=f(r=>r.currentUser);return(0,dt.jsx)(ct.LoadingPage,{visible:t===null&&e===null||t===!0&&e===null})};var At=require("@tanstack/react-query");var E=require("@ducks-tinder-client/common");async function S(t){return Promise.resolve({config:{},data:t,headers:{},status:200,statusText:""})}async function B(t,e){return Promise.reject({config:{},data:e,headers:{},status:t,statusText:""})}function q(t,e){return E.COMMON_LIB_SETTINGS.WITH_MOCKS?e:t}function M(t){localStorage.setItem("testUser",JSON.stringify(t))}function K(){localStorage.removeItem("testUser")}function V(){let t=localStorage.getItem("testUser");if(!t)return null;let e=JSON.parse(t);return Qt(e)?e:(localStorage.removeItem("testUser"),null)}function Qt(t){if(!t||typeof t!="object")return!1;for(let e in E.userStub)if(!(e in t))return!1;return Object.keys(E.userStub).length===Object.keys(t).length}var R={email:"email@gmail.com",accessToken:"token",id:"id",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};var z=require("@ducks-tinder-client/common"),ft={async registration(t,e,r){return z.mockStorage.currentUser={...z.mockStorage.currentUser,name:e},M(z.mockStorage.currentUser),S({...R,...z.mockStorage.currentUser})},async login(t,e){return M(z.mockStorage.currentUser),S({...R,...z.mockStorage.currentUser})},async refresh(){let t=V();return t?(z.mockStorage.currentUser=t,S({...R,...t})):B(401)},async logout(){return K(),S()}};var h=require("@ducks-tinder-client/common"),ht=()=>q({async refresh(){return h.instance.get(`${h.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/refresh`)},async registration(t,e,r){return h.instance.post(`${h.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/register`,{email:t,name:e,password:r})},async login(t,e){return h.instance.post(`${h.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/login`,{email:t,password:e})},async logout(){return h.instance.patch(`${h.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/logout`)}},ft);var j={authService:null},xt=(t,e)=>(j[t]||(j[t]=e()),j[t]),g=()=>xt("authService",ht);var gt=Vt(require("axios")),zt=require("@ducks-tinder-client/common");function $t(t){t.interceptors.request.use(e=>(e.headers.Authorization="Bearer "+localStorage.getItem("accessToken"),e)),t.interceptors.response.use(e=>e,async e=>{let r=e.config;if(e.config?.url?.endsWith("/auth/refresh"))throw e;if(e.response?.status===401&&!e.config._isRetry){r._isRetry=!0;let o=await gt.default.get(`${zt.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/refresh`,{withCredentials:!0});return localStorage.setItem("accessToken",o.data.accessToken),t.request(r)}throw e})}var kt=require("@ducks-tinder-client/common"),vt=require("react-toastify");function Q(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,At.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o})=>g().login(r,o),onError:r=>{t(null),e(!1),(0,vt.toast)((0,kt.returnErrorMessage)(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var Tt=require("@tanstack/react-query");var St=require("@ducks-tinder-client/common"),yt=require("react-toastify");function $(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,Tt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o,name:a})=>g().registration(r,a,o),onError:r=>{t(null),e(!1),(0,yt.toast)((0,St.returnErrorMessage)(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var bt=require("@tanstack/react-query");function J(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,bt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async()=>g().refresh(),onError:()=>{t(null),e(!1)},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var wt=require("@tanstack/react-query");function Jt(){let t=s(o=>o.setAuthData),e=s(o=>o.setIsAuth),r=f(o=>o.setCurrentUser);return(0,wt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async()=>(localStorage.removeItem("accessToken"),t(null),e(!1),r(null),g().logout())})}var Y=(e=>(e.User="user",e))(Y||{});var Et=require("@tanstack/react-query");var Rt=require("@ducks-tinder-client/common");function Z(){return(0,Et.useQuery)({queryKey:["user"],queryFn:async()=>Rt.serviceGetter.getUserService().getMe(),select:t=>t.data,retryDelay:2e3})}function y(t){let{mutateAsync:e,isPending:r}=Q(),{mutateAsync:o,isPending:a}=$(),n=r||a,{register:c,formState:{errors:N,isValid:G},handleSubmit:Mt}=(0,Ut.useForm)({mode:"onChange"}),Ft=Mt(async nt=>{t?await o(nt):await e(nt)}),Ot={type:"text",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.email,...c("email",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.emailRequired,pattern:{value:p.EMAIL_REGEXP,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.emailIncorrect},maxLength:{value:30,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getEmailLengthMax(30)}})},Ht={type:"password",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.password,...c("password",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.passwordRequired,minLength:{value:6,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getPasswordLengthMin(6)},maxLength:{value:30,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getPasswordLengthMax(30)}})},st={fields:{email:Ot,password:Ht},validation:{errors:N,isValid:G},submitHandler:Ft,disabled:n};return t&&(st.fields.name={type:"text",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.name,...c("name",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.nameRequired,minLength:{value:2,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getNameLengthMin(2)},maxLength:{value:14,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getNameLengthMax(14)}})}),st}var tt=require("@ducks-tinder-client/common");var et=require("react"),rt=require("react-toastify"),It=require("react/jsx-runtime"),ot=t=>r=>{let{data:o,failureCount:a,isError:n,isLoading:c}=Z(),N=f(G=>G.setCurrentUser);return(0,et.useEffect)(()=>{N(o||null)},[o,N]),(0,et.useEffect)(()=>{n&&!o?(0,rt.toast)(tt.COMMON_LIB_SETTINGS.TEXTS.reconnection):a>=1&&(0,rt.toast)(tt.COMMON_LIB_SETTINGS.TEXTS.successConnect)},[o,a,n,c]),!c&&o?(0,It.jsx)(t,{...r}):null};var Ct=require("react"),I=require("react-router-dom"),at=require("@ducks-tinder-client/common");var U=require("react/jsx-runtime"),F=t=>r=>{let{pathname:o}=(0,I.useLocation)(),{mutateAsync:a}=J(),n=s(c=>c.isAuth);return(0,Ct.useEffect)(()=>{n===null&&a()},[n,a]),o===at.ROUTES.LOGIN||o===at.ROUTES.REGISTRATION?n?(0,U.jsx)(I.Navigate,{to:"/"}):(0,U.jsx)(t,{...r}):n===!1?(0,U.jsx)(I.Navigate,{to:"/login",replace:!0}):n?(0,U.jsx)(t,{...r}):null};var k=require("react/jsx-runtime"),O=t=>r=>(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(W,{}),(0,k.jsx)(t,{...r})]});var Lt=require("react-router-dom"),b=require("@fortawesome/free-solid-svg-icons"),H=require("@fortawesome/react-fontawesome");var l={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};var C=require("@ducks-tinder-client/ui"),D=require("@ducks-tinder-client/common"),_=require("react/jsx-runtime"),Nt=()=>{let{fields:{email:t,password:e},validation:{errors:r,isValid:o},submitHandler:a,disabled:n}=y();return(0,_.jsx)(T,{errors:r,title:D.COMMON_LIB_SETTINGS.TEXTS.auth.memberLogin,link:(0,_.jsxs)(Lt.Link,{className:l.link,to:"/reg",children:[D.COMMON_LIB_SETTINGS.TEXTS.auth.create,(0,_.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faArrowRightLong})]}),children:(0,_.jsxs)("form",{onSubmit:a,className:l.form,children:[(0,_.jsxs)("div",{className:l.inputWrapper,children:[(0,_.jsx)(C.TextField,{...t,variant:"rounded",extraClassName:l.input}),(0,_.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faEnvelope})]}),(0,_.jsxs)("div",{className:l.inputWrapper,children:[(0,_.jsx)(C.TextField,{...e,variant:"rounded",extraClassName:l.input}),(0,_.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faLock})]}),(0,_.jsx)(C.Button,{type:"submit",rounded:!0,disabled:!o||n,extraClassName:[l.btn,o&&!n?"":l.disabled],children:D.COMMON_LIB_SETTINGS.TEXTS.auth.login})]})})};var Pt=require("react-router-dom"),A=require("@fortawesome/free-solid-svg-icons"),L=require("@fortawesome/react-fontawesome");var m={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};var w=require("@ducks-tinder-client/ui"),X=require("@ducks-tinder-client/common"),i=require("react/jsx-runtime"),Wt=()=>{let{fields:{name:t,email:e,password:r},validation:{errors:o,isValid:a},submitHandler:n,disabled:c}=y(!0);return(0,i.jsx)(T,{errors:o,title:X.COMMON_LIB_SETTINGS.TEXTS.auth.memberSignUp,link:(0,i.jsxs)(Pt.Link,{className:m.link,to:"/login",children:[X.COMMON_LIB_SETTINGS.TEXTS.auth.loginAccount,(0,i.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faArrowRightLong})]}),children:(0,i.jsxs)("form",{onSubmit:n,className:m.form,children:[(0,i.jsxs)("div",{className:m.inputWrapper,children:[(0,i.jsx)(w.TextField,{...t,extraClassName:m.input,variant:"rounded"}),(0,i.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faFileText})]}),(0,i.jsxs)("div",{className:m.inputWrapper,children:[(0,i.jsx)(w.TextField,{...e,variant:"rounded",extraClassName:m.input}),(0,i.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faEnvelope})]}),(0,i.jsxs)("div",{className:m.inputWrapper,children:[(0,i.jsx)(w.TextField,{...r,variant:"rounded",extraClassName:m.input}),(0,i.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faLock})]}),(0,i.jsx)(w.Button,{type:"submit",rounded:!0,disabled:!a||c,extraClassName:[m.btn,a&&!c?"":m.disabled],children:X.COMMON_LIB_SETTINGS.TEXTS.auth.signUp})]})})};u.APP_PRIVATE_HOC_COMPOSITION.addHocs(u.HocCompositionStage.BOOTSTRAPPING,[O]);u.APP_PRIVATE_HOC_COMPOSITION.addHocs(u.HocCompositionStage.AUTH_CHECK,[F]);u.APP_PRIVATE_HOC_COMPOSITION.addHocs(u.HocCompositionStage.USER_HYDRATION,[ot]);u.APP_AUTH_HOC_COMPOSITION.addHocs(u.HocCompositionStage.BOOTSTRAPPING,[O]);u.APP_AUTH_HOC_COMPOSITION.addHocs(u.HocCompositionStage.AUTH_CHECK,[F]);u.globalEventEmitter.on("set-user",t=>{f.getState().setCurrentUser(t)});
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{APP_AUTH_HOC_COMPOSITION as _t,APP_PRIVATE_HOC_COMPOSITION as D,HocCompositionStage as T}from"@ducks-tinder-client/common";import{useForm as Ft}from"react-hook-form";import{COMMON_LIB_SETTINGS as p,EMAIL_REGEXP as Ot}from"@ducks-tinder-client/common";var g=(e=>(e.AuthMutation="auth-data-mutation",e))(g||{});var _={auth:"_auth_4slza_1",container:"_container_4slza_6",wrapper:"_wrapper_4slza_17",formWrapper:"_formWrapper_4slza_32",title:"_title_4slza_35",validation:"_validation_4slza_45",error:"_error_4slza_50",navigate:"_navigate_4slza_55"};import{authDuck as ht}from"@ducks-tinder-client/ui";import{jsx as d,jsxs as B}from"react/jsx-runtime";var z=({errors:t,title:e,children:r,link:o})=>d("div",{className:_.auth,children:d("div",{className:_.container,children:B("div",{className:_.wrapper,children:[d("img",{draggable:!1,src:ht,alt:"IMG"}),B("div",{className:_.formWrapper,children:[d("span",{className:_.title,children:e}),d("div",{className:_.validation,children:Object.values(t).map((a,s)=>d("div",{className:_.error,children:a.message?.toString()},s))}),r,d("div",{className:_.navigate,children:o})]})]})})});import{LoadingPage as kt}from"@ducks-tinder-client/ui";import{create as xt}from"zustand";import{devtools as gt}from"zustand/middleware";var i=xt()(gt(t=>({isAuth:null,authData:null,setIsAuth:e=>t(()=>({isAuth:e})),setAuthData:e=>t(()=>({authData:e}))})));import{create as zt}from"zustand";import{devtools as At}from"zustand/middleware";var f=zt()(At(t=>({currentUser:null,setCurrentUser:e=>t(()=>({currentUser:e}))})));import{jsx as vt}from"react/jsx-runtime";var C=()=>{let t=i(r=>r.isAuth),e=f(r=>r.currentUser);return vt(kt,{visible:t===null&&e===null||t===!0&&e===null})};import{useMutation as Rt}from"@tanstack/react-query";import{COMMON_LIB_SETTINGS as Tt,userStub as q}from"@ducks-tinder-client/common";async function A(t){return Promise.resolve({config:{},data:t,headers:{},status:200,statusText:""})}async function K(t,e){return Promise.reject({config:{},data:e,headers:{},status:t,statusText:""})}function V(t,e){return Tt.WITH_MOCKS?e:t}function L(t){localStorage.setItem("testUser",JSON.stringify(t))}function j(){localStorage.removeItem("testUser")}function Q(){let t=localStorage.getItem("testUser");if(!t)return null;let e=JSON.parse(t);return St(e)?e:(localStorage.removeItem("testUser"),null)}function St(t){if(!t||typeof t!="object")return!1;for(let e in q)if(!(e in t))return!1;return Object.keys(q).length===Object.keys(t).length}var y={email:"email@gmail.com",accessToken:"token",id:"id",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};import{mockStorage as h}from"@ducks-tinder-client/common";var $={async registration(t,e,r){return h.currentUser={...h.currentUser,name:e},L(h.currentUser),A({...y,...h.currentUser})},async login(t,e){return L(h.currentUser),A({...y,...h.currentUser})},async refresh(){let t=Q();return t?(h.currentUser=t,A({...y,...t})):K(401)},async logout(){return j(),A()}};import{COMMON_LIB_SETTINGS as b,instance as w}from"@ducks-tinder-client/common";var J=()=>V({async refresh(){return w.get(`${b.AUTH_SERVICE_URL}/auth/refresh`)},async registration(t,e,r){return w.post(`${b.AUTH_SERVICE_URL}/auth/register`,{email:t,name:e,password:r})},async login(t,e){return w.post(`${b.AUTH_SERVICE_URL}/auth/login`,{email:t,password:e})},async logout(){return w.patch(`${b.AUTH_SERVICE_URL}/auth/logout`)}},$);var N={authService:null},yt=(t,e)=>(N[t]||(N[t]=e()),N[t]),c=()=>yt("authService",J);import bt from"axios";import{COMMON_LIB_SETTINGS as wt}from"@ducks-tinder-client/common";function ir(t){t.interceptors.request.use(e=>(e.headers.Authorization="Bearer "+localStorage.getItem("accessToken"),e)),t.interceptors.response.use(e=>e,async e=>{let r=e.config;if(e.config?.url?.endsWith("/auth/refresh"))throw e;if(e.response?.status===401&&!e.config._isRetry){r._isRetry=!0;let o=await bt.get(`${wt.AUTH_SERVICE_URL}/auth/refresh`,{withCredentials:!0});return localStorage.setItem("accessToken",o.data.accessToken),t.request(r)}throw e})}import{returnErrorMessage as Et}from"@ducks-tinder-client/common";import{toast as It}from"react-toastify";function Y(){let t=i(r=>r.setAuthData),e=i(r=>r.setIsAuth);return Rt({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o})=>c().login(r,o),onError:r=>{t(null),e(!1),It(Et(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Ut}from"@tanstack/react-query";import{returnErrorMessage as Ct}from"@ducks-tinder-client/common";import{toast as Lt}from"react-toastify";function Z(){let t=i(r=>r.setAuthData),e=i(r=>r.setIsAuth);return Ut({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o,name:a})=>c().registration(r,a,o),onError:r=>{t(null),e(!1),Lt(Ct(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Nt}from"@tanstack/react-query";function tt(){let t=i(r=>r.setAuthData),e=i(r=>r.setIsAuth);return Nt({mutationKey:["auth-data-mutation"],mutationFn:async()=>c().refresh(),onError:()=>{t(null),e(!1)},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Pt}from"@tanstack/react-query";function Pr(){let t=i(o=>o.setAuthData),e=i(o=>o.setIsAuth),r=f(o=>o.setCurrentUser);return Pt({mutationKey:["auth-data-mutation"],mutationFn:async()=>(localStorage.removeItem("accessToken"),t(null),e(!1),r(null),c().logout())})}var et=(e=>(e.User="user",e))(et||{});import{useQuery as Wt}from"@tanstack/react-query";import{serviceGetter as Mt}from"@ducks-tinder-client/common";function rt(){return Wt({queryKey:["user"],queryFn:async()=>Mt.getUserService().getMe(),select:t=>t.data,retryDelay:2e3})}function k(t){let{mutateAsync:e,isPending:r}=Y(),{mutateAsync:o,isPending:a}=Z(),s=r||a,{register:u,formState:{errors:S,isValid:U},handleSubmit:lt}=Ft({mode:"onChange"}),ct=lt(async G=>{t?await o(G):await e(G)}),dt={type:"text",placeholder:p.TEXTS.auth.email,...u("email",{required:p.TEXTS.auth.emailRequired,pattern:{value:Ot,message:p.TEXTS.auth.emailIncorrect},maxLength:{value:30,message:p.TEXTS.auth.getEmailLengthMax(30)}})},ft={type:"password",placeholder:p.TEXTS.auth.password,...u("password",{required:p.TEXTS.auth.passwordRequired,minLength:{value:6,message:p.TEXTS.auth.getPasswordLengthMin(6)},maxLength:{value:30,message:p.TEXTS.auth.getPasswordLengthMax(30)}})},X={fields:{email:dt,password:ft},validation:{errors:S,isValid:U},submitHandler:ct,disabled:s};return t&&(X.fields.name={type:"text",placeholder:p.TEXTS.auth.name,...u("name",{required:p.TEXTS.auth.nameRequired,minLength:{value:2,message:p.TEXTS.auth.getNameLengthMin(2)},maxLength:{value:14,message:p.TEXTS.auth.getNameLengthMax(14)}})}),X}import{COMMON_LIB_SETTINGS as ot}from"@ducks-tinder-client/common";import{useEffect as at}from"react";import{toast as st}from"react-toastify";import{jsx as Ht}from"react/jsx-runtime";var it=t=>r=>{let{data:o,failureCount:a,isError:s,isLoading:u}=rt(),S=f(U=>U.setCurrentUser);return at(()=>{S(o||null)},[o,S]),at(()=>{s&&!o?st(ot.TEXTS.reconnection):a>=1&&st(ot.TEXTS.successConnect)},[o,a,s,u]),!u&&o?Ht(t,{...r}):null};import{useEffect as Dt}from"react";import{Navigate as nt,useLocation as Xt}from"react-router-dom";import{ROUTES as pt}from"@ducks-tinder-client/common";import{jsx as R}from"react/jsx-runtime";var P=t=>r=>{let{pathname:o}=Xt(),{mutateAsync:a}=tt(),s=i(u=>u.isAuth);return Dt(()=>{s===null&&a()},[s,a]),o===pt.LOGIN||o===pt.REGISTRATION?s?R(nt,{to:"/"}):R(t,{...r}):s===!1?R(nt,{to:"/login",replace:!0}):s?R(t,{...r}):null};import{Fragment as Gt,jsx as mt,jsxs as Bt}from"react/jsx-runtime";var W=t=>r=>Bt(Gt,{children:[mt(C,{}),mt(t,{...r})]});import{Link as qt}from"react-router-dom";import{faArrowRightLong as Kt,faEnvelope as Vt,faLock as jt}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as M}from"@fortawesome/react-fontawesome";var m={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};import{Button as Qt,TextField as ut}from"@ducks-tinder-client/ui";import{COMMON_LIB_SETTINGS as F}from"@ducks-tinder-client/common";import{jsx as x,jsxs as E}from"react/jsx-runtime";var $t=()=>{let{fields:{email:t,password:e},validation:{errors:r,isValid:o},submitHandler:a,disabled:s}=k();return x(z,{errors:r,title:F.TEXTS.auth.memberLogin,link:E(qt,{className:m.link,to:"/reg",children:[F.TEXTS.auth.create,x(M,{className:m.icon,icon:Kt})]}),children:E("form",{onSubmit:a,className:m.form,children:[E("div",{className:m.inputWrapper,children:[x(ut,{...t,variant:"rounded",extraClassName:m.input}),x(M,{className:m.icon,icon:Vt})]}),E("div",{className:m.inputWrapper,children:[x(ut,{...e,variant:"rounded",extraClassName:m.input}),x(M,{className:m.icon,icon:jt})]}),x(Qt,{type:"submit",rounded:!0,disabled:!o||s,extraClassName:[m.btn,o&&!s?"":m.disabled],children:F.TEXTS.auth.login})]})})};import{Link as Jt}from"react-router-dom";import{faArrowRightLong as Yt,faEnvelope as Zt,faFileText as te,faLock as ee}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as I}from"@fortawesome/react-fontawesome";var n={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};import{Button as re,TextField as O}from"@ducks-tinder-client/ui";import{COMMON_LIB_SETTINGS as H}from"@ducks-tinder-client/common";import{jsx as l,jsxs as v}from"react/jsx-runtime";var oe=()=>{let{fields:{name:t,email:e,password:r},validation:{errors:o,isValid:a},submitHandler:s,disabled:u}=k(!0);return l(z,{errors:o,title:H.TEXTS.auth.memberSignUp,link:v(Jt,{className:n.link,to:"/login",children:[H.TEXTS.auth.loginAccount,l(I,{className:n.icon,icon:Yt})]}),children:v("form",{onSubmit:s,className:n.form,children:[v("div",{className:n.inputWrapper,children:[l(O,{...t,extraClassName:n.input,variant:"rounded"}),l(I,{className:n.icon,icon:te})]}),v("div",{className:n.inputWrapper,children:[l(O,{...e,variant:"rounded",extraClassName:n.input}),l(I,{className:n.icon,icon:Zt})]}),v("div",{className:n.inputWrapper,children:[l(O,{...r,variant:"rounded",extraClassName:n.input}),l(I,{className:n.icon,icon:ee})]}),l(re,{type:"submit",rounded:!0,disabled:!a||u,extraClassName:[n.btn,a&&!u?"":n.disabled],children:H.TEXTS.auth.signUp})]})})};D.addHocs(T.BOOTSTRAPPING,[W]);D.addHocs(T.AUTH_CHECK,[P]);D.addHocs(T.USER_HYDRATION,[it]);_t.addHocs(T.BOOTSTRAPPING,[W]);_t.addHocs(T.AUTH_CHECK,[P]);export{z as AuthLayout,g as AuthQueryKey,C as InitialLoading,$t as LoginForm,oe as RegistrationForm,et as UserQueryKey,P as WithAuthRedirect,W as WithInitialLoading,it as WithUserData,y as authResponseStub,j as deleteTestUser,c as getAuthService,V as getMockableService,yt as getOrCreateService,Q as getTestUser,K as rejectWithAxiosResponseError,A as resolveAxiosResponse,L as saveTestUser,ir as setUpInterceptors,k as useAuthForm,i as useAuthStore,rt as useGetCurrentUserQuery,Y as useLoginMutation,Pr as useLogoutMutation,tt as useRefreshMutation,Z as useRegisterMutation,f as useUserStore};
|
|
1
|
+
import{APP_AUTH_HOC_COMPOSITION as _t,APP_PRIVATE_HOC_COMPOSITION as D,globalEventEmitter as ae,HocCompositionStage as T}from"@ducks-tinder-client/common";import{useForm as Ft}from"react-hook-form";import{COMMON_LIB_SETTINGS as p,EMAIL_REGEXP as Ot}from"@ducks-tinder-client/common";var g=(e=>(e.AuthMutation="auth-data-mutation",e))(g||{});var _={auth:"_auth_4slza_1",container:"_container_4slza_6",wrapper:"_wrapper_4slza_17",formWrapper:"_formWrapper_4slza_32",title:"_title_4slza_35",validation:"_validation_4slza_45",error:"_error_4slza_50",navigate:"_navigate_4slza_55"};import{authDuck as ht}from"@ducks-tinder-client/ui";import{jsx as f,jsxs as B}from"react/jsx-runtime";var z=({errors:t,title:e,children:r,link:o})=>f("div",{className:_.auth,children:f("div",{className:_.container,children:B("div",{className:_.wrapper,children:[f("img",{draggable:!1,src:ht,alt:"IMG"}),B("div",{className:_.formWrapper,children:[f("span",{className:_.title,children:e}),f("div",{className:_.validation,children:Object.values(t).map((a,s)=>f("div",{className:_.error,children:a.message?.toString()},s))}),r,f("div",{className:_.navigate,children:o})]})]})})});import{LoadingPage as kt}from"@ducks-tinder-client/ui";import{create as xt}from"zustand";import{devtools as gt}from"zustand/middleware";var n=xt()(gt(t=>({isAuth:null,authData:null,setIsAuth:e=>t(()=>({isAuth:e})),setAuthData:e=>t(()=>({authData:e}))}),{name:"authStore"}));import{create as zt}from"zustand";import{devtools as At}from"zustand/middleware";var l=zt()(At(t=>({currentUser:null,setCurrentUser:e=>t(()=>({currentUser:e}))}),{name:"userStore"}));import{jsx as vt}from"react/jsx-runtime";var C=()=>{let t=n(r=>r.isAuth),e=l(r=>r.currentUser);return vt(kt,{visible:t===null&&e===null||t===!0&&e===null})};import{useMutation as Et}from"@tanstack/react-query";import{COMMON_LIB_SETTINGS as Tt,userStub as q}from"@ducks-tinder-client/common";async function A(t){return Promise.resolve({config:{},data:t,headers:{},status:200,statusText:""})}async function K(t,e){return Promise.reject({config:{},data:e,headers:{},status:t,statusText:""})}function V(t,e){return Tt.WITH_MOCKS?e:t}function L(t){localStorage.setItem("testUser",JSON.stringify(t))}function j(){localStorage.removeItem("testUser")}function Q(){let t=localStorage.getItem("testUser");if(!t)return null;let e=JSON.parse(t);return St(e)?e:(localStorage.removeItem("testUser"),null)}function St(t){if(!t||typeof t!="object")return!1;for(let e in q)if(!(e in t))return!1;return Object.keys(q).length===Object.keys(t).length}var y={email:"email@gmail.com",accessToken:"token",id:"id",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};import{mockStorage as h}from"@ducks-tinder-client/common";var $={async registration(t,e,r){return h.currentUser={...h.currentUser,name:e},L(h.currentUser),A({...y,...h.currentUser})},async login(t,e){return L(h.currentUser),A({...y,...h.currentUser})},async refresh(){let t=Q();return t?(h.currentUser=t,A({...y,...t})):K(401)},async logout(){return j(),A()}};import{COMMON_LIB_SETTINGS as b,instance as w}from"@ducks-tinder-client/common";var J=()=>V({async refresh(){return w.get(`${b.AUTH_SERVICE_URL}/auth/refresh`)},async registration(t,e,r){return w.post(`${b.AUTH_SERVICE_URL}/auth/register`,{email:t,name:e,password:r})},async login(t,e){return w.post(`${b.AUTH_SERVICE_URL}/auth/login`,{email:t,password:e})},async logout(){return w.patch(`${b.AUTH_SERVICE_URL}/auth/logout`)}},$);var N={authService:null},yt=(t,e)=>(N[t]||(N[t]=e()),N[t]),d=()=>yt("authService",J);import bt from"axios";import{COMMON_LIB_SETTINGS as wt}from"@ducks-tinder-client/common";function ir(t){t.interceptors.request.use(e=>(e.headers.Authorization="Bearer "+localStorage.getItem("accessToken"),e)),t.interceptors.response.use(e=>e,async e=>{let r=e.config;if(e.config?.url?.endsWith("/auth/refresh"))throw e;if(e.response?.status===401&&!e.config._isRetry){r._isRetry=!0;let o=await bt.get(`${wt.AUTH_SERVICE_URL}/auth/refresh`,{withCredentials:!0});return localStorage.setItem("accessToken",o.data.accessToken),t.request(r)}throw e})}import{returnErrorMessage as Rt}from"@ducks-tinder-client/common";import{toast as Ut}from"react-toastify";function Y(){let t=n(r=>r.setAuthData),e=n(r=>r.setIsAuth);return Et({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o})=>d().login(r,o),onError:r=>{t(null),e(!1),Ut(Rt(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as It}from"@tanstack/react-query";import{returnErrorMessage as Ct}from"@ducks-tinder-client/common";import{toast as Lt}from"react-toastify";function Z(){let t=n(r=>r.setAuthData),e=n(r=>r.setIsAuth);return It({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o,name:a})=>d().registration(r,a,o),onError:r=>{t(null),e(!1),Lt(Ct(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Nt}from"@tanstack/react-query";function tt(){let t=n(r=>r.setAuthData),e=n(r=>r.setIsAuth);return Nt({mutationKey:["auth-data-mutation"],mutationFn:async()=>d().refresh(),onError:()=>{t(null),e(!1)},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Pt}from"@tanstack/react-query";function Wr(){let t=n(o=>o.setAuthData),e=n(o=>o.setIsAuth),r=l(o=>o.setCurrentUser);return Pt({mutationKey:["auth-data-mutation"],mutationFn:async()=>(localStorage.removeItem("accessToken"),t(null),e(!1),r(null),d().logout())})}var et=(e=>(e.User="user",e))(et||{});import{useQuery as Wt}from"@tanstack/react-query";import{serviceGetter as Mt}from"@ducks-tinder-client/common";function rt(){return Wt({queryKey:["user"],queryFn:async()=>Mt.getUserService().getMe(),select:t=>t.data,retryDelay:2e3})}function k(t){let{mutateAsync:e,isPending:r}=Y(),{mutateAsync:o,isPending:a}=Z(),s=r||a,{register:u,formState:{errors:S,isValid:I},handleSubmit:lt}=Ft({mode:"onChange"}),ct=lt(async G=>{t?await o(G):await e(G)}),dt={type:"text",placeholder:p.TEXTS.auth.email,...u("email",{required:p.TEXTS.auth.emailRequired,pattern:{value:Ot,message:p.TEXTS.auth.emailIncorrect},maxLength:{value:30,message:p.TEXTS.auth.getEmailLengthMax(30)}})},ft={type:"password",placeholder:p.TEXTS.auth.password,...u("password",{required:p.TEXTS.auth.passwordRequired,minLength:{value:6,message:p.TEXTS.auth.getPasswordLengthMin(6)},maxLength:{value:30,message:p.TEXTS.auth.getPasswordLengthMax(30)}})},X={fields:{email:dt,password:ft},validation:{errors:S,isValid:I},submitHandler:ct,disabled:s};return t&&(X.fields.name={type:"text",placeholder:p.TEXTS.auth.name,...u("name",{required:p.TEXTS.auth.nameRequired,minLength:{value:2,message:p.TEXTS.auth.getNameLengthMin(2)},maxLength:{value:14,message:p.TEXTS.auth.getNameLengthMax(14)}})}),X}import{COMMON_LIB_SETTINGS as ot}from"@ducks-tinder-client/common";import{useEffect as at}from"react";import{toast as st}from"react-toastify";import{jsx as Ht}from"react/jsx-runtime";var nt=t=>r=>{let{data:o,failureCount:a,isError:s,isLoading:u}=rt(),S=l(I=>I.setCurrentUser);return at(()=>{S(o||null)},[o,S]),at(()=>{s&&!o?st(ot.TEXTS.reconnection):a>=1&&st(ot.TEXTS.successConnect)},[o,a,s,u]),!u&&o?Ht(t,{...r}):null};import{useEffect as Dt}from"react";import{Navigate as it,useLocation as Xt}from"react-router-dom";import{ROUTES as pt}from"@ducks-tinder-client/common";import{jsx as E}from"react/jsx-runtime";var P=t=>r=>{let{pathname:o}=Xt(),{mutateAsync:a}=tt(),s=n(u=>u.isAuth);return Dt(()=>{s===null&&a()},[s,a]),o===pt.LOGIN||o===pt.REGISTRATION?s?E(it,{to:"/"}):E(t,{...r}):s===!1?E(it,{to:"/login",replace:!0}):s?E(t,{...r}):null};import{Fragment as Gt,jsx as mt,jsxs as Bt}from"react/jsx-runtime";var W=t=>r=>Bt(Gt,{children:[mt(C,{}),mt(t,{...r})]});import{Link as qt}from"react-router-dom";import{faArrowRightLong as Kt,faEnvelope as Vt,faLock as jt}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as M}from"@fortawesome/react-fontawesome";var m={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};import{Button as Qt,TextField as ut}from"@ducks-tinder-client/ui";import{COMMON_LIB_SETTINGS as F}from"@ducks-tinder-client/common";import{jsx as x,jsxs as R}from"react/jsx-runtime";var $t=()=>{let{fields:{email:t,password:e},validation:{errors:r,isValid:o},submitHandler:a,disabled:s}=k();return x(z,{errors:r,title:F.TEXTS.auth.memberLogin,link:R(qt,{className:m.link,to:"/reg",children:[F.TEXTS.auth.create,x(M,{className:m.icon,icon:Kt})]}),children:R("form",{onSubmit:a,className:m.form,children:[R("div",{className:m.inputWrapper,children:[x(ut,{...t,variant:"rounded",extraClassName:m.input}),x(M,{className:m.icon,icon:Vt})]}),R("div",{className:m.inputWrapper,children:[x(ut,{...e,variant:"rounded",extraClassName:m.input}),x(M,{className:m.icon,icon:jt})]}),x(Qt,{type:"submit",rounded:!0,disabled:!o||s,extraClassName:[m.btn,o&&!s?"":m.disabled],children:F.TEXTS.auth.login})]})})};import{Link as Jt}from"react-router-dom";import{faArrowRightLong as Yt,faEnvelope as Zt,faFileText as te,faLock as ee}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as U}from"@fortawesome/react-fontawesome";var i={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};import{Button as re,TextField as O}from"@ducks-tinder-client/ui";import{COMMON_LIB_SETTINGS as H}from"@ducks-tinder-client/common";import{jsx as c,jsxs as v}from"react/jsx-runtime";var oe=()=>{let{fields:{name:t,email:e,password:r},validation:{errors:o,isValid:a},submitHandler:s,disabled:u}=k(!0);return c(z,{errors:o,title:H.TEXTS.auth.memberSignUp,link:v(Jt,{className:i.link,to:"/login",children:[H.TEXTS.auth.loginAccount,c(U,{className:i.icon,icon:Yt})]}),children:v("form",{onSubmit:s,className:i.form,children:[v("div",{className:i.inputWrapper,children:[c(O,{...t,extraClassName:i.input,variant:"rounded"}),c(U,{className:i.icon,icon:te})]}),v("div",{className:i.inputWrapper,children:[c(O,{...e,variant:"rounded",extraClassName:i.input}),c(U,{className:i.icon,icon:Zt})]}),v("div",{className:i.inputWrapper,children:[c(O,{...r,variant:"rounded",extraClassName:i.input}),c(U,{className:i.icon,icon:ee})]}),c(re,{type:"submit",rounded:!0,disabled:!a||u,extraClassName:[i.btn,a&&!u?"":i.disabled],children:H.TEXTS.auth.signUp})]})})};D.addHocs(T.BOOTSTRAPPING,[W]);D.addHocs(T.AUTH_CHECK,[P]);D.addHocs(T.USER_HYDRATION,[nt]);_t.addHocs(T.BOOTSTRAPPING,[W]);_t.addHocs(T.AUTH_CHECK,[P]);ae.on("set-user",t=>{l.getState().setCurrentUser(t)});export{z as AuthLayout,g as AuthQueryKey,C as InitialLoading,$t as LoginForm,oe as RegistrationForm,et as UserQueryKey,P as WithAuthRedirect,W as WithInitialLoading,nt as WithUserData,y as authResponseStub,j as deleteTestUser,d as getAuthService,V as getMockableService,yt as getOrCreateService,Q as getTestUser,K as rejectWithAxiosResponseError,A as resolveAxiosResponse,L as saveTestUser,ir as setUpInterceptors,k as useAuthForm,n as useAuthStore,rt as useGetCurrentUserQuery,Y as useLoginMutation,Wr as useLogoutMutation,tt as useRefreshMutation,Z as useRegisterMutation,l as useUserStore};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ducks-tinder-client/auth",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.4",
|
|
4
4
|
"author": "Stepan B <dark_magic419a@mail.ru> (https://github.com/Stepasha419a)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A module of ui components",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@ducks-tinder-client/ui": "1.1.7-alpha.5",
|
|
43
|
+
"@ducks-tinder-client/common": "1.7.0-alpha.10",
|
|
43
44
|
"@fortawesome/fontawesome-common-types": "6.7.x",
|
|
44
45
|
"@fortawesome/fontawesome-svg-core": "6.7.x",
|
|
45
46
|
"@fortawesome/free-solid-svg-icons": "6.7.x",
|
|
@@ -54,7 +55,6 @@
|
|
|
54
55
|
"react-toastify": "11.0.x"
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
57
|
-
"@ducks-tinder-client/common": "1.7.0-alpha.9",
|
|
58
58
|
"@tanstack/react-query": "^5.100.10",
|
|
59
59
|
"zustand": "^5.0.13"
|
|
60
60
|
},
|