1import{j as e,M as z,B as t,f as M,T as d,c as T,J as P,a1 as _,a2 as W,a0 as S,s as F,a3 as D,Y as E,a4 as L,a5 as H,a6 as N,a7 as $,_ as U,a8 as Y,a9 as K,aa as q,ab as G,ac as J,ad as X,ae as Q,af as V}from"./mui-BAY0EgUh.js";import{P as Z}from"./PageWrapper-BFtStl4k.js";import{a as l,b as y,L as ee}from"./react-C-pmN5Hv.js";import{u as ae,A as I}from"./index-BUVwXYIo.js";import{C as m}from"./Colors-DHqA7OQq.js";import{f as j}from"./formatters-lE0J6AnS.js";import{D as te}from"./DateRangePicker-DRkiCTNt.js";import{S as se}from"./SnackbarAlert-DuTmZ0uf.js";import{f as w}from"./vendor-DtY_l6si.js";import{E as re}from"./EmpetyState-BKJj9s4L.js";import{A as ne}from"./AuthWrapper-CuL68i1L.js";import"./createLucideIcon-DG8lbe9X.js";import"./chevron-left-BLluOog1.js";import"./chevron-right-C3gH_QHB.js";const oe=({open:s,onClose:a,transactionDetail:r,loading:n})=>{const[o,i]=l.useState({isOpen:!1,severity:"error",alertMessage:""}),u=(p,x="error")=>{i({isOpen:!0,severity:x,alertMessage:p})},c=(p,x)=>{navigator.clipboard.writeText(p),u(`Berhasil menyalin ${x}`,"success")};return e.jsxs(e.Fragment,{children:[e.jsx(se,{action:o,onClose:()=>i(p=>({...p,isOpen:!1}))}),e.jsx(z,{open:s,onClose:a,"aria-labelledby":"transaction-detail-modal",children:e.jsx(t,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:{xs:"90%",sm:500},bgcolor:"background.paper",borderRadius:"16px",boxShadow:"0px 4px 20px rgba(0, 0, 0, 0.08)",p:4},children:n?e.jsx(t,{display:"flex",justifyContent:"center",p:4,children:e.jsx(M,{size:32,sx:{color:"#CE464A"}})}):e.jsxs(e.Fragment,{children:[e.jsxs(t,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[e.jsx(d,{variant:"h6",sx:{fontWeight:600},children:"Detail Transaksi"}),e.jsx(T,{onClick:a,sx:{color:"grey.500"},children:e.jsx(P,{})})]}),e.jsxs(t,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(h,{label:"ID Transaksi",value:r?.trx_id,onCopy:()=>c(r?.trx_id,"ID Transaksi")}),e.jsx(h,{label:"Reference ID",value:r?.ref_id,onCopy:()=>c(r?.ref_id,"Reference ID")}),e.jsx(h,{label:"Nominal",value:j(r?.amount),valueColor:r?.type==="credit"?"#10B981":"#EF4444"}),e.jsx(h,{label:"Tipe",value:r?.type==="credit"?"Pemasukan":"Pengeluaran"}),e.jsx(h,{label:"Tanggal",value:r?.date?w(new Date(r.date),"dd MMMM yyyy HH:mm"):"-"}),e.jsx(h,{label:"Keterangan",value:r?.remark}),e.jsxs(t,{sx:{mt:2,p:2,bgcolor:"#F8FAFC",borderRadius:"12px",border:"1px solid #E2E8F0"},children:[e.jsx(d,{sx:{fontSize:"0.875rem",color:"#64748B",mb:2},children:"Perubahan Saldo"}),e.jsxs(t,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsx(h,{label:"Saldo Sebelum",value:j(r?.balance_before)}),e.jsx(h,{label:"Saldo Sesudah",value:j(r?.balance_after)})]})]})]})]})})})]})},h=({label:s,value:a,valueColor:r="#0F172A",onCopy:n})=>e.jsxs(t,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx(d,{sx:{color:"#64748B",fontSize:"0.875rem"},children:s}),e.jsxs(t,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(d,{sx:{color:r,fontSize:"0.875rem",fontWeight:500},children:a||"-"}),n&&e.jsx(_,{title:"Copy",children:e.jsx(T,{size:"small",onClick:n,sx:{color:"grey.500"},children:e.jsx(W,{fontSize:"small"})})})]})]}),v={TR:{icon:e.jsx(V,{}),color:"#4A72FF"},TF:{icon:e.jsx(Q,{}),color:"#10B981"},TU:{icon:e.jsx(X,{}),color:"#F97316"},RF:{icon:e.jsx(J,{}),color:"#8B5CF6"},SH:{icon:e.jsx(G,{}),color:"#0EA5E9"},EX:{icon:e.jsx(q,{}),color:"#22C55E"},WD:{icon:e.jsx(K,{}),color:"#EF4444"}},B=F(E)({padding:"24px",borderRadius:"16px",boxShadow:"0px 1px 3px rgba(0, 0, 0, 0.04)",border:"1px solid #E5E7EB",background:"#FFFFFF"}),ie=F(E)({padding:"16px",marginBottom:"8px",borderRadius:"12px",border:"1px solid #E5E7EB",boxShadow:"none",backgroundColor:"#FFFFFF",transition:"box-shadow 0.2s ease-in-out","&:hover":{boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.05)"}}),le=F($)(({theme:s})=>({backgroundColor:"#FFFFFF",borderRadius:"12px",height:"45px",width:"100%",transition:"all 0.2s ease-in-out","& .MuiOutlinedInput-notchedOutline":{borderColor:"#E5E7EB",borderWidth:"1px",transition:"all 0.2s ease-in-out"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#CE464A"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#CE464A",borderWidth:"1px"},"& .MuiSelect-select":{paddingLeft:"16px"}})),k=F(U)({padding:"10px 16px",margin:"4px 8px",borderRadius:"8px",transition:"all 0.2s ease-in-out","&:hover":{backgroundColor:"rgba(206, 70, 74, 0.04)"},"&.Mui-selected":{backgroundColor:"rgba(206, 70, 74, 0.08)","&:hover":{backgroundColor:"rgba(206, 70, 74, 0.12)"}}}),de=s=>new Date(s).toLocaleDateString("id-ID",{year:"numeric",month:"short",day:"numeric"}),ce=y.memo(({onIntersect:s})=>{const a=l.useRef(null);return l.useEffect(()=>{const r=new IntersectionObserver(o=>{o[0].isIntersecting&&s()},{threshold:1}),n=a.current;return n&&r.observe(n),()=>n&&r.unobserve(n)},[s]),e.jsx(t,{ref:a,display:"flex",justifyContent:"center",p:2,children:e.jsx(M,{size:24,sx:{color:m.primary.main}})})}),xe=y.memo(({balance:s})=>e.jsx(B,{sx:{position:{xs:"relative",md:"sticky"},top:{md:"24px"},p:3,borderRadius:"20px",transition:"all 0.3s ease-in-out",backgroundColor:"#FFFFFF",border:`1px solid ${m.border}`,boxShadow:"none"},children:e.jsxs(t,{sx:{display:"flex",flexDirection:"column",gap:3},children:[e.jsxs(t,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx(t,{children:e.jsx(d,{variant:"h6",sx:{fontWeight:600,fontSize:"1rem",letterSpacing:"-0.01em",mb:.5},children:"Saldo Baba Market"})}),e.jsxs(ee,{to:"/withdraw",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",backgroundColor:"#F8FAFC",color:"#64748B",textTransform:"none",fontSize:"0.875rem",fontWeight:500,padding:"8px 16px",borderRadius:"12px",border:"1px solid #F1F5F9",transition:"all 0.2s ease-in-out",textDecoration:"none",cursor:"pointer"},onMouseOver:a=>{a.currentTarget.style.backgroundColor="#F1F5F9",a.currentTarget.style.color="#334155",a.currentTarget.style.borderColor="#E2E8F0"},onMouseOut:a=>{a.currentTarget.style.backgroundColor="#F8FAFC",a.currentTarget.style.color="#64748B",a.currentTarget.style.borderColor="#F1F5F9"},onMouseDown:a=>{a.currentTarget.style.backgroundColor="#E2E8F0"},onMouseUp:a=>{a.currentTarget.style.backgroundColor="#F1F5F9"},children:["Tarik Saldo",e.jsx(D,{size:18,style:{marginLeft:"8px"}})]})]}),e.jsxs(t,{children:[e.jsx(d,{variant:"h2",sx:{fontSize:{xs:"2rem",md:"3rem"},fontWeight:700,color:"#0F172A",letterSpacing:"-0.02em",lineHeight:1.2,marginBottom:1},children:j(s)}),e.jsx(d,{sx:{color:"#64748B",fontSize:"0.875rem",fontWeight:400,letterSpacing:"-0.01em"},children:"Total saldo tersedia untuk transaksi"})]}),e.jsx(t,{sx:{height:"4px",background:`linear-gradient(to right, ${m.primary.main}, transparent)`,borderRadius:"4px",marginTop:2}})]})})),pe=y.memo(({transaction:s})=>{const[a,r]=l.useState(!1),[n,o]=l.useState(!1),[i,u]=l.useState(null),c=v[s.code]||v.TR,p=s.type==="credit",x=async()=>{r(!0),o(!0);const C=await I.getBalanceHistoryDetail(s.id);C?.data?u(C.data):u(null),o(!1)};return e.jsxs(e.Fragment,{children:[e.jsx(ie,{onClick:x,sx:{cursor:"pointer","&:hover":{boxShadow:"0px 4px 12px rgba(0, 0, 0, 0.08)",transform:"translateY(-1px)"}},children:e.jsxs(t,{sx:{display:"flex",alignItems:"center"},children:[e.jsx(Y,{sx:{bgcolor:`${c.color}15`,color:c.color,width:48,height:48,borderRadius:2},children:c.icon}),e.jsxs(t,{sx:{ml:2,flex:1,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsxs(t,{children:[e.jsx(d,{variant:"subtitle1",sx:{fontWeight:500,color:m.text.primary,mb:.5},children:s.remark}),e.jsx(d,{sx:{color:m.text.secondary,fontSize:"13px"},children:de(s.date)})]}),e.jsxs(d,{sx:{fontWeight:600,color:p?m.success:m.primary.main,fontFamily:"inherit"},children:[p?"+":"-",j(s.amount)]})]})]})}),e.jsx(oe,{open:a,onClose:()=>r(!1),transactionDetail:i,loading:n})]})}),ue=y.memo(({onFilterChange:s,filters:a})=>{const r=o=>{const i={...a,type:o.target.value};s(i)},n=(o,i)=>{const u={...a,start_date:o,end_date:i};s(u)};return e.jsxs(t,{sx:{mb:3,display:"flex",gap:2,px:1,flexDirection:{xs:"column",sm:"row"},alignItems:{xs:"stretch",sm:"center"},width:"100%"},children:[e.jsx(t,{sx:{width:{xs:"100%",sm:"400px"},flexShrink:0},children:e.jsx(te,{value:[a.start_date,a.end_date],onChange:n,placeholder:"Pilih rentang tanggal",style:{width:"100%"}})}),e.jsx(t,{sx:{flex:1}
1,children:e.jsxs(le,{value:a.type,onChange:r,IconComponent:L,displayEmpty:!0,size:"small",sx:{fontFamily:"inherit",width:"100%","& .MuiSelect-icon":{color:"#6B7280",transition:"transform 0.2s ease-in-out"},"&.Mui-focused .MuiSelect-icon":{transform:"rotate(180deg)"}},MenuProps:{PaperProps:{sx:{mt:1,boxShadow:"0px 4px 20px rgba(0, 0, 0, 0.08)",borderRadius:"12px","& .MuiList-root":{padding:"8px 0"}}}},children:[e.jsx(k,{value:"",sx:{color:"#6B7280"},children:e.jsx(t,{sx:{display:"flex",alignItems:"center",gap:1.5},children:e.jsx(d,{sx:{fontWeight:500,fontSize:"14px",fontFamily:"inherit"},children:"Semua"})})}),e.jsx(k,{value:"debit",sx:{color:"#EF4444"},children:e.jsxs(t,{sx:{display:"flex",alignItems:"center",fontFamily:"inherit",gap:1.5},children:[e.jsx(H,{sx:{color:"#EF4444",fontSize:20}}),e.jsx(d,{sx:{fontWeight:500,fontFamily:"inherit",fontSize:"14px"},children:"Pengeluaran"})]})}),e.jsx(k,{value:"credit",sx:{color:"#10B981"},children:e.jsxs(t,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[e.jsx(N,{sx:{color:"#10B981",fontSize:20}}),e.jsx(d,{sx:{fontWeight:500,fontFamily:"inherit",fontSize:"14px"},children:"Pemasukan"})]})})]})})]})}),me=y.memo(({loading:s,transactions:a,onLoadMore:r,hasMore:n})=>!a.length&&s?e.jsx(t,{display:"flex",justifyContent:"center",p:4,children:e.jsx(M,{size:32,sx:{color:m.primary.main}})}):!a.length&&!s?e.jsx(t,{display:"flex",justifyContent:"center",p:4,children:e.jsx(re,{imageWidth:80,imageHeight:80,title:"Tidak ada transaksi",subtitle:"Tidak ada data transaksi yang tersedia",titleSize:"h6",subtitleSize:"body2"})}):e.jsxs(t,{sx:{maxHeight:"calc(100vh - 300px)",minHeight:"400px",overflowY:"auto",px:1,"&::-webkit-scrollbar":{display:"none"}},children:[a.map(o=>e.jsx(pe,{transaction:o},o.id)),n&&e.jsx(ce,{onIntersect:r})]})),he=()=>{const{user:s}=ae(),[a,r]=l.useState(!1),[n,o]=l.useState([]),[i,u]=l.useState({page:1,totalPages:1}),[c,p]=l.useState({start_date:"",end_date:"",type:""}),x=l.useCallback(async(f,g)=>{r(!0);const A={page:f,...g.type&&{type:g.type},...g.start_date&&{start_date:w(g.start_date,"yyyy-MM-dd")},...g.end_date&&{end_date:w(g.end_date,"yyyy-MM-dd")}},b=await I.getBalanceHistory(A);b?.data?(o(O=>f===1?b.data:[...O,...b.data]),u({page:b.meta.page,totalPages:b.meta.total_pages})):o([]),r(!1)},[]),C=l.useCallback(f=>{p(f),u({page:1,totalPages:1}),x(1,f)},[x]),R=l.useCallback(()=>{!a&&i.page<i.totalPages&&x(i.page+1,c)},[a,i.page,i.totalPages,x,c]);return l.useEffect(()=>{x(1,c)},[]),e.jsx(t,{sx:{maxWidth:1200,mx:"auto",p:3},children:e.jsxs(S,{container:!0,spacing:3,children:[e.jsx(S,{size:{xs:12,md:4},children:e.jsx(xe,{balance:s?.balance,transactions:n})}),e.jsx(S,{size:{xs:12,md:8},children:e.jsxs(B,{children:[e.jsxs(t,{sx:{mb:3},children:[e.jsx(t,{sx:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",mb:3,px:1},children:e.jsx(t,{children:e.jsx(d,{variant:"h5",sx:{fontWeight:600,color:m.text.primary},children:"Riwayat Transaksi"})})}),e.jsx(ue,{filters:c,onFilterChange:C})]}),e.jsx(me,{loading:a,transactions:n,onLoadMore:R,hasMore:i.page<i.totalPages})]})})]})})};function Ie(){return l.useEffect(()=>{document.title="Saldo & Riwayat Transaksi | Baba Market";const s=document.querySelector('meta[name="description"]');s&&s.setAttribute("content","Kelola saldo akun dan lihat riwayat transaksi pembelian dan pengeluaran Anda di Baba Market.")},[]),e.jsx(ne,{children:e.jsx(Z,{children:e.jsx("div",{className:"container",children:e.jsx(he,{})})})})}export{Ie as default}; 2//# sourceMappingURL=BalancePage-gJDVeg3n.js.map
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.