PageSourceSearch

https://doinhanhweb.manus.space/assets/AdminContactSettings-BjTYxED0.js

js doinhanhweb.manus.space collected 2026-10-03 05:02:10 UTC 8,024 bytes, 1 lines download raw bytes

1import{a as C,o as S,t as m,b as g,r as o,j as t,z as p,F as A}from"./index-DRYNtDfq.js";import{I as l}from"./input-Bz87F-Tp.js";import{L as c}from"./label-CD9P1Z7v.js";import{T as j}from"./textarea-CSC5Btfs.js";import{D as N,A as v}from"./DashboardLayout-2PNDDCmu.js";import{S as f}from"./save-2ZdfPiqL.js";import"./dialog-D6TyplgW.js";import"./useComposition-Lg3rnDe0.js";import"./trending-up-CvKbjCgH.js";import"./circle-arrow-down-HHKk6hyR.js";import"./circle-arrow-up-DUs07WdU.js";import"./file-text-CvyTzFOR.js";import"./send-BLEe7uzJ.js";import"./mail-Dy7s7wzw.js";import"./message-circle-DuGz_h7Q.js";import"./index-BfJPPodk.js";function V(){const{user:d}=C(),[,x]=S(),{data:s,isLoading:h}=m.contactInfo.get.useQuery(),r=m.contactInfo.update.useMutation({onSuccess:()=>g.success("Đã lưu thông tin liên hệ"),onError:a=>g.error(a.message)}),[n,i]=o.useState({hotline:"",supportEmail:"",telegramUsername:"",telegramUrl:"",zaloUrl:"",supportTime:"",address:"",fanpageUrl:"",supportNote:""});if(o.useEffect(()=>{s&&i({hotline:s.hotline||"",supportEmail:s.supportEmail||"",telegramUsername:s.telegramUsername||"",telegramUrl:s.telegramUrl||"",zaloUrl:s.zaloUrl||"",supportTime:s.supportTime||"",address:s.address||"",fanpageUrl:s.fanpageUrl||"",supportNote:s.supportNote||""})},[s]),o.useEffect(()=>{d&&d.role!=="admin"&&x("/")},[d]),!d||d.role!=="admin")return null;const u=()=>r.mutate(n);return t.jsx(N,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:60",title:"Admin Panel",navItems:v,userName:d?.name||"Admin",children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:61",className:"space-y-6 max-w-3xl",children:[t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:62",children:[t.jsx("h1",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:63",className:"text-xl font-bold",children:"Thông tin liên hệ"}),t.jsx("p",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:64",className:"text-sm text-muted-foreground mt-1",children:"Cấu hình tập trung — Header, Footer, trang Liên hệ đều đọc từ đây."})]}),h?t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:70",className:"flex items-center justify-center py-12",children:t.jsx(p,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:71",className:"w-6 h-6 animate-spin text-muted-foreground"})}):t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:74",className:"space-y-6",children:[t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:76",className:"rounded-lg border bg-card p-5 space-y-4",children:[t.jsx("h2",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:77",className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Kênh liên hệ"}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:78",className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:79",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:80",className:"text-xs",children:"Hotline"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:81",value:n.hotline,onChange:a=>i(e=>({...e,hotline:a.target.value})),placeholder:"1900 xxxx",className:"mt-1"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:83",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:84",className:"text-xs",children:"Email hỗ trợ"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:85",value:n.supportEmail,onChange:a=>i(e=>({...e,supportEmail:a.target.value})),placeholder:"[email protected]",className:"mt-1"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:87",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:88",className:"text-xs",children:"Telegram Username"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:89",value:n.telegramUsername,onChange:a=>i(e=>({...e,telegramUsername:a.target.value})),placeholder:"@username",className:"mt-1"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:91",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:92",className:"text-xs",children:"Telegram URL"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:93",value:n.telegramUrl,onChange:a=>i(e=>({...e,telegramUrl:a.target.value})),placeholder:"https://t.me/username",className:"mt-1"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:95",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:96",className:"text-xs",children:"Zalo URL"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:97",value:n.zaloUrl,onChange:a=>i(e=>({...e,zaloUrl:a.target.value})),placeholder:"https://zalo.me/...",className:"mt-1"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:99",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:100",className:"text-xs",children:"Fanpage URL"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:101",value:n.fanpageUrl,onChange:a=>i(e=>({...e,fanpageUrl:a.target.value})),placeholder:"https://facebook.com/...",className:"mt-1"})]})]})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:107",className:"rounded-lg border bg-card p-5 space-y-4",children:[t.jsx("h2",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:108",className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Hỗ trợ"}),t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:109",className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:110",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:111",className:"text-xs",children:"Thời gian hỗ trợ"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:112",value:n.supportTime,onChange:a=>i(e=>({...e,supportTime:a.target.value})),placeholder:"24/7 hoặc 8:00 - 22:00",className:"mt-1"})]})}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:115",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:116",className:"text-xs",children:"Ghi chú hỗ trợ (hiển thị trên trang liên hệ)"}),t.jsx(j,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:117",value:n.supportNote,onChange:a=>i(e=>({...e,supportNote:a.target.value})),placeholder:"VD: Vui lòng liên hệ qua Telegram để được hỗ trợ nhanh nhất.",className:"mt-1",rows:3})]})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:122",className:"rounded-lg border bg-card p-5 space-y-4",children:[t.jsx("h2",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:123",className:"text-sm font-semibold uppercase tracking-wide text-muted-foreground",children:"Địa chỉ"}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:124",children:[t.jsx(c,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:125",className:"text-xs",children:"Địa chỉ"}),t.jsx(l,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:126",value:n.address,onChange:a=>i(e=>({...e,address:a.target.value})),placeholder:"Số nhà, đường, quận, thành phố",className:"mt-1"})]})]}),t.jsxs(A,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:130",onClick:u,disabled:r.isPending,className:"gap-2",children:[r.isPending?t.jsx(p,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:131",className:"w-4 h-4 animate-spin"}):t.jsx(f,{"data-loc":"client/src/pages/admin/AdminContactSettings.tsx:131",className:"w-4 h-4"}),r.isPending?"Đang lưu...":"Lưu thông tin liên hệ"]})]})]})})}export{V 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.