@accounter/client 0.0.8-alpha-20251023122652-765c7f951395441461726b3b4345eebd020632d7 → 0.0.8-alpha-20251023123704-5af903a2732fbfc73740e2810002ee0b9683cef2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +19 -16
  2. package/dist/assets/{Checkbox-CpANMiXr.js → Checkbox-H3Qd4S1t.js} +2 -2
  3. package/dist/assets/{Progress-BEKiyNRK.js → Progress-_1EGB-Ud.js} +1 -1
  4. package/dist/assets/{Typography-C0c5augK.js → Typography-CuVqczIo.js} +1 -1
  5. package/dist/assets/{accordion-ZFVTCyDy.js → accordion-DUFvx4CN.js} +1 -1
  6. package/dist/assets/accountant-approvals-C7301eJO.js +1 -0
  7. package/dist/assets/{all-charges-BTyaAlp7.js → all-charges-Dx0Q4kZB.js} +1 -1
  8. package/dist/assets/{arrow-up-down-PQdrJdei.js → arrow-up-down-CehT3kEY.js} +1 -1
  9. package/dist/assets/building-2-CuwOX2TZ.js +6 -0
  10. package/dist/assets/business-CCi3RVvR.js +32 -0
  11. package/dist/assets/business-header-7F1UaeQp.js +1 -0
  12. package/dist/assets/{business-transactions-single-DJqvqlMO.js → business-transactions-single-94CVQ7c0.js} +1 -1
  13. package/dist/assets/{business-trip-BXAjI1mO.js → business-trip-cR3VWzx8.js} +1 -1
  14. package/dist/assets/charges-filters-DfoaNqnd.js +1 -0
  15. package/dist/assets/{charges-ledger-validation-CFc_zJFO.js → charges-ledger-validation-2A3wPF8j.js} +1 -1
  16. package/dist/assets/{chart-C5LuxRSv.js → chart-n1Grhp6o.js} +1 -1
  17. package/dist/assets/{data-table-pagination-g2cF8_uB.js → data-table-pagination-vl-bvd92.js} +1 -1
  18. package/dist/assets/{editable-business-trip-DyQsUJjl.js → editable-business-trip-B3CI9JMc.js} +2 -2
  19. package/dist/assets/index-8z9vrO7T.js +1 -0
  20. package/dist/assets/index-B0RQaZA4.js +1 -0
  21. package/dist/assets/{index-gBZ-7Z07.js → index-BAIrtSSd.js} +1 -1
  22. package/dist/assets/index-BBrtRPns.js +1 -0
  23. package/dist/assets/index-BU7S_VxQ.css +1 -0
  24. package/dist/assets/{index-C99l-a0m.js → index-BhJUmbsL.js} +1 -1
  25. package/dist/assets/{index-6-J73JPC.js → index-BuVXS77A.js} +1 -1
  26. package/dist/assets/index-C1x_UnLe.js +9 -0
  27. package/dist/assets/index-C9f-XFQb.js +1 -0
  28. package/dist/assets/{index-Is4LJW4y.js → index-CEXuDudr.js} +2 -2
  29. package/dist/assets/{index-C0OGGVXE.js → index-CPkFsfdv.js} +2 -2
  30. package/dist/assets/{index-Bpef3vuz.js → index-CaRLwZiB.js} +2 -2
  31. package/dist/assets/index-Cf3-ZPQo.js +1 -0
  32. package/dist/assets/{index-o_W5PWRq.js → index-Cm8oS2Wv.js} +6 -6
  33. package/dist/assets/{index-BSg8ocop.js → index-Cq6OcLVo.js} +2 -2
  34. package/dist/assets/{index-S6eSocQH.js → index-Csw94_Rv.js} +7 -7
  35. package/dist/assets/{index-CJdrnxxy.js → index-D7mzFB80.js} +2 -2
  36. package/dist/assets/{index-CN2818Wt.js → index-DGu24d2w.js} +233 -223
  37. package/dist/assets/index-DqCKwgnm.js +1 -0
  38. package/dist/assets/index-F3Rioz-t.js +1 -0
  39. package/dist/assets/index-PtT3cBhJ.js +1 -0
  40. package/dist/assets/index-YubUek6Y.js +1 -0
  41. package/dist/assets/index-fV50iczO.js +1 -0
  42. package/dist/assets/index-v0pHA7vt.js +1 -0
  43. package/dist/assets/{index.es-DZgQ4YcV.js → index.es-DdWlmUts.js} +1 -1
  44. package/dist/assets/{issue-document-D-JoFiMZ.js → issue-document-Dzhl0JwR.js} +1 -1
  45. package/dist/assets/login-page-D3LEhB5B.js +1 -0
  46. package/dist/assets/{missing-info-charges-CPnjfjfW.js → missing-info-charges-B4HgfJ2l.js} +1 -1
  47. package/dist/assets/page-not-found-CPpHfwNp.js +1 -0
  48. package/dist/assets/{pencil-BUwX_eHK.js → pencil-Ua-VQaqF.js} +1 -1
  49. package/dist/assets/report-commentary-row-BXqG5TF-.js +1 -0
  50. package/dist/assets/save-DxeJtmwS.js +6 -0
  51. package/dist/assets/{sub-C2zifPY5.js → sub-CvDx5dr5.js} +1 -1
  52. package/dist/assets/subMonths-DgP1GRUy.js +1 -0
  53. package/dist/index.html +2 -2
  54. package/package.json +4 -4
  55. package/src/components/business/business-header.tsx +21 -2
  56. package/src/components/businesses/index.tsx +56 -39
  57. package/src/components/common/forms/index.ts +0 -1
  58. package/src/components/common/modals/insert-business.tsx +659 -51
  59. package/src/gql/gql.ts +6 -30
  60. package/src/gql/graphql.ts +7 -30
  61. package/src/providers/urql-client.ts +3 -2
  62. package/src/providers/urql.tsx +0 -5
  63. package/src/router/loaders/business-loader.ts +4 -2
  64. package/src/router/loaders/charge-loader.ts +4 -2
  65. package/dist/assets/accountant-approvals-CpzuSBgK.js +0 -1
  66. package/dist/assets/business-DiQFqEHI.js +0 -42
  67. package/dist/assets/charges-filters-r7FjeZLc.js +0 -1
  68. package/dist/assets/index-2g0J28D2.js +0 -1
  69. package/dist/assets/index-B5j8Fmt8.js +0 -1
  70. package/dist/assets/index-BSBV6pv2.js +0 -9
  71. package/dist/assets/index-BziuNiXZ.js +0 -1
  72. package/dist/assets/index-C7KKktQ5.js +0 -1
  73. package/dist/assets/index-CE3kLG2a.js +0 -1
  74. package/dist/assets/index-CjDRKTTf.js +0 -1
  75. package/dist/assets/index-CzzfC-dD.css +0 -1
  76. package/dist/assets/index-D2xdQJAx.js +0 -1
  77. package/dist/assets/index-DGvh10a7.js +0 -1
  78. package/dist/assets/index-DLI6Z9VU.js +0 -1
  79. package/dist/assets/index-DXL1qPt9.js +0 -1
  80. package/dist/assets/index-T-JiUNDA.js +0 -1
  81. package/dist/assets/login-page-DsHy5amR.js +0 -1
  82. package/dist/assets/page-not-found-CYmXF0n2.js +0 -1
  83. package/dist/assets/report-commentary-row-Bpvvtwpd.js +0 -1
  84. package/dist/assets/save-Ck68rh6u.js +0 -11
  85. package/dist/assets/similar-charges-by-business-modal-bUtiFfAw.js +0 -1
  86. package/dist/assets/subMonths-uUfFviD2.js +0 -1
  87. package/src/components/businesses/all-businesses-row.tsx +0 -87
  88. package/src/components/businesses/cells/hebrew-name.tsx +0 -31
  89. package/src/components/businesses/cells/index.ts +0 -2
  90. package/src/components/businesses/cells/name.tsx +0 -31
  91. package/src/components/common/forms/business-card.tsx +0 -234
  92. package/src/providers/urql-error-handler.ts +0 -27
@@ -1,18 +1,18 @@
1
1
  import { useCallback, useContext, useEffect, useState, type ReactElement } from 'react';
2
2
  import { Loader2, PanelTopClose, PanelTopOpen } from 'lucide-react';
3
+ import { useNavigate } from 'react-router-dom';
3
4
  import { useQuery } from 'urql';
4
- import { Table, Tooltip } from '@mantine/core';
5
- import {
6
- AllBusinessesForScreenDocument,
7
- type AllBusinessesForScreenQuery,
8
- } from '../../gql/graphql.js';
5
+ import { Tooltip } from '@mantine/core';
6
+ import { AllBusinessesForScreenDocument } from '../../gql/graphql.js';
9
7
  import { useUrlQuery } from '../../hooks/use-url-query.js';
10
8
  import { cn } from '../../lib/utils.js';
11
9
  import { FiltersContext } from '../../providers/filters-context.js';
12
- import { MergeBusinessesButton } from '../common/index.js';
10
+ import { ROUTES } from '../../router/routes.js';
11
+ import { BusinessHeader } from '../business/business-header.js';
12
+ import { InsertBusiness, MergeBusinessesButton } from '../common/index.js';
13
13
  import { PageLayout } from '../layout/page-layout.js';
14
14
  import { Button } from '../ui/button.js';
15
- import { AllBusinessesRow } from './all-businesses-row.js';
15
+ import { Checkbox } from '../ui/checkbox.js';
16
16
  import { BusinessesFilters } from './businesses-filters.js';
17
17
 
18
18
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- used by codegen
@@ -24,7 +24,7 @@ import { BusinessesFilters } from './businesses-filters.js';
24
24
  id
25
25
  name
26
26
  ... on LtdFinancialEntity {
27
- ...AllBusinessesRowFields
27
+ ...BusinessHeader
28
28
  }
29
29
  }
30
30
  pageInfo {
@@ -43,7 +43,7 @@ export const Businesses = (): ReactElement => {
43
43
  );
44
44
  const { setFiltersContext } = useContext(FiltersContext);
45
45
 
46
- const [{ data, fetching }] = useQuery({
46
+ const [{ data, fetching }, refetch] = useQuery({
47
47
  query: AllBusinessesForScreenDocument,
48
48
  variables: {
49
49
  page: activePage,
@@ -52,6 +52,7 @@ export const Businesses = (): ReactElement => {
52
52
  },
53
53
  });
54
54
 
55
+ const navigate = useNavigate();
55
56
  const [mergeSelectedBusinesses, setMergeSelectedBusinesses] = useState<
56
57
  Array<{ id: string; onChange: () => void }>
57
58
  >([]);
@@ -121,41 +122,57 @@ export const Businesses = (): ReactElement => {
121
122
  const selectedIds = new Set(mergeSelectedBusinesses.map(selected => selected.id));
122
123
 
123
124
  return (
124
- <PageLayout title={`Businesses (${businesses.length})`} description="All businesses">
125
+ <PageLayout
126
+ title={`Businesses (${businesses.length})`}
127
+ description="All businesses"
128
+ headerActions={
129
+ <div className="flex items-center py-4 gap-4">
130
+ <InsertBusiness description="" onAdd={() => refetch()} />
131
+ </div>
132
+ }
133
+ >
125
134
  {fetching ? (
126
135
  <div className="flex flex-row justify-center">
127
136
  <Loader2 className={cn('h-10 w-10 animate-spin mr-2')} />
128
137
  </div>
129
138
  ) : (
130
- <Table striped highlightOnHover>
131
- <thead className="sticky top-0 z-20">
132
- <tr className="px-10 py-10 title-font tracking-wider font-medium text-gray-900 text-sm bg-gray-100 rounded-tl rounded-bl">
133
- <th>Name</th>
134
- <th>Hebrew Name</th>
135
- <th>More Info</th>
136
- </tr>
137
- </thead>
138
- <tbody>
139
- {businesses.map(business => (
140
- <AllBusinessesRow
141
- key={business.id}
142
- data={
143
- business as Extract<
144
- NonNullable<AllBusinessesForScreenQuery['allBusinesses']>['nodes'][number],
145
- { __typename: 'LtdFinancialEntity' }
146
- >
147
- }
148
- isAllOpened={isAllOpened}
149
- toggleMergeBusiness={
150
- toggleMergeBusiness
151
- ? (onChange: () => void): void => toggleMergeBusiness(business.id, onChange)
152
- : undefined
153
- }
154
- isSelectedForMerge={selectedIds.has(business.id) ?? false}
155
- />
156
- ))}
157
- </tbody>
158
- </Table>
139
+ <div className="space-y-2">
140
+ {businesses.map(business => (
141
+ <div
142
+ key={business.id}
143
+ className="group relative border rounded-lg hover:shadow-md transition-shadow"
144
+ >
145
+ <div className="flex items-center gap-3">
146
+ <div className="pl-4 flex items-center">
147
+ <Checkbox
148
+ checked={selectedIds.has(business.id)}
149
+ onCheckedChange={() => {
150
+ toggleMergeBusiness(business.id, () => {});
151
+ }}
152
+ className="h-4 w-4 rounded border-gray-300 cursor-pointer"
153
+ onClick={(e): void => e.stopPropagation()}
154
+ />
155
+ </div>
156
+ <div
157
+ role="button"
158
+ tabIndex={0}
159
+ className="flex-1 cursor-pointer"
160
+ onClick={(): void => {
161
+ navigate(ROUTES.BUSINESSES.DETAIL(business.id));
162
+ }}
163
+ onKeyDown={(e): void => {
164
+ if (e.key === 'Enter' || e.key === ' ') {
165
+ e.preventDefault();
166
+ navigate(ROUTES.BUSINESSES.DETAIL(business.id));
167
+ }
168
+ }}
169
+ >
170
+ <BusinessHeader data={business} />
171
+ </div>
172
+ </div>
173
+ </div>
174
+ ))}
175
+ </div>
159
176
  )}
160
177
  </PageLayout>
161
178
  );
@@ -1,4 +1,3 @@
1
- export * from './business-card.js';
2
1
  export * from './edit-charge.js';
3
2
  export * from './edit-document.js';
4
3
  export * from './edit-misc-expense.js';