PageSourceSearch

https://eqwecare.se/assets/index-CVap692G.js

js eqwecare.se collected 2026-10-02 02:08:57 UTC 7,886 bytes, 1 lines download raw bytes

1import{u as w,a as k,al as q,c as D,d as t,ay as F,b as S,r as h,j as a,n as r,B as V,f as p,eZ as O,z as i,h as b,eY as G}from"./index-BvNIJ_c2.js";import{L as A}from"./index-Dd_NvOz0.js";import{u as f,m as N}from"./postalCodeFormatter-DXRa8iGI.js";import{i as E,m as x}from"./luhnAlgo-B8z0oDmV.js";import{i as $,u as L,m as v}from"./personId-CUZKRZuv.js";import{u as M,D as R}from"./index-B_Ogjjpj.js";import{u as _}from"./useMaskedInput-CJIikHWQ.js";import{R as o}from"./Row-Bj__9rZq.js";import"./profile1-DX-Es6KB.js";import"./NavbarContext-C9kG8e2O.js";import"./Anchor-C0wshJja.js";import"./index-Laxbxmnr.js";import"./navigationConfig-DMPz6vwn.js";import"./NavIcon-CE0lX41N.js";import"./index-IEJD0KmR.js";import"./Image-y3xwkAif.js";import"./Tab-B5OAj-R1.js";import"./Nav-Tj50dJFm.js";import"./CardHeaderContext-CfKayEkG.js";import"./useAiChatStore-DgcBp8ir.js";const ie=()=>{const{t:j}=w(),I=k(),{id:n}=q(),g={firstName:"",lastName:"",email:"",phoneNumber:"",personalIdNumber:"",password:"",dateOfBirth:"",address:"",postNumber:"",postPlace:""},C=D({firstName:t().required("First name is required"),lastName:t().required("Last name is required"),email:t().email("Invalid email format").required("Email is required"),phoneNumber:t().required("Phone number is required").matches(/^\+?[0-9\s\-()]{7,15}$/,"Phone number must be 7–15 characters ").test("is-valid-phone","Must be a valid Swedish number starting with +46 or 0",s=>E(s)),personalIdNumber:t().required("Personal ID is required").test("is-valid-personal-id","Invalid personal ID",s=>$(s)),password:t().required("Password is required").min(8,"Password must be at least 8 characters").matches(/[A-Z]/,"Password must contain at least one uppercase letter").matches(/[a-z]/,"Password must contain at least one lowercase letter").matches(/[0-9]/,"Password must contain at least one number").matches(/[^a-zA-Z0-9]/,"Password must contain at least one special character"),dateOfBirth:F().required("Date of birth is required").nullable(),address:t().required("Address is required"),postNumber:t().transform(s=>s.replace(/\s/g,"")).matches(/^\d{5}$/,"Postal code must be exactly 5 digits").required("Postal code is required"),postPlace:t().required("City is required")}),e=S({initialValues:g,validationSchema:C,onSubmit:async s=>{const l={...s,postNumber:f(s.postNumber),personalIdNumber:L(s.personalIdNumber)};delete l.email,delete l.phoneNumber;try{await p.put(O.endPoint(n),l),i.success(j("staffSchema.messages.updateSuccess")),c(),I("/staff-management",{state:{restoreList:!0}})}catch(P){i.error(b(P))}}}),y=_({value:e.values.personalIdNumber,format:v,onChange:s=>e.setFieldValue("personalIdNumber",s)}),{hasDraft:m,draftAge:d,restoreDraft:u,clearDraft:c}=M(`staff-edit-${n}`,{formValues:e.values});h.useEffect(()=>{if(m&&d<3e5){const s=u();s!=null&&s.formValues&&e.setValues(s.formValues)}},[]);const B=async()=>{try{const{data:s}=await p.get(G.endPoint(n)),l=s.result;e.setValues({firstName:l.firstName,lastName:l.lastName,email:l.email,phoneNumber:x(l.phoneNumber),personalIdNumber:v(l.personalIdNumber),password:l.password,dateOfBirth:l.dateOfBirth.split("T")[0],address:l.address,postNumber:N(l.postNumber),postPlace:l.postPlace})}catch(s){i.error(b(s))}};return h.useEffect(()=>{B()},[n]),a.jsx(A,{pageTitle:"Edit Staff",children:a.jsx("div",{className:"from_wrap",children:a.jsxs(r,{onSubmit:e.handleSubmit,children:[m&&d>=3e5&&a.jsx(R,{savedAt:Date.now()-d,onRestore:()=>{const s=u();s!=null&&s.formValues&&e.setValues(s.formValues)},onDiscard:c}),a.jsxs("div",{className:"from_des_block",children:[a.jsxs(o,{children:[a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"firstName",children:[a.jsx("label",{className:"form-label",children:"First Name"}),a.jsx(r.Control,{type:"text",name:"firstName",onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.firstName||"",isInvalid:e.touched.firstName&&!!e.errors.firstName}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.firstName})]}),a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"lastName",children:[a.jsx("label",{className:"form-label",children:"Last Name"}),a.jsx(r.Control,{type:"text",name:"lastName",onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.lastName||"",isInvalid:e.touched.lastName&&!!e.errors.lastName}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.lastName})]})]}),a.jsxs(o,{children:[a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"email",children:[a.jsx("label",{className:"form-label",children:"Email"}),a.jsx(r.Control,{type:"text",name:"email",readOnly:!0,onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.email||"",isInvalid:e.touched.email&&!!e.errors.email}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.email})]}),a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"phoneNumber",children:[a.jsx("label",{className:"form-label",children:"Phone Number"}),a.jsx(r.Control,{type:"text",name:"phoneNumber",readOnly:!0,onChange:s=>e.setFieldValue("phoneNumber",x(s.target.value)),onBlur:e.handleBlur,value:e.values.phoneNumber||"",isInvalid:e.touched.phoneNumber&&!!e.errors.phoneNumber}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.phoneNumber})]})]}),a.jsxs(o,{children:[a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"personalIdNumber",children:[a.jsx("label",{className:"form-label",children:"Personal ID Number"}),a.jsx(r.Control,{type:"text",name:"personalIdNumber",...y,onBlur:e.handleBlur,value:e.values.personalIdNumber||"",isInvalid:e.touched.personalIdNumber&&!!e.errors.personalIdNumber}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.personalIdNumber})]}),a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"password",children:[a.jsx("label",{className:"form-label",children:"Password"}),a.jsx(r.Control,{type:"password",name:"password",onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.password||"",isInvalid:e.touched.password&&!!e.errors.password}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.password})]})]}),a.jsxs(o,{children:[a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"dateOfBirth",children:[a.jsx("label",{className:"form-label",children:"Date of Birth"}),a.jsx(r.Control,{type:"date",name:"dateOfBirth",onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.dateOfBirth||"",isInvalid:e.touched.dateOfBirth&&!!e.errors.dateOfBirth}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.dateOfBirth})]}),a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"address",children:[a.jsx("label",{className:"form-label",children:"Address"}),a.jsx(r.Control,{type:"text",name:"Address",onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.address||"",isInvalid:e.touched.address&&!!e.errors.address}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.address})]})]}),a.jsxs(o,{children:[a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"postNumber",children:[a.jsx("label",{className:"form-label",children:"Postal Code"}),a.jsx(r.Control,{type:"text",inputMode:"numeric",name:"postNumber",onChange:s=>{let l=f(s.target.value);/^\d{0,5}$/.test(l)&&e.setFieldValue("postNumber",N(l.trim()))},onBlur:e.handleBlur,value:e.values.postNumber||"",isInvalid:e.touched.postNumber&&!!e.errors.postNumber}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.postNumber})]}),a.jsxs(r.Group,{className:"mb-3 col-lg-6",controlId:"postPlace",children:[a.jsx("label",{className:"form-label",children:"City"}),a.jsx(r.Control,{type:"text",name:"postPlace",onChange:e.handleChange,onBlur:e.handleBlur,value:e.values.postPlace||"",isInvalid:e.touched.postPlace&&!!e.errors.postPlace}),a.jsx(r.Control.Feedback,{type:"invalid",children:e.errors.postPlace})]})]})]}),a.jsx("div",{className:"from_bottom_opt",children:a.jsx(V,{className:"btn btn-green-dark mb-5 py-2 at-yellow-btn",type:"submit",disabled:e.isSubmitting,children:"Update"})})]})})})};export{ie as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.