@accounter/client
Version:
Accounter client application
1 lines • 1.76 kB
JavaScript
import{t as e}from"./charges-table-B6ALIiIK.js";import{$u as t,It as n,Kl as r,Ml as i,Nd as a,Rd as o,Tu as s,Xu as c,Yu as l,en as u,er as d,va as f}from"./index-DJOqGznr.js";import{t as p}from"./use-url-query-DGlulgYn.js";import{t as m}from"./page-layout-YyDTnnkE.js";import{t as h}from"./charges-filters-BYo9Kta0.js";var g=o(a(),1),_=s(),v=()=>{let{setFiltersContext:a}=(0,g.useContext)(d),[o,s]=(0,g.useState)(!1),[v,y]=(0,g.useState)([]),{get:b}=p(),[x,S]=(0,g.useState)(b(`page`)?Number(b(`page`)):0),C=b(`chargesFilters`),w=(0,g.useMemo)(()=>{if(C)try{return JSON.parse(decodeURIComponent(C))}catch{return}},[C]),[T,E]=(0,g.useState)(w),D=(0,g.useCallback)((e,t)=>{v.map(e=>e.id).includes(e)?y(v.filter(t=>t.id!==e)):y([...v,{id:e,onChange:t}])},[v]),[{data:O,fetching:k},A]=i({query:f,variables:{filters:T,page:x,limit:100},pause:!0});(0,g.useEffect)(()=>{T&&A()},[T,A]);function j(){y([])}return(0,g.useEffect)(()=>{a((0,_.jsxs)(`div`,{className:`flex flex-row gap-x-5`,children:[(0,_.jsx)(h,{filter:T,setFilter:E,activePage:x,setPage:S,totalPages:O?.allCharges?.pageInfo.totalPages,initiallyOpened:!T}),(0,_.jsx)(u,{content:`Expand all accounts`,children:(0,_.jsx)(r,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>s(e=>!e),children:o?(0,_.jsx)(c,{className:`size-5`}):(0,_.jsx)(l,{className:`size-5`})})}),(0,_.jsx)(n,{selected:v,resetMerge:j})]}))},[O,k,T,x,o,a,S,E,s,v,w]),(0,_.jsx)(m,{title:`All Charges`,description:`Manage charges`,children:k?(0,_.jsx)(t,{className:`h-10 w-10 animate-spin mr-2 self-center`}):O?.allCharges.nodes?(0,_.jsx)(e,{toggleMergeCharge:D,mergeSelectedCharges:new Set(v.map(e=>e.id)),data:O?.allCharges?.nodes,isAllOpened:o}):(0,_.jsx)(`span`,{children:`Please apply filters`})})};export{v as AllCharges};