@accounter/client
Version:
Accounter client application
1 lines • 8.01 kB
JavaScript
import{s as e}from"./dist-BmACi7k_.js";import{i as t,o as n}from"./utils-BxkqV8PM.js";import{ya as r}from"./error-handling-wXZrXhQp.js";import{s as i,t as a}from"./routes-C4NpBRv7.js";import{ft as o,ht as s,mt as c}from"./select-C2i-wLGF.js";import{$ as l,A as u,D as d,I as f,Pt as p,Rt as m,Xn as h,ct as g,n as _,ut as v,wt as y}from"./common-BcRe1iBH.js";import{n as b,r as x,t as S}from"./similar-transactions-modal-ASG-V0TU.js";import{t as C}from"./button-BZ6z_NAl.js";import{Kl as w,Uc as T,a as E,c as D,el as O,i as k,m as A,n as j,o as M,p as N,r as P,s as F,t as I,u as L}from"./table-wRyN67dl.js";var R=e(n(),1),z=t(),B=({transaction:e})=>{let t=`effectiveDate`in e?e.effectiveDate:void 0;return(0,z.jsxs)(`div`,{className:`flex flex-col justify-center`,children:[(0,z.jsx)(`div`,{children:t&&w(new Date(t),`dd/MM/yy`)}),e.sourceEffectiveDate&&(0,z.jsxs)(`div`,{className:`text-xs text-gray-500`,children:[`(Originally `,w(new Date(e.sourceEffectiveDate),`dd/MM/yy`),`)`]})]})},V=({transaction:e})=>{let t=`eventDate`in e?e.eventDate:void 0;return(0,z.jsx)(`div`,{className:`flex flex-col justify-center`,children:t&&w(new Date(t),`dd/MM/yy`)})},H=({transaction:e})=>{let t=`amount`in e?e.amount:void 0,{isFee:n}=e;return(0,z.jsxs)(`div`,{style:{color:Number(t?.raw)>0?`green`:`red`,whiteSpace:`nowrap`},children:[t?.formatted,n&&(0,z.jsx)(T,{variant:`secondary`,className:`ml-2 text-xs font-semibold`,children:`Fee`}),(0,z.jsx)(`br`,{}),e.cryptoExchangeRate&&(0,z.jsxs)(`span`,{style:{color:`gray`,marginLeft:`0.5rem`},children:[`(Rate: ${e.cryptoExchangeRate.rate})`,(0,z.jsx)(`br`,{}),t?.raw?`${h(t.raw*e.cryptoExchangeRate.rate)}$`:null]})]})},U=({transaction:e})=>{let{account:t}=e,n=b(t.type),r=x(t.type),i=t.name;return(0,z.jsxs)(`div`,{className:`flex flex-col justify-center`,children:[(0,z.jsx)(`p`,{children:(0,z.jsx)(g,{content:r,children:n})}),(0,z.jsx)(`p`,{children:i})]})},W=({transaction:e})=>(0,z.jsx)(`div`,{className:`flex flex-wrap`,children:(0,z.jsx)(`div`,{className:`flex flex-col justify-center`,children:`sourceDescription`in e?e.sourceDescription:`Missing`})}),G=({transaction:e})=>(0,z.jsx)(`div`,{className:`flex flex-wrap`,children:(0,z.jsx)(`div`,{className:`flex flex-col justify-center`,children:e.referenceKey})});function K({transaction:e,onChange:t}){let{id:n,counterparty:r,missingInfoSuggestions:o,id:c,sourceDescription:d,enableEdit:f}=e,p=!!o?.business&&f,m=p?o?.business?.name:`Missing`,h=p?o?.business?.id:null,_=r?.name??m,[b,x]=(0,R.useState)(!1),{updateTransaction:w,fetching:T}=y(),E=(0,R.useCallback)(async e=>{await w({transactionId:c,fields:{counterpartyId:e}}),x(!0)},[c,w]),D=(0,R.useCallback)(async e=>{await E(e),t?.()},[E,t]),{selectableBusinesses:O,fetching:k}=v(),[A,j]=(0,R.useState)(h??null),[M,N]=(0,R.useState)(d);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`flex flex-wrap flex-col justify-center`,children:r?.id?(0,z.jsx)(i,{to:a.BUSINESSES.DETAIL(r.id),target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center font-semibold`,children:_}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(l,{options:O,value:A,onChange:j,search:M,onSearchChange:N,placeholder:`Choose or create a business`,empty:M?(0,z.jsx)(u,{description:M,onAdd:D}):null}),(0,z.jsx)(g,{content:`Approve`,children:(0,z.jsx)(C,{variant:`outline`,size:`icon`,onClick:()=>A&&E(A),disabled:T||k||!A,children:(0,z.jsx)(s,{className:`size-4`})})})]})}),(0,z.jsx)(S,{transactionId:n,counterpartyId:r?.id??A,open:b,onOpenChange:x,onClose:t})]})}var q=[{accessorKey:`counterparty.name`,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Counterparty`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(K,{transaction:e.original})},{accessorKey:`eventDate`,sortingFn:e=>`eventDate`in e.original&&e.original.eventDate?new Date(e.original.eventDate).getTime():0,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Event Date`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(V,{transaction:e.original})},{accessorKey:`effectiveDate`,sortingFn:e=>`effectiveDate`in e.original&&e.original.effectiveDate?new Date(e.original.effectiveDate).getTime():0,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Debit Date`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(B,{transaction:e.original})},{accessorKey:`amount.raw`,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Amount`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(H,{transaction:e.original})},{accessorKey:`account.name`,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Account`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(U,{transaction:e.original})},{accessorKey:`sourceDescription`,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Description`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(W,{transaction:e.original})},{accessorKey:`referenceKey`,header:({column:e})=>(0,z.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Reference#`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,z.jsx)(o,{className:`ml-2 h-4 w-4`}):(0,z.jsx)(c,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,z.jsx)(G,{transaction:e.original})}],J={accessorKey:`id`,header:`Actions`,cell:({row:e})=>e.original.enableEdit?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(p,{onClick:()=>e.original.editTransaction(e.original.id),tooltip:`Edit Transaction`}),(0,z.jsx)(d,{chargeId:e.original.chargeId,transactionId:e.original.id,onDone:e.original.onUpdate})]}):e.original.enableChargeLink?(0,z.jsx)(m,{chargeId:e.original.chargeId}):null},Y=({transactionsProps:e,onChange:t,enableEdit:n,enableChargeLink:i})=>{let[a,o]=(0,R.useState)(void 0),[s,c]=(0,R.useState)([]),l=(0,R.useMemo)(()=>e.map(e=>O(r,e)),[e]),u=D({data:(0,R.useMemo)(()=>l.map(e=>({...e,editTransaction:o,onUpdate:t||(()=>{}),enableEdit:n,enableChargeLink:i})),[l,n,i,t]),columns:(0,R.useMemo)(()=>n||i?[...q,J]:q,[n,i]),getCoreRowModel:L(),onSortingChange:c,getSortedRowModel:A(),getPaginationRowModel:N(),state:{sorting:s},initialState:{pagination:{pageIndex:0,pageSize:100},sorting:[{id:`eventDate`,desc:!0}]}});return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(I,{children:[(0,z.jsx)(E,{children:u.getHeaderGroups().map(e=>(0,z.jsx)(M,{children:e.headers.map(e=>(0,z.jsx)(k,{colSpan:e.colSpan,children:e.isPlaceholder?null:F(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,z.jsx)(j,{children:u.getRowModel().rows?.length?u.getRowModel().rows.map(e=>(0,z.jsx)(M,{children:e.getVisibleCells().map(e=>(0,z.jsx)(P,{children:F(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,z.jsx)(M,{children:(0,z.jsx)(P,{colSpan:q.length,className:`h-24 text-center`,children:`No results.`})})})]}),u.getPageCount()>1&&(0,z.jsx)(`div`,{className:`flex items-center justify-end space-x-2 py-4`,children:(0,z.jsx)(_,{currentPageIndex:u.getState().pagination.pageIndex,totalPages:u.getPageCount(),onChange:e=>u.setPageIndex(e)})}),(0,z.jsx)(f,{transactionID:a,close:()=>o(void 0),onChange:t??(()=>{})})]})};export{U as a,B as c,W as i,K as n,H as o,G as r,V as s,Y as t};