const someFancyFilteringFunctionThatWillBeReused = <
T extends QueryBuilder<unknown>
>(
query: T
): T => {
return query.where(({ item }) => eq(item.active, true));
};
const { data } = useLiveQuery((q) => {
let query = q
.from({ item: itemCollection })
.where(({ item }) => and(eq(item.id, 1)));
query = someFancyFilteringFunctionThatWillBeReused(query);
return query.select(({ item }) => ({
...item,
}));
}, []);
data.map((item) => item.active); // item with id 1 and active true
const someFancyFilteringFunctionThatWillBeReused = <
T extends QueryBuilder<unknown>
>(
query: T
): T => {
return query.where(({ item }) => eq(item.active, true));
};
const { data } = useLiveQuery((q) => {
let query = q
.from({ item: itemCollection })
.where(({ item }) => and(eq(item.id, 1)));
query = someFancyFilteringFunctionThatWillBeReused(query);
return query.select(({ item }) => ({
...item,
}));
}, []);
data.map((item) => item.active); // item with id 1 and active true