UNPKG

@accounter/client

Version:
1 lines 4.91 kB
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{r,t as i}from"./error-handling-CKe_iwSC.js";import{t as a}from"./loader-circle-CfW9jOIr.js";import{E as o,T as s,_r as c,wt as l}from"./common-3blB_OGJ.js";import{t as u}from"./arrow-up-down-BQELi8zJ.js";import{c as d,f,l as p,m,p as h}from"./select-Bp1lD5cE.js";import{c as g}from"./separator-5ROkkkxt.js";import{t as _}from"./button-DUNsVBiu.js";import{$c as v,Vc as y,Xc as b,a as x,c as S,d as C,i as w,n as T,o as E,r as D,s as O,t as k}from"./table-B6QCIQQv.js";import{R as A,To as j,cs as M,ls as N,za as P}from"./graphql-lcoKwSC9.js";import{t as F}from"./page-layout-Dg61gTWe.js";var I=e(n(),1),L=`updateTaxCategory`,R=()=>{let[{fetching:e},t]=M(j);return{fetching:e,updateTaxCategory:(0,I.useCallback)(async e=>{let n=`Error updating tax category`,a=`${L}-${e.taxCategoryId}`;r.loading(`Uploading Tax Category`,{id:a});try{let o=await t(e),s=i(o,n,a,`updateTaxCategory`);if(s)return r.success(`Success`,{id:a,description:`${s.updateTaxCategory.name} was updated`}),s.updateTaxCategory}catch(e){console.error(`${n}: ${e}`),r.error(`Error`,{id:a,description:n,duration:1e5,closeButton:!0})}},[t])}},z=t();function B({taxCategoryId:e,onAdd:t}){let[n,r]=(0,I.useState)(!1);return(0,z.jsxs)(d,{open:n,onOpenChange:r,children:[(0,z.jsx)(m,{asChild:!0,children:(0,z.jsx)(_,{variant:`outline`,size:`icon`,children:(0,z.jsx)(c,{})})}),(0,z.jsxs)(p,{className:`w-[400px] max-w-screen-md`,children:[(0,z.jsx)(f,{children:(0,z.jsx)(h,{children:`Edit Tax Category`})}),(0,z.jsx)(V,{taxCategoryId:e,close:()=>r(!1),onAdd:t})]})]})}function V({taxCategoryId:e,close:t,onAdd:n}){let[{data:i,fetching:o}]=N({query:P,variables:{id:e}}),s=i?.taxCategory;return!s&&!o&&r.error(`Error`,{description:`Couldn'nt find tax category`}),o?(0,z.jsx)(a,{className:`h-10 w-10 animate-spin`}):(0,z.jsx)(H,{taxCategory:s,close:t,onAdd:n})}function H({taxCategory:e,close:t,onAdd:n}){let r=b({defaultValues:{sortCode:e.sortCode?.key,name:e.name,irsCode:e.irsCode}}),{handleSubmit:i}=r,[a,s]=(0,I.useState)(!1),{userContext:c}=(0,I.useContext)(v),{updateTaxCategory:l,fetching:u}=R(),d=r=>{r.sortCode&&=parseInt(r.sortCode.toString()),l({fields:r,taxCategoryId:e.id}).then(e=>{e?.id&&(n?.(e.id),t())})};return(0,z.jsx)(y,{...r,children:(0,z.jsxs)(`form`,{onSubmit:i(d),children:[(0,z.jsx)(`div`,{className:`flex flex-col gap-4 my-4`,children:(0,z.jsx)(o,{isInsert:!1,formManager:r,setFetching:s,ownerId:e.ownerId??c?.context.adminBusinessId})}),(0,z.jsx)(`div`,{className:`flex justify-end mt-4`,children:(0,z.jsx)(_,{type:`submit`,disabled:u||a,children:`Update`})})]})})}var U=({data:e})=>(0,z.jsx)(`td`,{children:e.name}),W=({data:e})=>(0,z.jsx)(`td`,{children:e.sortCode?(0,z.jsxs)(`span`,{children:[e.sortCode?.name,` (`,e.sortCode?.id,`)`]}):`N/A`}),G=[{id:`name`,accessorKey:`name`,cell:({row:e})=>(0,z.jsx)(U,{data:e.original}),header:({column:e})=>(0,z.jsxs)(_,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Name`,(0,z.jsx)(u,{})]})},{id:`sortCode`,accessorKey:`sortCode.key`,cell:({row:e})=>(0,z.jsx)(W,{data:e.original}),header:({column:e})=>(0,z.jsxs)(_,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Sort Code`,(0,z.jsx)(u,{})]})},{id:`edit`,cell:({row:e})=>(0,z.jsx)(B,{taxCategoryId:e.original.id})}],K=()=>{let[{data:e,fetching:t,error:n},i]=N({query:A}),{setFiltersContext:o}=(0,I.useContext)(g),c=(0,I.useMemo)(()=>e?.taxCategories??[],[e?.taxCategories]),u=S({features:O,data:c,columns:G,initialState:{pagination:{pageIndex:0,pageSize:30}}}),{pageIndex:d,pageSize:f}=u.state.pagination,p=u.getPageCount();return(0,I.useEffect)(()=>{o((0,z.jsx)(`div`,{className:`flex items-center justify-end gap-10 space-x-2 py-4`,children:(0,z.jsx)(`div`,{className:`flex items-center justify-between px-2`,children:(0,z.jsx)(l,{table:u})})}))},[o,d,f,p]),(0,I.useEffect)(()=>{n&&r.error(`Error`,{description:`Error fetching tax categories`})},[n]),(0,z.jsx)(F,{title:`Tax Categories (${c.length})`,description:`All tax categories`,headerActions:(0,z.jsx)(s,{onAdd:()=>i()}),children:t?(0,z.jsx)(`div`,{className:`flex flex-row justify-center`,children:(0,z.jsx)(a,{className:`h-10 w-10 animate-spin mr-2`})}):(0,z.jsx)(`div`,{className:`flex flex-col gap-4 rounded-md border`,children:(0,z.jsxs)(k,{children:[(0,z.jsx)(x,{children:u.getHeaderGroups().map(e=>(0,z.jsx)(E,{children:e.headers.map(e=>(0,z.jsx)(w,{children:e.isPlaceholder?null:C(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,z.jsx)(T,{children:u.getRowModel().rows.length===0?(0,z.jsx)(E,{children:(0,z.jsx)(D,{colSpan:G.length,className:`text-center py-8`,children:`No tax categories found`})}):u.getRowModel().rows.map(e=>(0,z.jsx)(E,{children:e.getVisibleCells().map(e=>(0,z.jsx)(D,{children:C(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})})})};export{K as TaxCategories};