@accounter/client
Version:
Accounter client application
1 lines • 4.81 kB
JavaScript
import{s as e}from"./dist-BmACi7k_.js";import{i as t,o as n}from"./utils-BxkqV8PM.js";import{B as r,Ro as i,io as a,r as o,t as s,va as c,zo as l}from"./error-handling-sQ-z99nE.js";import{c as u,dt as d,f,l as p,m,p as h}from"./select-BJv1AsCh.js";import{C as g,hr as _,w as v,xt as y}from"./common-CzeXtlCH.js";import{t as b}from"./arrow-up-down-BPoOxony.js";import{c as x}from"./separator-CyMtmDO1.js";import{t as S}from"./button-BZ6z_NAl.js";import{$c as C,Wc as w,a as T,c as E,i as D,m as O,n as k,nl as A,o as j,p as M,r as N,s as P,t as F,u as I}from"./table-4P1UQn5n.js";import{t as L}from"./page-layout-zwz-Hp58.js";var R=e(n(),1),z=`updateTaxCategory`,B=()=>{let[{fetching:e},t]=i(a);return{fetching:e,updateTaxCategory:(0,R.useCallback)(async e=>{let n=`Error updating tax category`,r=`${z}-${e.taxCategoryId}`;o.loading(`Uploading Tax Category`,{id:r});try{let i=s(await t(e),n,r,`updateTaxCategory`);if(i)return o.success(`Success`,{id:r,description:`${i.updateTaxCategory.name} was updated`}),i.updateTaxCategory}catch(e){console.error(`${n}: ${e}`),o.error(`Error`,{id:r,description:n,duration:1e5,closeButton:!0})}},[t])}},V=t();function H({taxCategoryId:e,onAdd:t}){let[n,r]=(0,R.useState)(!1);return(0,V.jsxs)(u,{open:n,onOpenChange:r,children:[(0,V.jsx)(m,{asChild:!0,children:(0,V.jsx)(S,{variant:`outline`,size:`icon`,children:(0,V.jsx)(_,{})})}),(0,V.jsxs)(p,{className:`w-[400px] max-w-screen-md`,children:[(0,V.jsx)(f,{children:(0,V.jsx)(h,{children:`Edit Tax Category`})}),(0,V.jsx)(U,{taxCategoryId:e,close:()=>r(!1),onAdd:t})]})]})}function U({taxCategoryId:e,close:t,onAdd:n}){let[{data:r,fetching:i}]=l({query:c,variables:{id:e}}),a=r?.taxCategory;return!a&&!i&&o.error(`Error`,{description:`Couldn'nt find tax category`}),i?(0,V.jsx)(d,{className:`h-10 w-10 animate-spin`}):(0,V.jsx)(W,{taxCategory:a,close:t,onAdd:n})}function W({taxCategory:e,close:t,onAdd:n}){let r=C({defaultValues:{sortCode:e.sortCode?.key,name:e.name,irsCode:e.irsCode}}),{handleSubmit:i}=r,[a,o]=(0,R.useState)(!1),{userContext:s}=(0,R.useContext)(A),{updateTaxCategory:c,fetching:l}=B(),u=r=>{r.sortCode&&=parseInt(r.sortCode.toString()),c({fields:r,taxCategoryId:e.id}).then(e=>{e?.id&&(n?.(e.id),t())})};return(0,V.jsx)(w,{...r,children:(0,V.jsxs)(`form`,{onSubmit:i(u),children:[(0,V.jsx)(`div`,{className:`flex flex-col gap-4 my-4`,children:(0,V.jsx)(v,{isInsert:!1,formManager:r,setFetching:o,ownerId:e.ownerId??s?.context.adminBusinessId})}),(0,V.jsx)(`div`,{className:`flex justify-end mt-4`,children:(0,V.jsx)(S,{type:`submit`,disabled:l||a,children:`Update`})})]})})}var G=({data:e})=>(0,V.jsx)(`td`,{children:e.name}),K=({data:e})=>(0,V.jsx)(`td`,{children:e.sortCode?(0,V.jsxs)(`span`,{children:[e.sortCode?.name,` (`,e.sortCode?.id,`)`]}):`N/A`}),q=[{id:`name`,accessorKey:`name`,cell:({row:e})=>(0,V.jsx)(G,{data:e.original}),header:({column:e})=>(0,V.jsxs)(S,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Name`,(0,V.jsx)(b,{})]})},{id:`sortCode`,accessorKey:`sortCode.key`,cell:({row:e})=>(0,V.jsx)(K,{data:e.original}),header:({column:e})=>(0,V.jsxs)(S,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Sort Code`,(0,V.jsx)(b,{})]})},{id:`edit`,cell:({row:e})=>(0,V.jsx)(H,{taxCategoryId:e.original.id})}],J=()=>{let[{data:e,fetching:t,error:n},i]=l({query:r}),{setFiltersContext:a}=(0,R.useContext)(x),s=e?.taxCategories??[],c=E({data:s,columns:q,getCoreRowModel:I(),getPaginationRowModel:M(),getSortedRowModel:O(),initialState:{pagination:{pageSize:30}}});return(0,R.useEffect)(()=>{a((0,V.jsx)(`div`,{className:`flex items-center justify-end gap-10 space-x-2 py-4`,children:(0,V.jsx)(`div`,{className:`flex items-center justify-between px-2`,children:(0,V.jsx)(y,{table:c})})}))},[a,c,c.getPageOptions()]),(0,R.useEffect)(()=>{n&&o.error(`Error`,{description:`Error fetching tax categories`})},[n]),(0,V.jsx)(L,{title:`Tax Categories (${s.length})`,description:`All tax categories`,headerActions:(0,V.jsx)(g,{onAdd:()=>i()}),children:t?(0,V.jsx)(`div`,{className:`flex flex-row justify-center`,children:(0,V.jsx)(d,{className:`h-10 w-10 animate-spin mr-2`})}):(0,V.jsx)(`div`,{className:`flex flex-col gap-4 rounded-md border`,children:(0,V.jsxs)(F,{children:[(0,V.jsx)(T,{children:c.getHeaderGroups().map(e=>(0,V.jsx)(j,{children:e.headers.map(e=>(0,V.jsx)(D,{children:e.isPlaceholder?null:P(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,V.jsx)(k,{children:c.getRowModel().rows.length===0?(0,V.jsx)(j,{children:(0,V.jsx)(N,{colSpan:q.length,className:`text-center py-8`,children:`No tax categories found`})}):c.getRowModel().rows.map(e=>(0,V.jsx)(j,{children:e.getVisibleCells().map(e=>(0,V.jsx)(N,{children:P(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})})})};export{J as TaxCategories};