@kelpie/ui 0.7.0 → 0.8.0
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.
- package/dist/api/resource.d.ts +58 -5
- package/dist/api/resource.d.ts.map +1 -1
- package/dist/api/resource.js +106 -24
- package/dist/api/resource.js.map +1 -1
- package/dist/api/resources/companies.d.ts +2 -0
- package/dist/api/resources/companies.d.ts.map +1 -1
- package/dist/api/resources/companies.js +5 -1
- package/dist/api/resources/companies.js.map +1 -1
- package/dist/api/resources/decisions.d.ts +2 -0
- package/dist/api/resources/decisions.d.ts.map +1 -1
- package/dist/api/resources/decisions.js +1 -0
- package/dist/api/resources/decisions.js.map +1 -1
- package/dist/api/resources/emailDomainLinker.d.ts +16 -0
- package/dist/api/resources/emailDomainLinker.d.ts.map +1 -0
- package/dist/api/resources/emailDomainLinker.js +16 -0
- package/dist/api/resources/emailDomainLinker.js.map +1 -0
- package/dist/api/resources/forms.d.ts.map +1 -1
- package/dist/api/resources/forms.js +6 -20
- package/dist/api/resources/forms.js.map +1 -1
- package/dist/api/resources/handbookPages.d.ts +1 -1
- package/dist/api/resources/handbookPages.js +1 -1
- package/dist/api/resources/listMembers.d.ts +27 -0
- package/dist/api/resources/listMembers.d.ts.map +1 -0
- package/dist/api/resources/listMembers.js +108 -0
- package/dist/api/resources/listMembers.js.map +1 -0
- package/dist/api/resources/lists.d.ts +14 -0
- package/dist/api/resources/lists.d.ts.map +1 -0
- package/dist/api/resources/lists.js +34 -0
- package/dist/api/resources/lists.js.map +1 -0
- package/dist/api/resources/people.d.ts.map +1 -1
- package/dist/api/resources/people.js +4 -1
- package/dist/api/resources/people.js.map +1 -1
- package/dist/api/resources/roles.d.ts +2 -0
- package/dist/api/resources/roles.d.ts.map +1 -1
- package/dist/api/resources/roles.js +1 -1
- package/dist/api/resources/roles.js.map +1 -1
- package/dist/api/resources/sampleData.d.ts +17 -0
- package/dist/api/resources/sampleData.d.ts.map +1 -0
- package/dist/api/resources/sampleData.js +30 -0
- package/dist/api/resources/sampleData.js.map +1 -0
- package/dist/api/resources/webhooks.d.ts.map +1 -1
- package/dist/api/resources/webhooks.js +7 -22
- package/dist/api/resources/webhooks.js.map +1 -1
- package/dist/app/KelpieApp.d.ts.map +1 -1
- package/dist/app/KelpieApp.js +3 -1
- package/dist/app/KelpieApp.js.map +1 -1
- package/dist/components/ActivitiesPanel.d.ts.map +1 -1
- package/dist/components/ActivitiesPanel.js +2 -1
- package/dist/components/ActivitiesPanel.js.map +1 -1
- package/dist/components/ColumnPicker.d.ts +24 -0
- package/dist/components/ColumnPicker.d.ts.map +1 -0
- package/dist/components/ColumnPicker.js +56 -0
- package/dist/components/ColumnPicker.js.map +1 -0
- package/dist/components/DataTable.d.ts +16 -1
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable.js +51 -10
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/DecisionsPanel.d.ts.map +1 -1
- package/dist/components/DecisionsPanel.js +4 -3
- package/dist/components/DecisionsPanel.js.map +1 -1
- package/dist/components/EntitySearch.d.ts.map +1 -1
- package/dist/components/EntitySearch.js +11 -5
- package/dist/components/EntitySearch.js.map +1 -1
- package/dist/components/ListsPanel.d.ts +14 -0
- package/dist/components/ListsPanel.d.ts.map +1 -0
- package/dist/components/ListsPanel.js +56 -0
- package/dist/components/ListsPanel.js.map +1 -0
- package/dist/components/NotesPanel.d.ts.map +1 -1
- package/dist/components/NotesPanel.js +6 -5
- package/dist/components/NotesPanel.js.map +1 -1
- package/dist/components/Paginator.d.ts +26 -0
- package/dist/components/Paginator.d.ts.map +1 -0
- package/dist/components/Paginator.js +16 -0
- package/dist/components/Paginator.js.map +1 -0
- package/dist/components/PlanPanel.d.ts.map +1 -1
- package/dist/components/PlanPanel.js +2 -1
- package/dist/components/PlanPanel.js.map +1 -1
- package/dist/components/Shell.d.ts.map +1 -1
- package/dist/components/Shell.js +1 -0
- package/dist/components/Shell.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/listView.d.ts +15 -0
- package/dist/lib/listView.d.ts.map +1 -0
- package/dist/lib/listView.js +66 -0
- package/dist/lib/listView.js.map +1 -0
- package/dist/lib/sort.d.ts +43 -0
- package/dist/lib/sort.d.ts.map +1 -0
- package/dist/lib/sort.js +102 -0
- package/dist/lib/sort.js.map +1 -0
- package/dist/pages/CompaniesPage.d.ts.map +1 -1
- package/dist/pages/CompaniesPage.js +88 -3
- package/dist/pages/CompaniesPage.js.map +1 -1
- package/dist/pages/CompanyDetail.d.ts.map +1 -1
- package/dist/pages/CompanyDetail.js +17 -14
- package/dist/pages/CompanyDetail.js.map +1 -1
- package/dist/pages/DealDetail.d.ts.map +1 -1
- package/dist/pages/DealDetail.js +3 -1
- package/dist/pages/DealDetail.js.map +1 -1
- package/dist/pages/DealsPage.d.ts.map +1 -1
- package/dist/pages/DealsPage.js +134 -14
- package/dist/pages/DealsPage.js.map +1 -1
- package/dist/pages/DecisionsPage.d.ts.map +1 -1
- package/dist/pages/DecisionsPage.js +50 -8
- package/dist/pages/DecisionsPage.js.map +1 -1
- package/dist/pages/FormsPage.d.ts.map +1 -1
- package/dist/pages/FormsPage.js +53 -2
- package/dist/pages/FormsPage.js.map +1 -1
- package/dist/pages/FundraisingPage.d.ts.map +1 -1
- package/dist/pages/FundraisingPage.js +116 -14
- package/dist/pages/FundraisingPage.js.map +1 -1
- package/dist/pages/HiringPage.d.ts.map +1 -1
- package/dist/pages/HiringPage.js +27 -4
- package/dist/pages/HiringPage.js.map +1 -1
- package/dist/pages/ListDetail.d.ts +11 -0
- package/dist/pages/ListDetail.d.ts.map +1 -0
- package/dist/pages/ListDetail.js +188 -0
- package/dist/pages/ListDetail.js.map +1 -0
- package/dist/pages/ListsPage.d.ts +9 -0
- package/dist/pages/ListsPage.d.ts.map +1 -0
- package/dist/pages/ListsPage.js +125 -0
- package/dist/pages/ListsPage.js.map +1 -0
- package/dist/pages/OpportunitiesPage.d.ts.map +1 -1
- package/dist/pages/OpportunitiesPage.js +97 -14
- package/dist/pages/OpportunitiesPage.js.map +1 -1
- package/dist/pages/OpportunityDetail.d.ts.map +1 -1
- package/dist/pages/OpportunityDetail.js +3 -1
- package/dist/pages/OpportunityDetail.js.map +1 -1
- package/dist/pages/PartnershipDetail.d.ts.map +1 -1
- package/dist/pages/PartnershipDetail.js +3 -1
- package/dist/pages/PartnershipDetail.js.map +1 -1
- package/dist/pages/PartnershipsPage.d.ts.map +1 -1
- package/dist/pages/PartnershipsPage.js +111 -14
- package/dist/pages/PartnershipsPage.js.map +1 -1
- package/dist/pages/PeoplePage.d.ts.map +1 -1
- package/dist/pages/PeoplePage.js +102 -3
- package/dist/pages/PeoplePage.js.map +1 -1
- package/dist/pages/PersonDetail.d.ts.map +1 -1
- package/dist/pages/PersonDetail.js +5 -3
- package/dist/pages/PersonDetail.js.map +1 -1
- package/dist/pages/PlanningPage.d.ts.map +1 -1
- package/dist/pages/PlanningPage.js +85 -17
- package/dist/pages/PlanningPage.js.map +1 -1
- package/dist/pages/RaiseDetail.d.ts.map +1 -1
- package/dist/pages/RaiseDetail.js +3 -1
- package/dist/pages/RaiseDetail.js.map +1 -1
- package/dist/pages/RoleDetail.d.ts.map +1 -1
- package/dist/pages/RoleDetail.js +5 -4
- package/dist/pages/RoleDetail.js.map +1 -1
- package/dist/pages/admin/DataPage.d.ts.map +1 -1
- package/dist/pages/admin/DataPage.js +110 -12
- package/dist/pages/admin/DataPage.js.map +1 -1
- package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -1
- package/dist/pages/admin/WebhookDeliveries.js +3 -2
- package/dist/pages/admin/WebhookDeliveries.js.map +1 -1
- package/dist/pages/admin/WebhooksPage.d.ts.map +1 -1
- package/dist/pages/admin/WebhooksPage.js +3 -2
- package/dist/pages/admin/WebhooksPage.js.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.d.ts.map +1 -1
- package/dist/pages/admin/WorkspaceSettingsPage.js +45 -2
- package/dist/pages/admin/WorkspaceSettingsPage.js.map +1 -1
- package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -1
- package/dist/pages/forms/SubmissionsTable.js +2 -1
- package/dist/pages/forms/SubmissionsTable.js.map +1 -1
- package/dist/pages/handbook/HandbookPage.js +1 -1
- package/dist/pages/hiringDirectory.js +2 -2
- package/dist/pages/onboarding/WorkspaceStepPage.d.ts.map +1 -1
- package/dist/pages/onboarding/WorkspaceStepPage.js +15 -2
- package/dist/pages/onboarding/WorkspaceStepPage.js.map +1 -1
- package/dist/pages/positionDirectory.js +2 -2
- package/package.json +2 -2
- package/src/api/resource.ts +149 -31
- package/src/api/resources/companies.ts +7 -1
- package/src/api/resources/decisions.ts +3 -0
- package/src/api/resources/emailDomainLinker.ts +43 -0
- package/src/api/resources/forms.ts +5 -23
- package/src/api/resources/handbookPages.ts +1 -1
- package/src/api/resources/listMembers.ts +173 -0
- package/src/api/resources/lists.ts +61 -0
- package/src/api/resources/people.ts +4 -1
- package/src/api/resources/roles.ts +3 -1
- package/src/api/resources/sampleData.ts +56 -0
- package/src/api/resources/webhooks.ts +8 -24
- package/src/app/KelpieApp.tsx +4 -0
- package/src/components/ActivitiesPanel.tsx +2 -10
- package/src/components/ColumnPicker.tsx +124 -0
- package/src/components/DataTable.tsx +89 -10
- package/src/components/DecisionsPanel.tsx +4 -12
- package/src/components/EntitySearch.tsx +12 -5
- package/src/components/ListsPanel.tsx +176 -0
- package/src/components/NotesPanel.tsx +6 -14
- package/src/components/Paginator.tsx +78 -0
- package/src/components/PlanPanel.tsx +2 -10
- package/src/components/Shell.tsx +1 -0
- package/src/index.ts +10 -1
- package/src/lib/listView.ts +149 -0
- package/src/lib/sort.ts +143 -0
- package/src/pages/CompaniesPage.tsx +125 -11
- package/src/pages/CompanyDetail.tsx +62 -62
- package/src/pages/DealDetail.tsx +3 -0
- package/src/pages/DealsPage.tsx +178 -24
- package/src/pages/DecisionsPage.tsx +73 -18
- package/src/pages/FormsPage.tsx +81 -17
- package/src/pages/FundraisingPage.tsx +152 -24
- package/src/pages/HiringPage.tsx +39 -11
- package/src/pages/ListDetail.tsx +408 -0
- package/src/pages/ListsPage.tsx +281 -0
- package/src/pages/OpportunitiesPage.tsx +130 -24
- package/src/pages/OpportunityDetail.tsx +3 -0
- package/src/pages/PartnershipDetail.tsx +3 -0
- package/src/pages/PartnershipsPage.tsx +149 -24
- package/src/pages/PeoplePage.tsx +137 -11
- package/src/pages/PersonDetail.tsx +5 -3
- package/src/pages/PlanningPage.tsx +256 -29
- package/src/pages/RaiseDetail.tsx +3 -0
- package/src/pages/RoleDetail.tsx +21 -26
- package/src/pages/admin/DataPage.tsx +276 -13
- package/src/pages/admin/WebhookDeliveries.tsx +10 -15
- package/src/pages/admin/WebhooksPage.tsx +14 -19
- package/src/pages/admin/WorkspaceSettingsPage.tsx +134 -2
- package/src/pages/forms/SubmissionsTable.tsx +3 -10
- package/src/pages/handbook/HandbookPage.tsx +1 -1
- package/src/pages/hiringDirectory.ts +2 -2
- package/src/pages/onboarding/WorkspaceStepPage.tsx +31 -3
- package/src/pages/positionDirectory.ts +2 -2
- package/src/styles.css +3 -3
package/dist/api/resource.d.ts
CHANGED
|
@@ -11,14 +11,42 @@ import type { Decoder, QueryParameters } from './client.ts';
|
|
|
11
11
|
* `@tanstack/react-query` directly. That is deliberate: it keeps page code short
|
|
12
12
|
* and leaves the cache library replaceable without touching a page.
|
|
13
13
|
*/
|
|
14
|
-
/**
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The default page size when a caller does not name one via `query.limit`.
|
|
16
|
+
* Matches the `/v1` default from `api.md`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_PAGE_SIZE = 50;
|
|
19
|
+
/**
|
|
20
|
+
* The pagination controls a list surface renders. Split out from
|
|
21
|
+
* `RecordListResult` so the `Paginator` component can accept just this subset
|
|
22
|
+
* and stay generic in the record type.
|
|
23
|
+
*/
|
|
24
|
+
export interface Paged {
|
|
25
|
+
/** Zero-based index of the page currently on screen. */
|
|
26
|
+
readonly pageIndex: number;
|
|
27
|
+
/** Number of records the API returns per page, from `?limit=`. */
|
|
28
|
+
readonly pageSize: number;
|
|
29
|
+
readonly hasPrev: boolean;
|
|
30
|
+
readonly hasNext: boolean;
|
|
31
|
+
/** True while fetching a not-yet-cached page. Prev on a cached page is instant. */
|
|
32
|
+
readonly isChangingPage: boolean;
|
|
33
|
+
readonly prevPage: () => void;
|
|
34
|
+
readonly nextPage: () => void;
|
|
35
|
+
/**
|
|
36
|
+
* Changes the API `?limit=` and returns the reader to page 1. The API caps
|
|
37
|
+
* `?limit=` at 200 (`api.md`); a larger value is coerced by the server, not
|
|
38
|
+
* refused by this hook.
|
|
39
|
+
*/
|
|
40
|
+
readonly setPageSize: (size: number) => void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A list, one page at a time. Records are the current page only, not the
|
|
44
|
+
* accumulation across pages a `Load more` reader would give.
|
|
45
|
+
*/
|
|
46
|
+
export interface RecordListResult<TRecord> extends Paged {
|
|
16
47
|
readonly records: readonly TRecord[];
|
|
17
48
|
readonly isLoading: boolean;
|
|
18
49
|
readonly error: Error | null;
|
|
19
|
-
readonly hasMore: boolean;
|
|
20
|
-
readonly isLoadingMore: boolean;
|
|
21
|
-
readonly loadMore: () => void;
|
|
22
50
|
}
|
|
23
51
|
export interface RecordResult<TRecord> {
|
|
24
52
|
readonly record: TRecord | undefined;
|
|
@@ -82,6 +110,31 @@ export interface ResourceDefinition<TRecord, TCreateInput, TUpdateInput> extends
|
|
|
82
110
|
*/
|
|
83
111
|
readonly alsoInvalidates?: readonly string[];
|
|
84
112
|
}
|
|
113
|
+
export interface PagedListInput<TRecord> {
|
|
114
|
+
/**
|
|
115
|
+
* The React Query cache key for this list, without `?limit=`. `usePagedList`
|
|
116
|
+
* appends the current page size so the cache splits by size — swapping page
|
|
117
|
+
* sizes has to fetch, or the cursors from one size would page a list saved
|
|
118
|
+
* under another.
|
|
119
|
+
*/
|
|
120
|
+
readonly queryKey: readonly unknown[];
|
|
121
|
+
readonly path: string;
|
|
122
|
+
readonly decode: Decoder<TRecord>;
|
|
123
|
+
/** Query parameters other than `limit` and `cursor`. `usePagedList` sends both itself. */
|
|
124
|
+
readonly query: QueryParameters;
|
|
125
|
+
readonly enabled?: boolean;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The paged reader every list hook uses: `createResourceHooks`'s `useList`,
|
|
129
|
+
* and the three custom collections whose paths carry a parent id
|
|
130
|
+
* (`useFormSubmissions`, `useListMembers`, `useWebhookDeliveries`).
|
|
131
|
+
*
|
|
132
|
+
* The API is cursor-only (`api.md`), so pages are fetched forward. Already
|
|
133
|
+
* fetched pages stay cached in `useInfiniteQuery`, and `pageIndex` selects
|
|
134
|
+
* which one is on screen — so going back to a visited page is instant and
|
|
135
|
+
* going forward past the fetched set kicks off exactly one new request.
|
|
136
|
+
*/
|
|
137
|
+
export declare function usePagedList<TRecord>(input: PagedListInput<TRecord>): RecordListResult<TRecord>;
|
|
85
138
|
/**
|
|
86
139
|
* The read half: `useList` and `useRecord`, and nothing that writes.
|
|
87
140
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/api/resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/api/resource.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAQ,eAAe,EAAE,MAAM,aAAa,CAAA;AAIjE;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,mFAAmF;IACnF,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,CAAE,SAAQ,KAAK;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAC5B,qGAAqG;IACrG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,EAAE,OAAO;IAC7C,yFAAyF;IACzF,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACtD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe,CAAC,YAAY;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAChE,SAAQ,qBAAqB,CAAC,OAAO,CAAC;IACtC,SAAS,IAAI,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAClD,SAAS,IAAI,cAAc,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;IACnE,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAC1C;AAED,uGAAuG;AACvG,MAAM,WAAW,qBAAqB,CAAC,OAAO;IAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAClF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,0BAA0B,CAAC,OAAO;IACjD,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CACrE,SAAQ,0BAA0B,CAAC,OAAO,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAA;IACrD,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAA;IACrD;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7C;AA8ED,MAAM,WAAW,cAAc,CAAC,OAAO;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAiF/F;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EACjD,UAAU,EAAE,0BAA0B,CAAC,OAAO,CAAC,GAC9C,qBAAqB,CAAC,OAAO,CAAC,CA8BhC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACvC,YAAY,EACZ,YAAY,SAAS,OAAO,CAAC,OAAO,CAAC,EAErC,UAAU,EAAE,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,GAClE,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAoIpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,OAAO,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,EACxE,SAAS,EAAE,MAAM,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EACnE,MAAM,EAAE,OAAO,GACd,WAAW,CAAC,QAAQ,CAAC,CASvB"}
|
package/dist/api/resource.js
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
import { keepPreviousData, useInfiniteQuery, useMutation, useQuery, useQueryClient, } from '@tanstack/react-query';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
2
3
|
import { ApiError } from './client.js';
|
|
3
4
|
import { useApiClient } from './context.js';
|
|
4
5
|
import { toError } from './errors.js';
|
|
6
|
+
/**
|
|
7
|
+
* The read and write hooks for one `/v1` collection.
|
|
8
|
+
*
|
|
9
|
+
* Every CRM resource is the same five operations over the same list envelope,
|
|
10
|
+
* so they are built once here and configured per resource. A resource module
|
|
11
|
+
* supplies its path, its decoder, and its two body builders; it writes no cache
|
|
12
|
+
* handling of its own.
|
|
13
|
+
*
|
|
14
|
+
* Pages see the three result types below and never import from
|
|
15
|
+
* `@tanstack/react-query` directly. That is deliberate: it keeps page code short
|
|
16
|
+
* and leaves the cache library replaceable without touching a page.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* The default page size when a caller does not name one via `query.limit`.
|
|
20
|
+
* Matches the `/v1` default from `api.md`.
|
|
21
|
+
*/
|
|
22
|
+
export const DEFAULT_PAGE_SIZE = 50;
|
|
5
23
|
function keysFor(name) {
|
|
6
24
|
return {
|
|
7
25
|
all: [name],
|
|
@@ -51,6 +69,89 @@ function removeRecordEverywhere(queryClient, keys, id) {
|
|
|
51
69
|
})),
|
|
52
70
|
});
|
|
53
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* The paged reader every list hook uses: `createResourceHooks`'s `useList`,
|
|
74
|
+
* and the three custom collections whose paths carry a parent id
|
|
75
|
+
* (`useFormSubmissions`, `useListMembers`, `useWebhookDeliveries`).
|
|
76
|
+
*
|
|
77
|
+
* The API is cursor-only (`api.md`), so pages are fetched forward. Already
|
|
78
|
+
* fetched pages stay cached in `useInfiniteQuery`, and `pageIndex` selects
|
|
79
|
+
* which one is on screen — so going back to a visited page is instant and
|
|
80
|
+
* going forward past the fetched set kicks off exactly one new request.
|
|
81
|
+
*/
|
|
82
|
+
export function usePagedList(input) {
|
|
83
|
+
const client = useApiClient();
|
|
84
|
+
const enabled = input.enabled ?? true;
|
|
85
|
+
const requestedLimit = input.query.limit;
|
|
86
|
+
const initialPageSize = typeof requestedLimit === 'number' && Number.isFinite(requestedLimit) && requestedLimit > 0
|
|
87
|
+
? requestedLimit
|
|
88
|
+
: DEFAULT_PAGE_SIZE;
|
|
89
|
+
const [pageSize, setPageSize] = useState(initialPageSize);
|
|
90
|
+
const [pageIndex, setPageIndex] = useState(0);
|
|
91
|
+
const queryKey = [...input.queryKey, { limit: pageSize }];
|
|
92
|
+
const queryKeySignature = JSON.stringify(queryKey);
|
|
93
|
+
// A filter or sort change lands as a fresh `useInfiniteQuery`, so the page
|
|
94
|
+
// number the user was on no longer makes sense. Effect over signature keeps
|
|
95
|
+
// this cheap: same key, no re-render.
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
setPageIndex(0);
|
|
98
|
+
}, [queryKeySignature]);
|
|
99
|
+
const result = useInfiniteQuery({
|
|
100
|
+
queryKey,
|
|
101
|
+
queryFn: ({ pageParam }) => client.list(input.path, input.decode, {
|
|
102
|
+
...input.query,
|
|
103
|
+
limit: pageSize,
|
|
104
|
+
...(pageParam === null ? {} : { cursor: pageParam }),
|
|
105
|
+
}),
|
|
106
|
+
initialPageParam: null,
|
|
107
|
+
getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
108
|
+
// Without this a keystroke in the filter box blanks the table while the
|
|
109
|
+
// next query runs, which reads as "no results" for as long as it takes.
|
|
110
|
+
placeholderData: keepPreviousData,
|
|
111
|
+
enabled,
|
|
112
|
+
});
|
|
113
|
+
const pages = result.data?.pages ?? [];
|
|
114
|
+
// A shrinking cache — a delete followed by a refetch — can leave the index
|
|
115
|
+
// past the last page. Clamp so a stale index never renders a blank table.
|
|
116
|
+
const safeIndex = pages.length === 0 ? 0 : Math.min(pageIndex, pages.length - 1);
|
|
117
|
+
const currentPage = pages[safeIndex];
|
|
118
|
+
const hasCachedNext = safeIndex + 1 < pages.length;
|
|
119
|
+
const hasNext = hasCachedNext || result.hasNextPage;
|
|
120
|
+
const hasPrev = safeIndex > 0;
|
|
121
|
+
return {
|
|
122
|
+
records: currentPage?.items ?? [],
|
|
123
|
+
// A disabled query stays pending forever, which is not the same as loading.
|
|
124
|
+
isLoading: result.isPending && enabled,
|
|
125
|
+
error: toError(result.error),
|
|
126
|
+
pageIndex: safeIndex,
|
|
127
|
+
pageSize,
|
|
128
|
+
hasPrev,
|
|
129
|
+
hasNext,
|
|
130
|
+
isChangingPage: result.isFetchingNextPage,
|
|
131
|
+
prevPage: () => {
|
|
132
|
+
setPageIndex((current) => Math.max(0, current - 1));
|
|
133
|
+
},
|
|
134
|
+
nextPage: () => {
|
|
135
|
+
if (hasCachedNext) {
|
|
136
|
+
setPageIndex((current) => current + 1);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (!result.hasNextPage) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
void result.fetchNextPage().then((r) => {
|
|
143
|
+
if (r.error === null) {
|
|
144
|
+
setPageIndex((current) => current + 1);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
},
|
|
148
|
+
// Query key includes `limit`, so the effect above resets `pageIndex` to 0
|
|
149
|
+
// once React sees the new key.
|
|
150
|
+
setPageSize: (size) => {
|
|
151
|
+
setPageSize(size);
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
54
155
|
/**
|
|
55
156
|
* The read half: `useList` and `useRecord`, and nothing that writes.
|
|
56
157
|
*
|
|
@@ -61,32 +162,13 @@ function removeRecordEverywhere(queryClient, keys, id) {
|
|
|
61
162
|
export function createReadOnlyResourceHooks(definition) {
|
|
62
163
|
const keys = keysFor(definition.name);
|
|
63
164
|
function useList(query = {}, options = {}) {
|
|
64
|
-
|
|
65
|
-
const enabled = options.enabled ?? true;
|
|
66
|
-
const result = useInfiniteQuery({
|
|
165
|
+
return usePagedList({
|
|
67
166
|
queryKey: keys.list(query),
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
initialPageParam: null,
|
|
73
|
-
getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
74
|
-
// Without this a keystroke in the filter box blanks the table while the
|
|
75
|
-
// next query runs, which reads as "no results" for as long as it takes.
|
|
76
|
-
placeholderData: keepPreviousData,
|
|
77
|
-
enabled,
|
|
167
|
+
path: definition.path,
|
|
168
|
+
decode: definition.decode,
|
|
169
|
+
query,
|
|
170
|
+
enabled: options.enabled ?? true,
|
|
78
171
|
});
|
|
79
|
-
return {
|
|
80
|
-
records: result.data?.pages.flatMap((page) => page.items) ?? [],
|
|
81
|
-
// A disabled query stays pending forever, which is not the same as loading.
|
|
82
|
-
isLoading: result.isPending && enabled,
|
|
83
|
-
error: toError(result.error),
|
|
84
|
-
hasMore: result.hasNextPage,
|
|
85
|
-
isLoadingMore: result.isFetchingNextPage,
|
|
86
|
-
loadMore: () => {
|
|
87
|
-
void result.fetchNextPage();
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
172
|
}
|
|
91
173
|
function useRecord(id) {
|
|
92
174
|
const client = useApiClient();
|
package/dist/api/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/api/resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/api/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export interface CompanyFilters {
|
|
|
10
10
|
readonly term?: string | undefined;
|
|
11
11
|
/** Companies where any of these people holds a position. Repeats on the wire. */
|
|
12
12
|
readonly personIds?: readonly string[] | undefined;
|
|
13
|
+
/** true = only the workspace's own companies; false = only the rest. */
|
|
14
|
+
readonly isOwn?: boolean | undefined;
|
|
13
15
|
readonly limit?: number | undefined;
|
|
14
16
|
/** `field` ascending, `-field` descending. Only `name`, `created_at`, `updated_at` are sortable. */
|
|
15
17
|
readonly sort?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companies.d.ts","sourceRoot":"","sources":["../../../src/api/resources/companies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI5D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB,gFAAgF;AAEhF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;
|
|
1
|
+
{"version":3,"file":"companies.d.ts","sourceRoot":"","sources":["../../../src/api/resources/companies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI5D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB,gFAAgF;AAEhF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAgBD,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAClD,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAYD,wBAAgB,YAAY,CAC1B,OAAO,GAAE,cAAmB,EAC5B,OAAO,GAAE,WAAgB,GACxB,gBAAgB,CAAC,OAAO,CAAC,CAE3B;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAExE;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAE9E;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAEzF;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAE/D"}
|
|
@@ -8,12 +8,16 @@ const companies = createResourceHooks({
|
|
|
8
8
|
updateBody: companyBody,
|
|
9
9
|
// Every write here emits an activity server-side, in the same transaction, so
|
|
10
10
|
// a timeline rendered on this record is stale the moment the write lands.
|
|
11
|
-
|
|
11
|
+
// Creating or renaming a domain may also auto-link Positions to workspace
|
|
12
|
+
// people whose email is at it, which changes position lists and the
|
|
13
|
+
// `?company_id=` people list that names the far side of each new row.
|
|
14
|
+
alsoInvalidates: ['activities', 'positions', 'people'],
|
|
12
15
|
});
|
|
13
16
|
function companyQuery(filters) {
|
|
14
17
|
return {
|
|
15
18
|
q: filters.term,
|
|
16
19
|
person_id: filters.personIds,
|
|
20
|
+
is_own: filters.isOwn === undefined ? undefined : String(filters.isOwn),
|
|
17
21
|
limit: filters.limit,
|
|
18
22
|
sort: filters.sort,
|
|
19
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companies.js","sourceRoot":"","sources":["../../../src/api/resources/companies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAepD,MAAM,SAAS,GAAG,mBAAmB,CAA4C;IAC/E,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,aAAa,CAAC,KAAK;IAC3B,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;IACvB,8EAA8E;IAC9E,0EAA0E;IAC1E,eAAe,EAAE,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"companies.js","sourceRoot":"","sources":["../../../src/api/resources/companies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAepD,MAAM,SAAS,GAAG,mBAAmB,CAA4C;IAC/E,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,aAAa,CAAC,KAAK;IAC3B,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;IACvB,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,oEAAoE;IACpE,sEAAsE;IACtE,eAAe,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC;CACvD,CAAC,CAAA;AAeF,SAAS,YAAY,CAAC,OAAuB;IAC3C,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACvE,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAO,GAAmB,EAAE,EAC5B,OAAO,GAAgB,EAAE;IAEzB,OAAO,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAsB;IAC/C,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC"}
|
|
@@ -5,6 +5,8 @@ export interface DecisionFilters {
|
|
|
5
5
|
readonly targetId?: string | undefined;
|
|
6
6
|
/** Matches the body, the rationale, the target type, and the target's name. */
|
|
7
7
|
readonly term?: string | undefined;
|
|
8
|
+
/** `field` ascending, `-field` descending. Only `decided_at`, `created_at`, `updated_at` are sortable. */
|
|
9
|
+
readonly sort?: string | undefined;
|
|
8
10
|
}
|
|
9
11
|
export declare function useDecisions(filters?: DecisionFilters): RecordListResult<Decision>;
|
|
10
12
|
export declare function useCreateDecision(): MutationResult<CreateDecisionInput, Decision>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../src/api/resources/decisions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAoBvF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;
|
|
1
|
+
{"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../src/api/resources/decisions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAoBvF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,0GAA0G;IAC1G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAWD,wBAAgB,YAAY,CAAC,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAEtF;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAEjF;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAE5F;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAEhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../src/api/resources/decisions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AASlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAGpD;;;;;;;;GAQG;AAEH,MAAM,SAAS,GAAG,mBAAmB,CAA+C;IAClF,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc,CAAC,KAAK;IAC5B,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,YAAY;CACzB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../src/api/resources/decisions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AASlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAGpD;;;;;;;;GAQG;AAEH,MAAM,SAAS,GAAG,mBAAmB,CAA+C;IAClF,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc,CAAC,KAAK;IAC5B,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,YAAY;CACzB,CAAC,CAAA;AAWF,SAAS,aAAa,CAAC,OAAwB;IAC7C,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,UAAU;QAC/B,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAO,GAAoB,EAAE;IACxD,OAAO,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RelinkEmailDomainsCounts } from '@kelpie/schemas';
|
|
2
|
+
import type { MutationResult } from '../resource.ts';
|
|
3
|
+
/**
|
|
4
|
+
* `POST /v1/workspaces/:id/relink-email-domains`: sweep every Company that
|
|
5
|
+
* carries a domain and stub a Position for every workspace Person whose email
|
|
6
|
+
* matches. Idempotent — a follow-up run creates no new rows.
|
|
7
|
+
*
|
|
8
|
+
* On success invalidates positions, activities, and the person-scoped /
|
|
9
|
+
* company-scoped list joins so a page open on any of those refreshes with the
|
|
10
|
+
* new links.
|
|
11
|
+
*/
|
|
12
|
+
export interface RelinkInput {
|
|
13
|
+
readonly workspaceId: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function useRelinkEmailDomains(): MutationResult<RelinkInput, RelinkEmailDomainsCounts>;
|
|
16
|
+
//# sourceMappingURL=emailDomainLinker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailDomainLinker.d.ts","sourceRoot":"","sources":["../../../src/api/resources/emailDomainLinker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD;;;;;;;;GAQG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAoB7F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { relinkEmailDomainsCountsSchema } from '@kelpie/schemas';
|
|
2
|
+
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { useApiClient } from '../context.js';
|
|
4
|
+
import { asMutationResult } from './mutation.js';
|
|
5
|
+
export function useRelinkEmailDomains() {
|
|
6
|
+
const client = useApiClient();
|
|
7
|
+
const cache = useQueryClient();
|
|
8
|
+
const mutation = useMutation({
|
|
9
|
+
mutationFn: ({ workspaceId }) => client.post(`/workspaces/${workspaceId}/relink-email-domains`, {}, relinkEmailDomainsCountsSchema.parse),
|
|
10
|
+
onSuccess: async () => {
|
|
11
|
+
await Promise.all(['positions', 'activities', 'companies', 'people'].map((name) => cache.invalidateQueries({ queryKey: [name] })));
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
return asMutationResult(mutation);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=emailDomainLinker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailDomainLinker.js","sourceRoot":"","sources":["../../../src/api/resources/emailDomainLinker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAgBhD,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAe,EAAE,EAAE,CAC3C,MAAM,CAAC,IAAI,CACT,eAAe,WAAW,uBAAuB,EACjD,EAAE,EACF,8BAA8B,CAAC,KAAK,CACrC;QACH,SAAS,EAAE,KAAK,IAAI,EAAE;YACpB,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9D,KAAK,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9C,CACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,cAAc,EACd,SAAS,EACT,cAAc,EACf,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,cAAc,EACd,SAAS,EACT,cAAc,EACf,MAAM,iBAAiB,CAAA;AAYxB,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAA;AAEvB;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAUzD,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACjD,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAMD,wBAAgB,QAAQ,CAAC,OAAO,GAAE,WAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAE1E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAElE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAErE;AAED,wBAAgB,aAAa,IAAI,cAAc,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAExF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAA;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAsBjF;AAED,uEAAuE;AACvE,wBAAgB,aAAa,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAQ/F;AAED,yFAAyF;AACzF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAmBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAa5E"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createFormBody, formBody, formSchema, formSubmissionSchema } from '@kelpie/schemas';
|
|
2
|
-
import {
|
|
2
|
+
import { useMutation, useQuery, useQueryClient, } from '@tanstack/react-query';
|
|
3
3
|
import { isRecord } from '../json.js';
|
|
4
4
|
import { useApiClient } from '../context.js';
|
|
5
5
|
import { toError } from '../errors.js';
|
|
6
|
-
import { createResourceHooks } from '../resource.js';
|
|
6
|
+
import { createResourceHooks, usePagedList } from '../resource.js';
|
|
7
7
|
const forms = createResourceHooks({
|
|
8
8
|
name: 'forms',
|
|
9
9
|
path: '/forms',
|
|
@@ -70,27 +70,13 @@ export function useDeleteForm() {
|
|
|
70
70
|
* The result shape is the same, so a page cannot tell the difference.
|
|
71
71
|
*/
|
|
72
72
|
export function useFormSubmissions(formId) {
|
|
73
|
-
|
|
74
|
-
const result = useInfiniteQuery({
|
|
73
|
+
return usePagedList({
|
|
75
74
|
queryKey: ['forms', 'submissions', formId ?? ''],
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
initialPageParam: null,
|
|
80
|
-
getNextPageParam: (lastPage) => lastPage.nextCursor,
|
|
81
|
-
placeholderData: keepPreviousData,
|
|
75
|
+
path: `/forms/${formId ?? ''}/submissions`,
|
|
76
|
+
decode: formSubmissionSchema.parse,
|
|
77
|
+
query: {},
|
|
82
78
|
enabled: formId !== undefined,
|
|
83
79
|
});
|
|
84
|
-
return {
|
|
85
|
-
records: result.data?.pages.flatMap((page) => page.items) ?? [],
|
|
86
|
-
isLoading: result.isPending && formId !== undefined,
|
|
87
|
-
error: toError(result.error),
|
|
88
|
-
hasMore: result.hasNextPage,
|
|
89
|
-
isLoadingMore: result.isFetchingNextPage,
|
|
90
|
-
loadMore: () => {
|
|
91
|
-
void result.fetchNextPage();
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
80
|
}
|
|
95
81
|
function decodeSnippets(value) {
|
|
96
82
|
if (!isRecord(value) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAQ5F,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/api/resources/forms.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export interface HandbookPageFilters {
|
|
|
14
14
|
* The same call the kanban board makes for its stages, for the same reason: a
|
|
15
15
|
* tree cannot be drawn from part of itself, and a page whose parent is on the
|
|
16
16
|
* next page of results would render at the top level as though somebody had
|
|
17
|
-
* moved it there. The caller reads `
|
|
17
|
+
* moved it there. The caller reads `hasNext` and says so rather than drawing a
|
|
18
18
|
* tree with holes in it.
|
|
19
19
|
*/
|
|
20
20
|
export declare function useHandbookPages(filters?: HandbookPageFilters): RecordListResult<HandbookPage>;
|
|
@@ -20,7 +20,7 @@ function handbookQuery(filters) {
|
|
|
20
20
|
* The same call the kanban board makes for its stages, for the same reason: a
|
|
21
21
|
* tree cannot be drawn from part of itself, and a page whose parent is on the
|
|
22
22
|
* next page of results would render at the top level as though somebody had
|
|
23
|
-
* moved it there. The caller reads `
|
|
23
|
+
* moved it there. The caller reads `hasNext` and says so rather than drawing a
|
|
24
24
|
* tree with holes in it.
|
|
25
25
|
*/
|
|
26
26
|
export function useHandbookPages(filters = {}) {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AddListMemberInput, ListMember, ListMembership, RecordTargetType } from '@kelpie/schemas';
|
|
2
|
+
import type { MutationResult, RecordListResult } from '../resource.ts';
|
|
3
|
+
export interface ListMembershipsResult {
|
|
4
|
+
readonly memberships: readonly ListMembership[];
|
|
5
|
+
readonly isLoading: boolean;
|
|
6
|
+
readonly error: Error | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* "Which lists is this record on?"
|
|
10
|
+
*
|
|
11
|
+
* A plain `useQuery` rather than the paged read: the endpoint is not paged.
|
|
12
|
+
* The invalidation key overlaps with `useListMembers` so adding or removing on
|
|
13
|
+
* either side refreshes both views.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useListMembershipsFor(targetType: RecordTargetType | undefined, targetId: string | undefined): ListMembershipsResult;
|
|
16
|
+
export declare function useListMembers(listId: string | undefined): RecordListResult<ListMember>;
|
|
17
|
+
export interface AddMemberArguments {
|
|
18
|
+
readonly listId: string;
|
|
19
|
+
readonly input: AddListMemberInput;
|
|
20
|
+
}
|
|
21
|
+
export declare function useAddListMember(): MutationResult<AddMemberArguments, ListMember>;
|
|
22
|
+
export interface RemoveMemberArguments {
|
|
23
|
+
readonly listId: string;
|
|
24
|
+
readonly id: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function useRemoveListMember(): MutationResult<RemoveMemberArguments, void>;
|
|
27
|
+
//# sourceMappingURL=listMembers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listMembers.d.ts","sourceRoot":"","sources":["../../../src/api/resources/listMembers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAYxB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAuBtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,qBAAqB,CAsBvB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAQvF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CACnC;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAqBjF;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAAC,qBAAqB,EAAE,IAAI,CAAC,CA4CjF"}
|