@ducks-tinder-client/auth 1.0.0-alpha.2 → 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.css +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/entities/user/api/auth/index.d.ts +5 -0
- package/dist/entities/user/api/auth/keys.d.ts +3 -0
- package/dist/entities/user/api/auth/useLoginMutation.d.ts +2 -0
- package/dist/entities/user/api/auth/useLogoutMutation.d.ts +1 -0
- package/dist/entities/user/api/auth/useRefreshMutation.d.ts +1 -0
- package/dist/entities/user/api/auth/useRegisterMutation.d.ts +2 -0
- package/dist/entities/user/api/index.d.ts +2 -0
- package/dist/entities/user/api/user/index.d.ts +2 -0
- package/dist/entities/user/api/user/keys.d.ts +3 -0
- package/dist/entities/user/api/user/useGetCurrentUserQuery.d.ts +1 -0
- package/dist/entities/user/index.d.ts +4 -0
- package/dist/entities/user/lib/hocs/WithAuthRedirect.d.ts +2 -0
- package/dist/entities/user/lib/hocs/WithInitialLoading.d.ts +2 -0
- package/dist/entities/user/lib/hocs/WithUserData.d.ts +2 -0
- package/dist/entities/user/lib/hocs/index.d.ts +3 -0
- package/dist/entities/user/lib/hooks/index.d.ts +1 -0
- package/dist/entities/user/lib/hooks/useAuthForm.d.ts +19 -0
- package/dist/entities/user/lib/index.d.ts +2 -0
- package/dist/entities/user/model/auth/auth.interface.d.ts +6 -0
- package/dist/entities/user/model/auth/auth.store.d.ts +24 -0
- package/dist/entities/user/model/auth/index.d.ts +2 -0
- package/dist/entities/user/model/index.d.ts +2 -0
- package/dist/entities/user/model/user/index.d.ts +1 -0
- package/dist/entities/user/model/user/user.store.d.ts +22 -0
- package/dist/entities/user/ui/AuthLayout/AuthLayout.d.ts +10 -0
- package/dist/entities/user/ui/InitialLoading/InitialLoading.d.ts +1 -0
- package/dist/entities/user/ui/index.d.ts +2 -0
- package/dist/esm/index.css +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/features/LoginForm/index.d.ts +1 -0
- package/dist/features/LoginForm/ui/LoginForm.d.ts +2 -0
- package/dist/features/RegistrationForm/index.d.ts +1 -0
- package/dist/features/RegistrationForm/ui/RegistrationForm.d.ts +2 -0
- package/dist/index.d.ts +4 -0
- package/dist/shared/api/index.d.ts +2 -0
- package/dist/shared/api/interceptors.d.ts +2 -0
- package/dist/shared/api/services/auth/auth.interfaces.d.ts +21 -0
- package/dist/shared/api/services/auth/auth.mock-service.d.ts +2 -0
- package/dist/shared/api/services/auth/auth.service.d.ts +2 -0
- package/dist/shared/api/services/index.d.ts +8 -0
- package/dist/shared/api/services/mock/index.d.ts +2 -0
- package/dist/shared/api/services/mock/mock.d.ts +8 -0
- package/dist/shared/api/services/mock/stub/auth.stub.d.ts +2 -0
- package/dist/shared/api/services/mock/stub/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._auth_4slza_1{width:100%;margin:0 auto;height:100%}._auth_4slza_1 ._container_4slza_6{width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding:15px;background:var(--color--purple-100);background:linear-gradient(-135deg,var(--color--purple-90),var(--color--yellow-60))}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:960px;background:var(--bg-sub-primary);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:50px 130px 40px 95px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{width:316px;height:316px;max-width:100%}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:100px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:700;font-size:24px;color:var(--main-primary);line-height:1.2;text-align:center;width:100%;display:block;padding-bottom:54px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45{font-weight:600;font-size:15px;color:var(--danger-main)}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{max-width:290px;text-align:center;margin-bottom:10px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{text-align:center;padding-top:136px;font-size:12px}@media(max-height:750px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:700px;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:800px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{align-items:center;justify-content:center;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{display:none}}@media(max-width:700px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:350px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:400px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:500;font-size:18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{font-size:13px}}._link_1o9kz_1{font-size:14px;line-height:1.5;color:var(--main-secondary);position:relative;padding:10px}._link_1o9kz_1 ._icon_1o9kz_8{position:absolute;top:13px;right:-10px}._form_1o9kz_14{width:290px}._form_1o9kz_14 ._inputWrapper_1o9kz_17{position:relative;margin-bottom:10px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:50px;z-index:1;color:var(--main-secondary);background:var(--bg-primary);padding:0 30px 0 68px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{font-size:16px;display:flex;align-items:center;position:absolute;border-radius:25px;bottom:18px;left:35px;pointer-events:none;color:var(--main-secondary)}._form_1o9kz_14 ._btn_1o9kz_40{font-weight:700;font-size:15px;color:var(--color--white-100);text-transform:uppercase;height:50px;background:var(--color--green-90);padding:0 25px;margin-top:10px;transition:all .4s}._form_1o9kz_14 ._btn_1o9kz_40._disabled_1o9kz_51{background:var(--bg-secondary)!important;cursor:not-allowed}@media(max-width:400px){._form_1o9kz_14{max-width:290px;width:100%}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:40px;font-size:13px;padding:0 16px 0 40px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{bottom:12px;left:16px}._form_1o9kz_14 ._btn_1o9kz_40{height:40px;font-weight:500;font-size:13px}}
|
|
@@ -0,0 +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})},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)});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useLogoutMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<boolean, any>, Error, void, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useRefreshMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<import("../../../../shared/api").AuthResponse, any>, Error, void, unknown>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { RegistrationParams } from '../../../../shared/api';
|
|
2
|
+
export declare function useRegisterMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<import("../../../../shared/api").AuthResponse, any>, unknown, RegistrationParams, unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useGetCurrentUserQuery(): import("@tanstack/react-query").UseQueryResult<import("@ducks-tinder-client/common").User, Error>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useAuthForm } from './useAuthForm';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SubmitEventHandler } from 'react';
|
|
2
|
+
import type { FieldErrors } from 'react-hook-form';
|
|
3
|
+
import type { RegistrationParams } from '@ducks-tinder-client/common';
|
|
4
|
+
import type { TextFieldProps } from '@ducks-tinder-client/ui';
|
|
5
|
+
interface AuthFormReturn {
|
|
6
|
+
fields: {
|
|
7
|
+
email: TextFieldProps;
|
|
8
|
+
password: TextFieldProps;
|
|
9
|
+
name?: TextFieldProps;
|
|
10
|
+
};
|
|
11
|
+
validation: {
|
|
12
|
+
errors: FieldErrors<RegistrationParams>;
|
|
13
|
+
isValid: boolean;
|
|
14
|
+
};
|
|
15
|
+
submitHandler: SubmitEventHandler<HTMLFormElement>;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function useAuthForm(isRegisterForm?: boolean): AuthFormReturn;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AuthData } from './auth.interface';
|
|
2
|
+
export interface AuthState {
|
|
3
|
+
authData: AuthData | null;
|
|
4
|
+
isAuth: boolean | null;
|
|
5
|
+
setIsAuth: (value: boolean) => void;
|
|
6
|
+
setAuthData: (value: AuthData | null) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const useAuthStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<AuthState>, "setState" | "devtools"> & {
|
|
9
|
+
setState(partial: AuthState | Partial<AuthState> | ((state: AuthState) => AuthState | Partial<AuthState>), replace?: false | undefined, action?: (string | {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
[x: number]: unknown;
|
|
12
|
+
[x: symbol]: unknown;
|
|
13
|
+
type: string;
|
|
14
|
+
}) | undefined): void;
|
|
15
|
+
setState(state: AuthState | ((state: AuthState) => AuthState), replace: true, action?: (string | {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
[x: number]: unknown;
|
|
18
|
+
[x: symbol]: unknown;
|
|
19
|
+
type: string;
|
|
20
|
+
}) | undefined): void;
|
|
21
|
+
devtools: {
|
|
22
|
+
cleanup: () => void;
|
|
23
|
+
};
|
|
24
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useUserStore } from './user.store';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { User } from '@ducks-tinder-client/common';
|
|
2
|
+
export interface UserState {
|
|
3
|
+
currentUser: User | null;
|
|
4
|
+
setCurrentUser: (value: User | null) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const useUserStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<UserState>, "setState" | "devtools"> & {
|
|
7
|
+
setState(partial: UserState | Partial<UserState> | ((state: UserState) => UserState | Partial<UserState>), replace?: false | undefined, action?: (string | {
|
|
8
|
+
[x: string]: unknown;
|
|
9
|
+
[x: number]: unknown;
|
|
10
|
+
[x: symbol]: unknown;
|
|
11
|
+
type: string;
|
|
12
|
+
}) | undefined): void;
|
|
13
|
+
setState(state: UserState | ((state: UserState) => UserState), replace: true, action?: (string | {
|
|
14
|
+
[x: string]: unknown;
|
|
15
|
+
[x: number]: unknown;
|
|
16
|
+
[x: symbol]: unknown;
|
|
17
|
+
type: string;
|
|
18
|
+
}) | undefined): void;
|
|
19
|
+
devtools: {
|
|
20
|
+
cleanup: () => void;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FC, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
import type { FieldErrors } from 'react-hook-form';
|
|
3
|
+
import type { RegistrationParams } from '@ducks-tinder-client/common';
|
|
4
|
+
interface AuthLayoutProps {
|
|
5
|
+
errors: FieldErrors<RegistrationParams>;
|
|
6
|
+
title: string;
|
|
7
|
+
link: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare const AuthLayout: FC<PropsWithChildren<AuthLayoutProps>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const InitialLoading: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._auth_4slza_1{width:100%;margin:0 auto;height:100%}._auth_4slza_1 ._container_4slza_6{width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding:15px;background:var(--color--purple-100);background:linear-gradient(-135deg,var(--color--purple-90),var(--color--yellow-60))}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:960px;background:var(--bg-sub-primary);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:50px 130px 40px 95px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{width:316px;height:316px;max-width:100%}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:100px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:700;font-size:24px;color:var(--main-primary);line-height:1.2;text-align:center;width:100%;display:block;padding-bottom:54px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45{font-weight:600;font-size:15px;color:var(--danger-main)}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{max-width:290px;text-align:center;margin-bottom:10px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{text-align:center;padding-top:136px;font-size:12px}@media(max-height:750px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:700px;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:800px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{align-items:center;justify-content:center;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{display:none}}@media(max-width:700px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:350px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:400px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:500;font-size:18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{font-size:13px}}._link_1o9kz_1{font-size:14px;line-height:1.5;color:var(--main-secondary);position:relative;padding:10px}._link_1o9kz_1 ._icon_1o9kz_8{position:absolute;top:13px;right:-10px}._form_1o9kz_14{width:290px}._form_1o9kz_14 ._inputWrapper_1o9kz_17{position:relative;margin-bottom:10px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:50px;z-index:1;color:var(--main-secondary);background:var(--bg-primary);padding:0 30px 0 68px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{font-size:16px;display:flex;align-items:center;position:absolute;border-radius:25px;bottom:18px;left:35px;pointer-events:none;color:var(--main-secondary)}._form_1o9kz_14 ._btn_1o9kz_40{font-weight:700;font-size:15px;color:var(--color--white-100);text-transform:uppercase;height:50px;background:var(--color--green-90);padding:0 25px;margin-top:10px;transition:all .4s}._form_1o9kz_14 ._btn_1o9kz_40._disabled_1o9kz_51{background:var(--bg-secondary)!important;cursor:not-allowed}@media(max-width:400px){._form_1o9kz_14{max-width:290px;width:100%}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:40px;font-size:13px;padding:0 16px 0 40px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{bottom:12px;left:16px}._form_1o9kz_14 ._btn_1o9kz_40{height:40px;font-weight:500;font-size:13px}}
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LoginForm } from './ui/LoginForm';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RegistrationForm } from './ui/RegistrationForm';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AxiosResponse } from 'axios';
|
|
2
|
+
export interface LoginParams {
|
|
3
|
+
email: string;
|
|
4
|
+
password: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RegistrationParams extends LoginParams {
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
export interface AuthResponse {
|
|
10
|
+
id: string;
|
|
11
|
+
email: string;
|
|
12
|
+
accessToken: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
}
|
|
16
|
+
export interface AuthService {
|
|
17
|
+
refresh(): Promise<AxiosResponse<AuthResponse>>;
|
|
18
|
+
registration(email: string, name: string, password: string): Promise<AxiosResponse<AuthResponse>>;
|
|
19
|
+
login(email: string, password: string): Promise<AxiosResponse<AuthResponse>>;
|
|
20
|
+
logout(): Promise<AxiosResponse<boolean>>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './mock';
|
|
2
|
+
export * from './auth/auth.interfaces';
|
|
3
|
+
import type { AuthService } from './auth/auth.interfaces';
|
|
4
|
+
interface Instances {
|
|
5
|
+
authService: AuthService | null;
|
|
6
|
+
}
|
|
7
|
+
export declare const getOrCreateService: <T extends Instances[keyof Instances]>(key: keyof Instances, createService: () => T) => T;
|
|
8
|
+
export declare const getAuthService: () => AuthService;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { User } from '@ducks-tinder-client/common';
|
|
2
|
+
import type { AxiosError, AxiosResponse } from 'axios';
|
|
3
|
+
export declare function resolveAxiosResponse<T>(data?: T): Promise<AxiosResponse<T>>;
|
|
4
|
+
export declare function rejectWithAxiosResponseError<T>(status: number, data?: T): Promise<AxiosError<T>>;
|
|
5
|
+
export declare function getMockableService<T>(service: T, mockService: T): T;
|
|
6
|
+
export declare function saveTestUser(user: User): void;
|
|
7
|
+
export declare function deleteTestUser(): void;
|
|
8
|
+
export declare function getTestUser(): User | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './auth.stub';
|
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
|
},
|