Skip to content

Commit 7237142

Browse files
committed
chore: update @ts-endpoint/react-admin and @ts-endpoint/tanstack-query
1 parent 72a600e commit 7237142

File tree

89 files changed

+2122
-2271
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+2122
-2271
lines changed

packages/@liexp/backend/src/queries/actors/fetchActors.query.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { DBService } from "../../services/db.service.js";
1313
const defaultQuery: http.Actor.GetListActorQuery = {
1414
ids: O.none(),
1515
q: O.none(),
16+
memberIn: O.none(),
1617
withDeleted: O.none(),
1718
_end: O.some(20),
1819
_start: O.some(0),
@@ -24,7 +25,7 @@ export const fetchActors = <C extends DatabaseContext & ENVContext>(
2425
): ReaderTaskEither<C, DBError, { total: number; results: ActorEntity[] }> => {
2526
const finalQuery = { ...defaultQuery, ...query };
2627

27-
const { ids, q: search, withDeleted, ...otherQuery } = finalQuery;
28+
const { ids, q: search, withDeleted, memberIn, ...otherQuery } = finalQuery;
2829

2930
return pipe(
3031
DBService.getORMOptions<C, typeof otherQuery>({ ...otherQuery }),
@@ -43,6 +44,12 @@ export const fetchActors = <C extends DatabaseContext & ENVContext>(
4344
});
4445
}
4546

47+
if (O.isSome(memberIn)) {
48+
return q.andWhere("actors.memberIn IN (:...memberIn)", {
49+
memberIn: memberIn.value,
50+
});
51+
}
52+
4653
if (O.isSome(withDeleted) && withDeleted.value) {
4754
q.andWhere("actors.deletedAt IS NOT NULL");
4855
}

packages/@liexp/shared/src/endpoints/group.endpoints.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export const List = Endpoint({
2323
username: OptionFromNullishToNull(Schema.String),
2424
ids: OptionFromNullishToNull(Schema.Array(UUID)),
2525
members: OptionFromNullishToNull(Schema.Array(Schema.String)),
26+
excludeIds: OptionFromNullishToNull(Schema.Array(UUID)),
2627
}),
2728
},
2829
Output: Group.GroupListOutput,

packages/@liexp/shared/src/io/http/Actor.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ export const ACTORS = Schema.Literal("actors");
1111
export type ACTORS = typeof ACTORS.Type;
1212

1313
const GetListActorQueryStruct = Schema.Struct({
14-
ids: OptionFromNullishToNull(Schema.Array(Schema.String)),
14+
ids: OptionFromNullishToNull(Schema.Array(UUID)),
15+
memberIn: OptionFromNullishToNull(Schema.Array(UUID)),
1516
withDeleted: OptionFromNullishToNull(Schema.BooleanFromString),
1617
});
1718

packages/@liexp/ui/src/components/ActorPageContent.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,10 @@ export const ActorPageContent: React.FC<ActorPageContentProps> = ({
6060
<ActorsBox
6161
style={{ display: "flex", flexDirection: "row" }}
6262
params={{
63-
sort: { field: "updatedAt", order: "DESC" },
64-
pagination: {
65-
page: 1,
66-
perPage: 3,
67-
},
68-
filter: {
69-
group: groups.map((g) => g.id),
70-
},
63+
memberIn: groups.map((g) => g.id),
64+
_sort: "updatedAt",
65+
_order: "DESC",
66+
_end: "3",
7167
}}
7268
onActorClick={onActorClick}
7369
/>

packages/@liexp/ui/src/components/Common/BlockNote/plugins/block/MediaBlock.plugin.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,10 @@ export const MediaBlockPluginRenderer: React.FC<{
6363
enableDescription={enableDescription}
6464
disableZoom={false}
6565
query={{
66-
filter: { ids: ids },
67-
pagination: { page: 1, perPage: ids.length },
68-
sort: {
69-
field: "id",
70-
order: "ASC",
71-
},
66+
ids: ids,
67+
_end: ids.length.toString(),
68+
_sort: "id",
69+
_order: "ASC",
7270
}}
7371
itemStyle={() => ({ height })}
7472
/>

packages/@liexp/ui/src/components/Common/BlockNote/plugins/renderer/InlineRelationsBoxPlugin.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,10 @@ export const InlineRelationsPlugin: React.FC<InlineRelationsPluginProps> = ({
4949
<StyledBox className={classes.root}>
5050
<ActorsBox
5151
style={{ display: "flex", flexDirection: "row" }}
52-
params={{ filter: { ids: actors } }}
52+
params={{ ids: actors }}
5353
onActorClick={onActorClick}
5454
/>
55-
<GroupsBox
56-
params={{ filter: { ids: groups } }}
57-
onItemClick={onGroupClick}
58-
/>
55+
<GroupsBox params={{ ids: groups }} onItemClick={onGroupClick} />
5956
<KeywordsBox ids={keywords} onItemClick={onKeywordClick} />
6057
<EventTimelinePlugin events={events} onEventClick={onEventClick} />
6158
<MediaBox columns={3} filter={{ ids: media }} onClick={onMediaClick} />

packages/@liexp/ui/src/components/Common/Filters/SearchFiltersBox.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ const SearchFiltersBar: React.FC<SearchFiltersBarProps> = ({
252252
display: "flex",
253253
flexDirection: "row",
254254
}}
255-
params={{ filter: { ids: query.actors } }}
255+
params={{ ids: query.actors }}
256256
onActorClick={(a, e) => {
257257
e.stopPropagation();
258258
handleQueryChange({
@@ -329,7 +329,7 @@ const SearchFiltersBar: React.FC<SearchFiltersBarProps> = ({
329329
display: "flex",
330330
flexDirection: "row",
331331
}}
332-
params={{ filter: { ids: query.groups } }}
332+
params={{ ids: query.groups }}
333333
onItemClick={(k, e) => {
334334
e.stopPropagation();
335335
const groups = (query.groups ?? []).filter(

packages/@liexp/ui/src/components/EventsMap.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -102,23 +102,23 @@ const EventsMap: React.FC<EventsMapProps> = (props) => {
102102
<QueriesRenderer
103103
queries={(Q) => ({
104104
events: Q.Event.list.useQuery(
105+
undefined,
105106
{
106-
pagination: { page: 1, perPage: 100 },
107-
sort: { field: "startDate", order: "DESC" },
108-
filter: {
109-
title: pipe(title ?? fp.O.none, fp.O.toUndefined),
110-
startDate:
111-
startDate?._tag === "Some"
112-
? startDate.value.toISOString()
113-
: undefined,
114-
endDate:
115-
endDate?._tag === "Some"
116-
? endDate.value.toISOString()
117-
: undefined,
118-
...filters,
119-
},
107+
_end: 100,
108+
_field: "startDate",
109+
_order: "DESC",
110+
title: pipe(title ?? fp.O.none, fp.O.toUndefined),
111+
startDate:
112+
startDate?._tag === "Some"
113+
? startDate.value.toISOString()
114+
: undefined,
115+
endDate:
116+
endDate?._tag === "Some"
117+
? endDate.value.toISOString()
118+
: undefined,
119+
...filters,
120120
},
121-
undefined,
121+
122122
false,
123123
),
124124
})}

packages/@liexp/ui/src/components/Graph/ActorHierarchyEdgeBundlingGraph.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ export const ActorHierarchyEdgeBundlingGraph: React.FC<
1818
return (
1919
<QueriesRenderer
2020
queries={(Q) => ({
21-
graph: Q.Stats.list.useQuery({
22-
filter: {
23-
id: actor,
24-
type: StatsType.members[1].literals[0],
25-
},
21+
graph: Q.Stats.list.useQuery(undefined, {
22+
id: actor,
23+
type: StatsType.members[1].literals[0],
2624
}),
2725
})}
2826
render={({ graph }) => {

packages/@liexp/ui/src/components/GroupMembersBox.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,13 @@ export const GroupMembersBox: React.FC<GroupMembersBoxProps> = ({
4040
loader="default"
4141
queries={(Q) => ({
4242
groupsMembers: Q.GroupMember.list.useQuery(
43+
undefined,
4344
{
44-
pagination: { page: 1, perPage: 10 },
45-
sort: { field: "createdAt", order: "DESC" },
46-
filter: {
47-
ids,
48-
},
45+
ids,
46+
_sort: "createdAt",
47+
_order: "DESC",
48+
_end: "10",
4949
},
50-
undefined,
5150
false,
5251
),
5352
})}

packages/@liexp/ui/src/components/Input/AutocompleteActorInput.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { type Endpoints } from "@liexp/shared/lib/endpoints/index.js";
12
import { type Actor } from "@liexp/shared/lib/io/http/index.js";
23
import { useQuery } from "@tanstack/react-query";
34
import * as React from "react";
@@ -23,7 +24,7 @@ export const AutocompleteActorInput: React.FC<AutocompleteActorInputProps> = ({
2324
}) => {
2425
const Queries = useEndpointQueries();
2526
return (
26-
<AutocompleteInput<Actor.Actor>
27+
<AutocompleteInput<typeof Endpoints.Actor.List>
2728
disablePortal={true}
2829
placeholder="Actors..."
2930
getOptionLabel={(a) => (typeof a === "string" ? a : a.fullName)}
@@ -37,7 +38,7 @@ export const AutocompleteActorInput: React.FC<AutocompleteActorInputProps> = ({
3738
queryFn: () =>
3839
Promise.resolve({ data: options, total: options.length }),
3940
})
40-
: Queries.Actor.list.useQuery(p, undefined, discrete)
41+
: Queries.Actor.list.useQuery(undefined, p, discrete)
4142
}
4243
renderTags={(items) => (
4344
<ActorList

packages/@liexp/ui/src/components/Input/AutocompleteAreaInput.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { type Endpoints } from "@liexp/shared/lib/endpoints/index.js";
12
import { type Area } from "@liexp/shared/lib/io/http/index.js";
23
import * as React from "react";
34
import { useConfiguration } from "../../context/ConfigurationContext.js";
@@ -23,14 +24,14 @@ export const AutocompleteAreaInput: React.FC<AutocompleteAreaInputProps> = ({
2324
const Queries = useEndpointQueries();
2425
const conf = useConfiguration();
2526
return (
26-
<AutocompleteInput<Area.Area>
27+
<AutocompleteInput<typeof Endpoints.Area.List>
2728
className={className}
2829
placeholder="Search area..."
2930
getOptionLabel={(a) => (typeof a === "string" ? a : a.label)}
3031
searchToFilter={(q) => ({ q })}
3132
selectedItems={selectedItems}
3233
query={(p) =>
33-
Queries.Area.list.useQuery(p, undefined, discrete, "search")
34+
Queries.Area.list.useQuery(undefined, p, discrete, "search")
3435
}
3536
renderTags={(items) => (
3637
<AreaList

packages/@liexp/ui/src/components/Input/AutocompleteEventInput.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { type Endpoints } from "@liexp/shared/lib/endpoints/index.js";
12
import { getTitle } from "@liexp/shared/lib/helpers/event/index.js";
23
import { toSearchEvent } from "@liexp/shared/lib/helpers/event/search-event.js";
34
import { type EventType } from "@liexp/shared/lib/io/http/Events/EventType.js";
@@ -29,7 +30,7 @@ export const AutocompleteEventInput: React.FC<AutocompleteEventInputProps> = ({
2930
const Queries = useEndpointQueries();
3031
const conf = useConfiguration();
3132
return (
32-
<AutocompleteInput<Events.Event>
33+
<AutocompleteInput<typeof Endpoints.Event.List, Events.Event>
3334
placeholder="Event description..."
3435
getOptionLabel={(a) =>
3536
typeof a === "string"
@@ -48,16 +49,13 @@ export const AutocompleteEventInput: React.FC<AutocompleteEventInputProps> = ({
4849
selectedItems={selectedItems}
4950
query={(p) =>
5051
Queries.Event.list.useQuery(
52+
undefined,
5153
{
5254
...p,
53-
filter: {
54-
...filter,
55-
...p.filter,
56-
// TODO: implement this on backend
57-
relations: [MEDIA.Type],
58-
},
55+
...filter,
56+
// TODO: implement this on backend
57+
relations: [MEDIA.Type],
5958
},
60-
undefined,
6159
discrete,
6260
)
6361
}

packages/@liexp/ui/src/components/Input/AutocompleteGroupInput.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { type Endpoints } from "@liexp/shared/lib/endpoints/index.js";
12
import { type Group } from "@liexp/shared/lib/io/http/index.js";
23
import { useQuery } from "@tanstack/react-query";
34
import * as React from "react";
@@ -25,7 +26,7 @@ export const AutocompleteGroupInput: React.FC<AutocompleteGroupInputProps> = ({
2526
}) => {
2627
const Queries = useEndpointQueries();
2728
return (
28-
<AutocompleteInput<Group.Group>
29+
<AutocompleteInput<typeof Endpoints.Group.List>
2930
placeholder="Groups..."
3031
getOptionLabel={(a) => (typeof a === "string" ? a : a.name)}
3132
searchToFilter={(q) => ({ q })}
@@ -39,10 +40,11 @@ export const AutocompleteGroupInput: React.FC<AutocompleteGroupInputProps> = ({
3940
Promise.resolve({ data: options, total: options.length }),
4041
})
4142
: Queries.Group.list.useQuery(
43+
undefined,
4244
{
43-
filter: { ...p.filter, excludeIds },
45+
...p,
46+
excludeIds,
4447
},
45-
undefined,
4648
discrete,
4749
)
4850
}

packages/@liexp/ui/src/components/Input/AutocompleteGroupMemberInput.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { type Endpoints } from "@liexp/shared/lib/endpoints/index.js";
12
import { type GroupMember } from "@liexp/shared/lib/io/http/index.js";
23
import * as React from "react";
34
import { useEndpointQueries } from "../../hooks/useEndpointQueriesProvider.js";
@@ -18,14 +19,17 @@ export const AutocompleteGroupMemberInput: React.FC<
1819
> = ({ selectedItems, onItemClick, ...props }) => {
1920
const Queries = useEndpointQueries();
2021
return (
21-
<AutocompleteInput<GroupMember.GroupMember>
22+
<AutocompleteInput<
23+
typeof Endpoints.GroupMember.List,
24+
GroupMember.GroupMember
25+
>
2226
placeholder="Group Member..."
2327
searchToFilter={(tag) => ({ tag })}
2428
selectedItems={selectedItems}
2529
getOptionLabel={(k) =>
2630
typeof k === "string" ? k : `${k.group.name} - ${k.actor.fullName}`
2731
}
28-
query={(p) => Queries.GroupMember.list.useQuery(p, undefined, true)}
32+
query={(p) => Queries.GroupMember.list.useQuery(undefined, p, true)}
2933
renderTags={(items) => (
3034
<GroupsMembersList
3135
groupsMembers={items.map((i) => ({

0 commit comments

Comments
 (0)