diff --git a/frontend/api/activities/useAddCategoryToActivity.ts b/frontend/api/activities/useAddCategoryToActivity.ts index d205068f..336b6280 100644 --- a/frontend/api/activities/useAddCategoryToActivity.ts +++ b/frontend/api/activities/useAddCategoryToActivity.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { AddCategoryToActivityMutationResponse, AddCategoryToActivityPathParams, @@ -15,11 +20,6 @@ import type { AddCategoryToActivity422, AddCategoryToActivity500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const addCategoryToActivityMutationKey = () => @@ -42,7 +42,7 @@ export async function addCategoryToActivity( tripID: AddCategoryToActivityPathParams["tripID"], activityID: AddCategoryToActivityPathParams["activityID"], categoryName: AddCategoryToActivityPathParams["categoryName"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -65,8 +65,8 @@ export async function addCategoryToActivity( return res.data; } -export function addCategoryToActivityMutationOptions( - config: Partial & { client?: Client } = {}, +export function addCategoryToActivityMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = addCategoryToActivityMutationKey(); return mutationOptions< @@ -84,7 +84,7 @@ export function addCategoryToActivityMutationOptions( activityID: AddCategoryToActivityPathParams["activityID"]; categoryName: AddCategoryToActivityPathParams["categoryName"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, activityID, categoryName }) => { @@ -117,7 +117,7 @@ export function useAddCategoryToActivity( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useCreateActivity.ts b/frontend/api/activities/useCreateActivity.ts index 590aa342..f46f1209 100644 --- a/frontend/api/activities/useCreateActivity.ts +++ b/frontend/api/activities/useCreateActivity.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateActivityMutationRequest, CreateActivityMutationResponse, @@ -16,11 +21,6 @@ import type { CreateActivity422, CreateActivity500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createActivityMutationKey = () => @@ -39,7 +39,7 @@ export async function createActivity( tripID: CreateActivityPathParams["tripID"], data: CreateActivityMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -66,9 +66,9 @@ export async function createActivity( return res.data; } -export function createActivityMutationOptions( +export function createActivityMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createActivityMutationKey(); @@ -86,7 +86,7 @@ export function createActivityMutationOptions( tripID: CreateActivityPathParams["tripID"]; data: CreateActivityMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, data }) => { @@ -119,7 +119,7 @@ export function useCreateActivity( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/activities/useDeleteActivity.ts b/frontend/api/activities/useDeleteActivity.ts index 7ca459fe..c6e1f6f3 100644 --- a/frontend/api/activities/useDeleteActivity.ts +++ b/frontend/api/activities/useDeleteActivity.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteActivityMutationResponse, DeleteActivityPathParams, @@ -14,11 +19,6 @@ import type { DeleteActivity404, DeleteActivity500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteActivityMutationKey = () => @@ -36,7 +36,7 @@ export type DeleteActivityMutationKey = ReturnType< export async function deleteActivity( tripID: DeleteActivityPathParams["tripID"], activityID: DeleteActivityPathParams["activityID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -58,8 +58,8 @@ export async function deleteActivity( return res.data; } -export function deleteActivityMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteActivityMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteActivityMutationKey(); return mutationOptions< @@ -75,7 +75,7 @@ export function deleteActivityMutationOptions( tripID: DeleteActivityPathParams["tripID"]; activityID: DeleteActivityPathParams["activityID"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, activityID }) => { @@ -106,7 +106,7 @@ export function useDeleteActivity( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetActivitiesByTripID.ts b/frontend/api/activities/useGetActivitiesByTripID.ts index c5b31ba7..9e379b06 100644 --- a/frontend/api/activities/useGetActivitiesByTripID.ts +++ b/frontend/api/activities/useGetActivitiesByTripID.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetActivitiesByTripIDQueryResponse, GetActivitiesByTripIDPathParams, @@ -15,17 +21,11 @@ import type { GetActivitiesByTripID404, GetActivitiesByTripID500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getActivitiesByTripIDQueryKey = ( tripID: GetActivitiesByTripIDPathParams["tripID"], - params: GetActivitiesByTripIDQueryParams = {}, + params?: GetActivitiesByTripIDQueryParams, ) => [ { url: "/api/v1/trips/:tripID/activities", params: { tripID: tripID } }, @@ -44,7 +44,7 @@ export type GetActivitiesByTripIDQueryKey = ReturnType< export async function getActivitiesByTripID( tripID: GetActivitiesByTripIDPathParams["tripID"], params?: GetActivitiesByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getActivitiesByTripID( export function getActivitiesByTripIDQueryOptions( tripID: GetActivitiesByTripIDPathParams["tripID"], params?: GetActivitiesByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getActivitiesByTripIDQueryKey(tripID, params); return queryOptions< @@ -88,9 +88,7 @@ export function getActivitiesByTripIDQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getActivitiesByTripID(tripID, params, config); }, }); @@ -124,7 +122,7 @@ export function useGetActivitiesByTripID< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetActivitiesByTripIDSuspense.ts b/frontend/api/activities/useGetActivitiesByTripIDSuspense.ts index 6056f71c..94e197c4 100644 --- a/frontend/api/activities/useGetActivitiesByTripIDSuspense.ts +++ b/frontend/api/activities/useGetActivitiesByTripIDSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetActivitiesByTripIDQueryResponse, GetActivitiesByTripIDPathParams, @@ -15,17 +21,11 @@ import type { GetActivitiesByTripID404, GetActivitiesByTripID500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getActivitiesByTripIDSuspenseQueryKey = ( tripID: GetActivitiesByTripIDPathParams["tripID"], - params: GetActivitiesByTripIDQueryParams = {}, + params?: GetActivitiesByTripIDQueryParams, ) => [ { url: "/api/v1/trips/:tripID/activities", params: { tripID: tripID } }, @@ -44,7 +44,7 @@ export type GetActivitiesByTripIDSuspenseQueryKey = ReturnType< export async function getActivitiesByTripIDSuspense( tripID: GetActivitiesByTripIDPathParams["tripID"], params?: GetActivitiesByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getActivitiesByTripIDSuspense( export function getActivitiesByTripIDSuspenseQueryOptions( tripID: GetActivitiesByTripIDPathParams["tripID"], params?: GetActivitiesByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getActivitiesByTripIDSuspenseQueryKey(tripID, params); return queryOptions< @@ -88,9 +88,7 @@ export function getActivitiesByTripIDSuspenseQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getActivitiesByTripIDSuspense(tripID, params, config); }, }); @@ -122,7 +120,7 @@ export function useGetActivitiesByTripIDSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetActivity.ts b/frontend/api/activities/useGetActivity.ts index 3005c58c..dfd9cb64 100644 --- a/frontend/api/activities/useGetActivity.ts +++ b/frontend/api/activities/useGetActivity.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetActivityQueryResponse, GetActivityPathParams, @@ -14,12 +20,6 @@ import type { GetActivity404, GetActivity500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getActivityQueryKey = ( @@ -43,7 +43,7 @@ export type GetActivityQueryKey = ReturnType; export async function getActivity( tripID: GetActivityPathParams["tripID"], activityID: GetActivityPathParams["activityID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -68,7 +68,7 @@ export async function getActivity( export function getActivityQueryOptions( tripID: GetActivityPathParams["tripID"], activityID: GetActivityPathParams["activityID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getActivityQueryKey(tripID, activityID); return queryOptions< @@ -86,9 +86,7 @@ export function getActivityQueryOptions( enabled: !!(tripID && activityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getActivity(tripID, activityID, config); }, }); @@ -122,7 +120,7 @@ export function useGetActivity< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetActivityCategories.ts b/frontend/api/activities/useGetActivityCategories.ts index 42ba1cac..4ce4e514 100644 --- a/frontend/api/activities/useGetActivityCategories.ts +++ b/frontend/api/activities/useGetActivityCategories.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetActivityCategoriesQueryResponse, GetActivityCategoriesPathParams, @@ -15,18 +21,12 @@ import type { GetActivityCategories404, GetActivityCategories500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getActivityCategoriesQueryKey = ( tripID: GetActivityCategoriesPathParams["tripID"], activityID: GetActivityCategoriesPathParams["activityID"], - params: GetActivityCategoriesQueryParams = {}, + params?: GetActivityCategoriesQueryParams, ) => [ { @@ -49,7 +49,7 @@ export async function getActivityCategories( tripID: GetActivityCategoriesPathParams["tripID"], activityID: GetActivityCategoriesPathParams["activityID"], params?: GetActivityCategoriesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -76,7 +76,7 @@ export function getActivityCategoriesQueryOptions( tripID: GetActivityCategoriesPathParams["tripID"], activityID: GetActivityCategoriesPathParams["activityID"], params?: GetActivityCategoriesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getActivityCategoriesQueryKey(tripID, activityID, params); return queryOptions< @@ -94,9 +94,7 @@ export function getActivityCategoriesQueryOptions( enabled: !!(tripID && activityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getActivityCategories(tripID, activityID, params, config); }, }); @@ -131,7 +129,7 @@ export function useGetActivityCategories< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetActivityCategoriesSuspense.ts b/frontend/api/activities/useGetActivityCategoriesSuspense.ts index a629f6de..a0278ab4 100644 --- a/frontend/api/activities/useGetActivityCategoriesSuspense.ts +++ b/frontend/api/activities/useGetActivityCategoriesSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetActivityCategoriesQueryResponse, GetActivityCategoriesPathParams, @@ -15,18 +21,12 @@ import type { GetActivityCategories404, GetActivityCategories500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getActivityCategoriesSuspenseQueryKey = ( tripID: GetActivityCategoriesPathParams["tripID"], activityID: GetActivityCategoriesPathParams["activityID"], - params: GetActivityCategoriesQueryParams = {}, + params?: GetActivityCategoriesQueryParams, ) => [ { @@ -49,7 +49,7 @@ export async function getActivityCategoriesSuspense( tripID: GetActivityCategoriesPathParams["tripID"], activityID: GetActivityCategoriesPathParams["activityID"], params?: GetActivityCategoriesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -76,7 +76,7 @@ export function getActivityCategoriesSuspenseQueryOptions( tripID: GetActivityCategoriesPathParams["tripID"], activityID: GetActivityCategoriesPathParams["activityID"], params?: GetActivityCategoriesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getActivityCategoriesSuspenseQueryKey( tripID, @@ -98,9 +98,7 @@ export function getActivityCategoriesSuspenseQueryOptions( enabled: !!(tripID && activityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getActivityCategoriesSuspense(tripID, activityID, params, config); }, }); @@ -133,7 +131,7 @@ export function useGetActivityCategoriesSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetActivitySuspense.ts b/frontend/api/activities/useGetActivitySuspense.ts index 5f52a4ee..22ae0f38 100644 --- a/frontend/api/activities/useGetActivitySuspense.ts +++ b/frontend/api/activities/useGetActivitySuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetActivityQueryResponse, GetActivityPathParams, @@ -14,12 +20,6 @@ import type { GetActivity404, GetActivity500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getActivitySuspenseQueryKey = ( @@ -45,7 +45,7 @@ export type GetActivitySuspenseQueryKey = ReturnType< export async function getActivitySuspense( tripID: GetActivityPathParams["tripID"], activityID: GetActivityPathParams["activityID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getActivitySuspense( export function getActivitySuspenseQueryOptions( tripID: GetActivityPathParams["tripID"], activityID: GetActivityPathParams["activityID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getActivitySuspenseQueryKey(tripID, activityID); return queryOptions< @@ -88,9 +88,7 @@ export function getActivitySuspenseQueryOptions( enabled: !!(tripID && activityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getActivitySuspense(tripID, activityID, config); }, }); @@ -122,7 +120,7 @@ export function useGetActivitySuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts b/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts index 74c8f855..77325ff0 100644 --- a/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts +++ b/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetApiV1TripsTripidActivitiesActivityidRsvpsQueryResponse, GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams, @@ -16,18 +22,12 @@ import type { GetApiV1TripsTripidActivitiesActivityidRsvps422, GetApiV1TripsTripidActivitiesActivityidRsvps500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getApiV1TripsTripidActivitiesActivityidRsvpsQueryKey = ( tripID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["tripID"], activityID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["activityID"], - params: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams = {}, + params?: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, ) => [ { @@ -50,7 +50,7 @@ export async function getApiV1TripsTripidActivitiesActivityidRsvps( tripID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["tripID"], activityID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["activityID"], params?: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -78,7 +78,7 @@ export function getApiV1TripsTripidActivitiesActivityidRsvpsQueryOptions( tripID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["tripID"], activityID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["activityID"], params?: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getApiV1TripsTripidActivitiesActivityidRsvpsQueryKey( tripID, @@ -101,9 +101,7 @@ export function getApiV1TripsTripidActivitiesActivityidRsvpsQueryOptions( enabled: !!(tripID && activityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getApiV1TripsTripidActivitiesActivityidRsvps( tripID, activityID, @@ -145,7 +143,7 @@ export function useGetApiV1TripsTripidActivitiesActivityidRsvps< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts b/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts index d346194e..6c5aeca7 100644 --- a/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts +++ b/frontend/api/activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetApiV1TripsTripidActivitiesActivityidRsvpsQueryResponse, GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams, @@ -16,18 +22,12 @@ import type { GetApiV1TripsTripidActivitiesActivityidRsvps422, GetApiV1TripsTripidActivitiesActivityidRsvps500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryKey = ( tripID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["tripID"], activityID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["activityID"], - params: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams = {}, + params?: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, ) => [ { @@ -51,7 +51,7 @@ export async function getApiV1TripsTripidActivitiesActivityidRsvpsSuspense( tripID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["tripID"], activityID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["activityID"], params?: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -79,7 +79,7 @@ export function getApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryOptions tripID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["tripID"], activityID: GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams["activityID"], params?: GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryKey( tripID, @@ -102,9 +102,7 @@ export function getApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryOptions enabled: !!(tripID && activityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getApiV1TripsTripidActivitiesActivityidRsvpsSuspense( tripID, activityID, @@ -144,7 +142,7 @@ export function useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useParseActivityLink.ts b/frontend/api/activities/useParseActivityLink.ts new file mode 100644 index 00000000..25f4b2ec --- /dev/null +++ b/frontend/api/activities/useParseActivityLink.ts @@ -0,0 +1,181 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; +import type { + ParseActivityLinkMutationRequest, + ParseActivityLinkMutationResponse, + ParseActivityLinkPathParams, + ParseActivityLink400, + ParseActivityLink401, + ParseActivityLink403, + ParseActivityLink422, + ParseActivityLink500, +} from "../../types/types.gen.ts"; +import { mutationOptions, useMutation } from "@tanstack/react-query"; + +export const parseActivityLinkMutationKey = () => + [{ url: "/api/v1/trips/:tripID/activities/parse-link" }] as const; + +export type ParseActivityLinkMutationKey = ReturnType< + typeof parseActivityLinkMutationKey +>; + +/** + * @description Fetches a URL and extracts structured activity fields (name, description, thumbnail) for form autofill. Supports Airbnb, Booking.com, TikTok, Instagram, and generic travel blog URLs. + * @summary Parse link into activity data + * {@link /api/v1/trips/:tripID/activities/parse-link} + */ +export async function parseActivityLink( + tripID: ParseActivityLinkPathParams["tripID"], + data: ParseActivityLinkMutationRequest, + config: Partial> & { + client?: typeof fetch; + } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const requestData = data; + + const res = await request< + ParseActivityLinkMutationResponse, + ResponseErrorConfig< + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500 + >, + ParseActivityLinkMutationRequest + >({ + method: "POST", + url: `/api/v1/trips/${tripID}/activities/parse-link`, + data: requestData, + ...requestConfig, + }); + return res.data; +} + +export function parseActivityLinkMutationOptions( + config: Partial> & { + client?: typeof fetch; + } = {}, +) { + const mutationKey = parseActivityLinkMutationKey(); + return mutationOptions< + ParseActivityLinkMutationResponse, + ResponseErrorConfig< + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500 + >, + { + tripID: ParseActivityLinkPathParams["tripID"]; + data: ParseActivityLinkMutationRequest; + }, + typeof mutationKey + >({ + mutationKey, + mutationFn: async ({ tripID, data }) => { + return parseActivityLink(tripID, data, config); + }, + }); +} + +/** + * @description Fetches a URL and extracts structured activity fields (name, description, thumbnail) for form autofill. Supports Airbnb, Booking.com, TikTok, Instagram, and generic travel blog URLs. + * @summary Parse link into activity data + * {@link /api/v1/trips/:tripID/activities/parse-link} + */ +export function useParseActivityLink( + options: { + mutation?: UseMutationOptions< + ParseActivityLinkMutationResponse, + ResponseErrorConfig< + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500 + >, + { + tripID: ParseActivityLinkPathParams["tripID"]; + data: ParseActivityLinkMutationRequest; + }, + TContext + > & { client?: QueryClient }; + client?: Partial> & { + client?: typeof fetch; + }; + } = {}, +) { + const { mutation = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...mutationOptions } = mutation; + const mutationKey = + mutationOptions.mutationKey ?? parseActivityLinkMutationKey(); + + const baseOptions = parseActivityLinkMutationOptions( + config, + ) as UseMutationOptions< + ParseActivityLinkMutationResponse, + ResponseErrorConfig< + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500 + >, + { + tripID: ParseActivityLinkPathParams["tripID"]; + data: ParseActivityLinkMutationRequest; + }, + TContext + >; + + return useMutation< + ParseActivityLinkMutationResponse, + ResponseErrorConfig< + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500 + >, + { + tripID: ParseActivityLinkPathParams["tripID"]; + data: ParseActivityLinkMutationRequest; + }, + TContext + >( + { + ...baseOptions, + mutationKey, + ...mutationOptions, + }, + queryClient, + ) as UseMutationResult< + ParseActivityLinkMutationResponse, + ResponseErrorConfig< + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500 + >, + { + tripID: ParseActivityLinkPathParams["tripID"]; + data: ParseActivityLinkMutationRequest; + }, + TContext + >; +} diff --git a/frontend/api/activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts b/frontend/api/activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts index f638d46e..912d17a5 100644 --- a/frontend/api/activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts +++ b/frontend/api/activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest, PostApiV1TripsTripidActivitiesActivityidRsvpMutationResponse, @@ -16,11 +21,6 @@ import type { PostApiV1TripsTripidActivitiesActivityidRsvp422, PostApiV1TripsTripidActivitiesActivityidRsvp500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const postApiV1TripsTripidActivitiesActivityidRsvpMutationKey = () => @@ -37,10 +37,10 @@ export type PostApiV1TripsTripidActivitiesActivityidRsvpMutationKey = export async function postApiV1TripsTripidActivitiesActivityidRsvp( tripID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["tripID"], activityID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["activityID"], - data: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest, + data?: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest, config: Partial< RequestConfig - > & { client?: Client } = {}, + > & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -66,12 +66,10 @@ export async function postApiV1TripsTripidActivitiesActivityidRsvp( return res.data; } -export function postApiV1TripsTripidActivitiesActivityidRsvpMutationOptions< - TContext = unknown, ->( +export function postApiV1TripsTripidActivitiesActivityidRsvpMutationOptions( config: Partial< RequestConfig - > & { client?: Client } = {}, + > & { client?: typeof fetch } = {}, ) { const mutationKey = postApiV1TripsTripidActivitiesActivityidRsvpMutationKey(); return mutationOptions< @@ -87,9 +85,9 @@ export function postApiV1TripsTripidActivitiesActivityidRsvpMutationOptions< { tripID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["tripID"]; activityID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["activityID"]; - data: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; + data?: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, activityID, data }) => { @@ -123,13 +121,13 @@ export function usePostApiV1TripsTripidActivitiesActivityidRsvp( { tripID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["tripID"]; activityID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["activityID"]; - data: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; + data?: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial< RequestConfig - > & { client?: Client }; + > & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; @@ -154,7 +152,7 @@ export function usePostApiV1TripsTripidActivitiesActivityidRsvp( { tripID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["tripID"]; activityID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["activityID"]; - data: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; + data?: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; }, TContext >; @@ -172,7 +170,7 @@ export function usePostApiV1TripsTripidActivitiesActivityidRsvp( { tripID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["tripID"]; activityID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["activityID"]; - data: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; + data?: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; }, TContext >( @@ -195,7 +193,7 @@ export function usePostApiV1TripsTripidActivitiesActivityidRsvp( { tripID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["tripID"]; activityID: PostApiV1TripsTripidActivitiesActivityidRsvpPathParams["activityID"]; - data: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; + data?: PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest; }, TContext >; diff --git a/frontend/api/activities/useRemoveCategoryFromActivity.ts b/frontend/api/activities/useRemoveCategoryFromActivity.ts index bd5fbcf2..a85b0397 100644 --- a/frontend/api/activities/useRemoveCategoryFromActivity.ts +++ b/frontend/api/activities/useRemoveCategoryFromActivity.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { RemoveCategoryFromActivityMutationResponse, RemoveCategoryFromActivityPathParams, @@ -15,11 +20,6 @@ import type { RemoveCategoryFromActivity422, RemoveCategoryFromActivity500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const removeCategoryFromActivityMutationKey = () => @@ -42,7 +42,7 @@ export async function removeCategoryFromActivity( tripID: RemoveCategoryFromActivityPathParams["tripID"], activityID: RemoveCategoryFromActivityPathParams["activityID"], categoryName: RemoveCategoryFromActivityPathParams["categoryName"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -65,8 +65,8 @@ export async function removeCategoryFromActivity( return res.data; } -export function removeCategoryFromActivityMutationOptions( - config: Partial & { client?: Client } = {}, +export function removeCategoryFromActivityMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = removeCategoryFromActivityMutationKey(); return mutationOptions< @@ -84,7 +84,7 @@ export function removeCategoryFromActivityMutationOptions( activityID: RemoveCategoryFromActivityPathParams["activityID"]; categoryName: RemoveCategoryFromActivityPathParams["categoryName"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, activityID, categoryName }) => { @@ -122,7 +122,7 @@ export function useRemoveCategoryFromActivity( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/activities/useUpdateActivity.ts b/frontend/api/activities/useUpdateActivity.ts index e3b2a7cc..c0848a4d 100644 --- a/frontend/api/activities/useUpdateActivity.ts +++ b/frontend/api/activities/useUpdateActivity.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdateActivityMutationRequest, UpdateActivityMutationResponse, @@ -16,11 +21,6 @@ import type { UpdateActivity422, UpdateActivity500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updateActivityMutationKey = () => @@ -38,9 +38,9 @@ export type UpdateActivityMutationKey = ReturnType< export async function updateActivity( tripID: UpdateActivityPathParams["tripID"], activityID: UpdateActivityPathParams["activityID"], - data: UpdateActivityMutationRequest, + data?: UpdateActivityMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -67,9 +67,9 @@ export async function updateActivity( return res.data; } -export function updateActivityMutationOptions( +export function updateActivityMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updateActivityMutationKey(); @@ -86,9 +86,9 @@ export function updateActivityMutationOptions( { tripID: UpdateActivityPathParams["tripID"]; activityID: UpdateActivityPathParams["activityID"]; - data: UpdateActivityMutationRequest; + data?: UpdateActivityMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, activityID, data }) => { @@ -117,12 +117,12 @@ export function useUpdateActivity( { tripID: UpdateActivityPathParams["tripID"]; activityID: UpdateActivityPathParams["activityID"]; - data: UpdateActivityMutationRequest; + data?: UpdateActivityMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -146,7 +146,7 @@ export function useUpdateActivity( { tripID: UpdateActivityPathParams["tripID"]; activityID: UpdateActivityPathParams["activityID"]; - data: UpdateActivityMutationRequest; + data?: UpdateActivityMutationRequest; }, TContext >; @@ -164,7 +164,7 @@ export function useUpdateActivity( { tripID: UpdateActivityPathParams["tripID"]; activityID: UpdateActivityPathParams["activityID"]; - data: UpdateActivityMutationRequest; + data?: UpdateActivityMutationRequest; }, TContext >( @@ -187,7 +187,7 @@ export function useUpdateActivity( { tripID: UpdateActivityPathParams["tripID"]; activityID: UpdateActivityPathParams["activityID"]; - data: UpdateActivityMutationRequest; + data?: UpdateActivityMutationRequest; }, TContext >; diff --git a/frontend/api/activity-feed/useGetTripActivityFeed.ts b/frontend/api/activity-feed/useGetTripActivityFeed.ts new file mode 100644 index 00000000..7bf52217 --- /dev/null +++ b/frontend/api/activity-feed/useGetTripActivityFeed.ts @@ -0,0 +1,131 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; +import type { + GetTripActivityFeedQueryResponse, + GetTripActivityFeedPathParams, + GetTripActivityFeed400, + GetTripActivityFeed401, + GetTripActivityFeed500, +} from "../../types/types.gen.ts"; +import { queryOptions, useQuery } from "@tanstack/react-query"; + +export const getTripActivityFeedQueryKey = ( + tripID: GetTripActivityFeedPathParams["tripID"], +) => + [ + { url: "/api/v1/trips/:tripID/activity", params: { tripID: tripID } }, + ] as const; + +export type GetTripActivityFeedQueryKey = ReturnType< + typeof getTripActivityFeedQueryKey +>; + +/** + * @description Returns all unread events in the caller's trip feed. Events persist until explicitly dismissed via the mark-read endpoint. + * @summary Get trip activity feed + * {@link /api/v1/trips/:tripID/activity} + */ +export async function getTripActivityFeed( + tripID: GetTripActivityFeedPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const res = await request< + GetTripActivityFeedQueryResponse, + ResponseErrorConfig< + GetTripActivityFeed400 | GetTripActivityFeed401 | GetTripActivityFeed500 + >, + unknown + >({ + method: "GET", + url: `/api/v1/trips/${tripID}/activity`, + ...requestConfig, + }); + return res.data; +} + +export function getTripActivityFeedQueryOptions( + tripID: GetTripActivityFeedPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const queryKey = getTripActivityFeedQueryKey(tripID); + return queryOptions< + GetTripActivityFeedQueryResponse, + ResponseErrorConfig< + GetTripActivityFeed400 | GetTripActivityFeed401 | GetTripActivityFeed500 + >, + GetTripActivityFeedQueryResponse, + typeof queryKey + >({ + enabled: !!tripID, + queryKey, + queryFn: async ({ signal }) => { + config.signal = signal; + return getTripActivityFeed(tripID, config); + }, + }); +} + +/** + * @description Returns all unread events in the caller's trip feed. Events persist until explicitly dismissed via the mark-read endpoint. + * @summary Get trip activity feed + * {@link /api/v1/trips/:tripID/activity} + */ +export function useGetTripActivityFeed< + TData = GetTripActivityFeedQueryResponse, + TQueryData = GetTripActivityFeedQueryResponse, + TQueryKey extends QueryKey = GetTripActivityFeedQueryKey, +>( + tripID: GetTripActivityFeedPathParams["tripID"], + options: { + query?: Partial< + QueryObserverOptions< + GetTripActivityFeedQueryResponse, + ResponseErrorConfig< + | GetTripActivityFeed400 + | GetTripActivityFeed401 + | GetTripActivityFeed500 + >, + TData, + TQueryData, + TQueryKey + > + > & { client?: QueryClient }; + client?: Partial & { client?: typeof fetch }; + } = {}, +) { + const { query: queryConfig = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...queryOptions } = queryConfig; + const queryKey = + queryOptions?.queryKey ?? getTripActivityFeedQueryKey(tripID); + + const query = useQuery( + { + ...getTripActivityFeedQueryOptions(tripID, config), + queryKey, + ...queryOptions, + } as unknown as QueryObserverOptions, + queryClient, + ) as UseQueryResult< + TData, + ResponseErrorConfig< + GetTripActivityFeed400 | GetTripActivityFeed401 | GetTripActivityFeed500 + > + > & { queryKey: TQueryKey }; + + query.queryKey = queryKey as TQueryKey; + + return query; +} diff --git a/frontend/api/activity-feed/useGetTripActivityFeedSuspense.ts b/frontend/api/activity-feed/useGetTripActivityFeedSuspense.ts new file mode 100644 index 00000000..fd532193 --- /dev/null +++ b/frontend/api/activity-feed/useGetTripActivityFeedSuspense.ts @@ -0,0 +1,129 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import type { + GetTripActivityFeedQueryResponse, + GetTripActivityFeedPathParams, + GetTripActivityFeed400, + GetTripActivityFeed401, + GetTripActivityFeed500, +} from "../../types/types.gen.ts"; +import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; + +export const getTripActivityFeedSuspenseQueryKey = ( + tripID: GetTripActivityFeedPathParams["tripID"], +) => + [ + { url: "/api/v1/trips/:tripID/activity", params: { tripID: tripID } }, + ] as const; + +export type GetTripActivityFeedSuspenseQueryKey = ReturnType< + typeof getTripActivityFeedSuspenseQueryKey +>; + +/** + * @description Returns all unread events in the caller's trip feed. Events persist until explicitly dismissed via the mark-read endpoint. + * @summary Get trip activity feed + * {@link /api/v1/trips/:tripID/activity} + */ +export async function getTripActivityFeedSuspense( + tripID: GetTripActivityFeedPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const res = await request< + GetTripActivityFeedQueryResponse, + ResponseErrorConfig< + GetTripActivityFeed400 | GetTripActivityFeed401 | GetTripActivityFeed500 + >, + unknown + >({ + method: "GET", + url: `/api/v1/trips/${tripID}/activity`, + ...requestConfig, + }); + return res.data; +} + +export function getTripActivityFeedSuspenseQueryOptions( + tripID: GetTripActivityFeedPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const queryKey = getTripActivityFeedSuspenseQueryKey(tripID); + return queryOptions< + GetTripActivityFeedQueryResponse, + ResponseErrorConfig< + GetTripActivityFeed400 | GetTripActivityFeed401 | GetTripActivityFeed500 + >, + GetTripActivityFeedQueryResponse, + typeof queryKey + >({ + enabled: !!tripID, + queryKey, + queryFn: async ({ signal }) => { + config.signal = signal; + return getTripActivityFeedSuspense(tripID, config); + }, + }); +} + +/** + * @description Returns all unread events in the caller's trip feed. Events persist until explicitly dismissed via the mark-read endpoint. + * @summary Get trip activity feed + * {@link /api/v1/trips/:tripID/activity} + */ +export function useGetTripActivityFeedSuspense< + TData = GetTripActivityFeedQueryResponse, + TQueryKey extends QueryKey = GetTripActivityFeedSuspenseQueryKey, +>( + tripID: GetTripActivityFeedPathParams["tripID"], + options: { + query?: Partial< + UseSuspenseQueryOptions< + GetTripActivityFeedQueryResponse, + ResponseErrorConfig< + | GetTripActivityFeed400 + | GetTripActivityFeed401 + | GetTripActivityFeed500 + >, + TData, + TQueryKey + > + > & { client?: QueryClient }; + client?: Partial & { client?: typeof fetch }; + } = {}, +) { + const { query: queryConfig = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...queryOptions } = queryConfig; + const queryKey = + queryOptions?.queryKey ?? getTripActivityFeedSuspenseQueryKey(tripID); + + const query = useSuspenseQuery( + { + ...getTripActivityFeedSuspenseQueryOptions(tripID, config), + queryKey, + ...queryOptions, + } as unknown as UseSuspenseQueryOptions, + queryClient, + ) as UseSuspenseQueryResult< + TData, + ResponseErrorConfig< + GetTripActivityFeed400 | GetTripActivityFeed401 | GetTripActivityFeed500 + > + > & { queryKey: TQueryKey }; + + query.queryKey = queryKey as TQueryKey; + + return query; +} diff --git a/frontend/api/activity-feed/useGetUnreadActivityCount.ts b/frontend/api/activity-feed/useGetUnreadActivityCount.ts new file mode 100644 index 00000000..8e1234a3 --- /dev/null +++ b/frontend/api/activity-feed/useGetUnreadActivityCount.ts @@ -0,0 +1,140 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; +import type { + GetUnreadActivityCountQueryResponse, + GetUnreadActivityCountPathParams, + GetUnreadActivityCount400, + GetUnreadActivityCount401, + GetUnreadActivityCount500, +} from "../../types/types.gen.ts"; +import { queryOptions, useQuery } from "@tanstack/react-query"; + +export const getUnreadActivityCountQueryKey = ( + tripID: GetUnreadActivityCountPathParams["tripID"], +) => + [ + { + url: "/api/v1/trips/:tripID/activity/unread-count", + params: { tripID: tripID }, + }, + ] as const; + +export type GetUnreadActivityCountQueryKey = ReturnType< + typeof getUnreadActivityCountQueryKey +>; + +/** + * @description Returns the number of events in the caller's trip feed that have not yet been marked as read. + * @summary Get unread activity count + * {@link /api/v1/trips/:tripID/activity/unread-count} + */ +export async function getUnreadActivityCount( + tripID: GetUnreadActivityCountPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const res = await request< + GetUnreadActivityCountQueryResponse, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + >, + unknown + >({ + method: "GET", + url: `/api/v1/trips/${tripID}/activity/unread-count`, + ...requestConfig, + }); + return res.data; +} + +export function getUnreadActivityCountQueryOptions( + tripID: GetUnreadActivityCountPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const queryKey = getUnreadActivityCountQueryKey(tripID); + return queryOptions< + GetUnreadActivityCountQueryResponse, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + >, + GetUnreadActivityCountQueryResponse, + typeof queryKey + >({ + enabled: !!tripID, + queryKey, + queryFn: async ({ signal }) => { + config.signal = signal; + return getUnreadActivityCount(tripID, config); + }, + }); +} + +/** + * @description Returns the number of events in the caller's trip feed that have not yet been marked as read. + * @summary Get unread activity count + * {@link /api/v1/trips/:tripID/activity/unread-count} + */ +export function useGetUnreadActivityCount< + TData = GetUnreadActivityCountQueryResponse, + TQueryData = GetUnreadActivityCountQueryResponse, + TQueryKey extends QueryKey = GetUnreadActivityCountQueryKey, +>( + tripID: GetUnreadActivityCountPathParams["tripID"], + options: { + query?: Partial< + QueryObserverOptions< + GetUnreadActivityCountQueryResponse, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + >, + TData, + TQueryData, + TQueryKey + > + > & { client?: QueryClient }; + client?: Partial & { client?: typeof fetch }; + } = {}, +) { + const { query: queryConfig = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...queryOptions } = queryConfig; + const queryKey = + queryOptions?.queryKey ?? getUnreadActivityCountQueryKey(tripID); + + const query = useQuery( + { + ...getUnreadActivityCountQueryOptions(tripID, config), + queryKey, + ...queryOptions, + } as unknown as QueryObserverOptions, + queryClient, + ) as UseQueryResult< + TData, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + > + > & { queryKey: TQueryKey }; + + query.queryKey = queryKey as TQueryKey; + + return query; +} diff --git a/frontend/api/activity-feed/useGetUnreadActivityCountSuspense.ts b/frontend/api/activity-feed/useGetUnreadActivityCountSuspense.ts new file mode 100644 index 00000000..ae33bbf3 --- /dev/null +++ b/frontend/api/activity-feed/useGetUnreadActivityCountSuspense.ts @@ -0,0 +1,138 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import type { + GetUnreadActivityCountQueryResponse, + GetUnreadActivityCountPathParams, + GetUnreadActivityCount400, + GetUnreadActivityCount401, + GetUnreadActivityCount500, +} from "../../types/types.gen.ts"; +import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; + +export const getUnreadActivityCountSuspenseQueryKey = ( + tripID: GetUnreadActivityCountPathParams["tripID"], +) => + [ + { + url: "/api/v1/trips/:tripID/activity/unread-count", + params: { tripID: tripID }, + }, + ] as const; + +export type GetUnreadActivityCountSuspenseQueryKey = ReturnType< + typeof getUnreadActivityCountSuspenseQueryKey +>; + +/** + * @description Returns the number of events in the caller's trip feed that have not yet been marked as read. + * @summary Get unread activity count + * {@link /api/v1/trips/:tripID/activity/unread-count} + */ +export async function getUnreadActivityCountSuspense( + tripID: GetUnreadActivityCountPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const res = await request< + GetUnreadActivityCountQueryResponse, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + >, + unknown + >({ + method: "GET", + url: `/api/v1/trips/${tripID}/activity/unread-count`, + ...requestConfig, + }); + return res.data; +} + +export function getUnreadActivityCountSuspenseQueryOptions( + tripID: GetUnreadActivityCountPathParams["tripID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const queryKey = getUnreadActivityCountSuspenseQueryKey(tripID); + return queryOptions< + GetUnreadActivityCountQueryResponse, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + >, + GetUnreadActivityCountQueryResponse, + typeof queryKey + >({ + enabled: !!tripID, + queryKey, + queryFn: async ({ signal }) => { + config.signal = signal; + return getUnreadActivityCountSuspense(tripID, config); + }, + }); +} + +/** + * @description Returns the number of events in the caller's trip feed that have not yet been marked as read. + * @summary Get unread activity count + * {@link /api/v1/trips/:tripID/activity/unread-count} + */ +export function useGetUnreadActivityCountSuspense< + TData = GetUnreadActivityCountQueryResponse, + TQueryKey extends QueryKey = GetUnreadActivityCountSuspenseQueryKey, +>( + tripID: GetUnreadActivityCountPathParams["tripID"], + options: { + query?: Partial< + UseSuspenseQueryOptions< + GetUnreadActivityCountQueryResponse, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + >, + TData, + TQueryKey + > + > & { client?: QueryClient }; + client?: Partial & { client?: typeof fetch }; + } = {}, +) { + const { query: queryConfig = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...queryOptions } = queryConfig; + const queryKey = + queryOptions?.queryKey ?? getUnreadActivityCountSuspenseQueryKey(tripID); + + const query = useSuspenseQuery( + { + ...getUnreadActivityCountSuspenseQueryOptions(tripID, config), + queryKey, + ...queryOptions, + } as unknown as UseSuspenseQueryOptions, + queryClient, + ) as UseSuspenseQueryResult< + TData, + ResponseErrorConfig< + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500 + > + > & { queryKey: TQueryKey }; + + query.queryKey = queryKey as TQueryKey; + + return query; +} diff --git a/frontend/api/activity-feed/useMarkActivityEventRead.ts b/frontend/api/activity-feed/useMarkActivityEventRead.ts new file mode 100644 index 00000000..58ae06a5 --- /dev/null +++ b/frontend/api/activity-feed/useMarkActivityEventRead.ts @@ -0,0 +1,157 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; +import type { + MarkActivityEventReadMutationResponse, + MarkActivityEventReadPathParams, + MarkActivityEventRead400, + MarkActivityEventRead401, + MarkActivityEventRead500, +} from "../../types/types.gen.ts"; +import { mutationOptions, useMutation } from "@tanstack/react-query"; + +export const markActivityEventReadMutationKey = () => + [{ url: "/api/v1/trips/:tripID/activity/:eventID" }] as const; + +export type MarkActivityEventReadMutationKey = ReturnType< + typeof markActivityEventReadMutationKey +>; + +/** + * @description Removes a specific event from the caller's trip activity feed. + * @summary Mark activity event as read + * {@link /api/v1/trips/:tripID/activity/:eventID} + */ +export async function markActivityEventRead( + tripID: MarkActivityEventReadPathParams["tripID"], + eventID: MarkActivityEventReadPathParams["eventID"], + config: Partial & { client?: typeof fetch } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const res = await request< + MarkActivityEventReadMutationResponse, + ResponseErrorConfig< + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500 + >, + unknown + >({ + method: "DELETE", + url: `/api/v1/trips/${tripID}/activity/${eventID}`, + ...requestConfig, + }); + return res.data; +} + +export function markActivityEventReadMutationOptions( + config: Partial & { client?: typeof fetch } = {}, +) { + const mutationKey = markActivityEventReadMutationKey(); + return mutationOptions< + MarkActivityEventReadMutationResponse, + ResponseErrorConfig< + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500 + >, + { + tripID: MarkActivityEventReadPathParams["tripID"]; + eventID: MarkActivityEventReadPathParams["eventID"]; + }, + typeof mutationKey + >({ + mutationKey, + mutationFn: async ({ tripID, eventID }) => { + return markActivityEventRead(tripID, eventID, config); + }, + }); +} + +/** + * @description Removes a specific event from the caller's trip activity feed. + * @summary Mark activity event as read + * {@link /api/v1/trips/:tripID/activity/:eventID} + */ +export function useMarkActivityEventRead( + options: { + mutation?: UseMutationOptions< + MarkActivityEventReadMutationResponse, + ResponseErrorConfig< + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500 + >, + { + tripID: MarkActivityEventReadPathParams["tripID"]; + eventID: MarkActivityEventReadPathParams["eventID"]; + }, + TContext + > & { client?: QueryClient }; + client?: Partial & { client?: typeof fetch }; + } = {}, +) { + const { mutation = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...mutationOptions } = mutation; + const mutationKey = + mutationOptions.mutationKey ?? markActivityEventReadMutationKey(); + + const baseOptions = markActivityEventReadMutationOptions( + config, + ) as UseMutationOptions< + MarkActivityEventReadMutationResponse, + ResponseErrorConfig< + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500 + >, + { + tripID: MarkActivityEventReadPathParams["tripID"]; + eventID: MarkActivityEventReadPathParams["eventID"]; + }, + TContext + >; + + return useMutation< + MarkActivityEventReadMutationResponse, + ResponseErrorConfig< + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500 + >, + { + tripID: MarkActivityEventReadPathParams["tripID"]; + eventID: MarkActivityEventReadPathParams["eventID"]; + }, + TContext + >( + { + ...baseOptions, + mutationKey, + ...mutationOptions, + }, + queryClient, + ) as UseMutationResult< + MarkActivityEventReadMutationResponse, + ResponseErrorConfig< + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500 + >, + { + tripID: MarkActivityEventReadPathParams["tripID"]; + eventID: MarkActivityEventReadPathParams["eventID"]; + }, + TContext + >; +} diff --git a/frontend/api/categories/useCreateCategory.ts b/frontend/api/categories/useCreateCategory.ts new file mode 100644 index 00000000..4d472d9c --- /dev/null +++ b/frontend/api/categories/useCreateCategory.ts @@ -0,0 +1,181 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; +import type { + CreateCategoryMutationRequest, + CreateCategoryMutationResponse, + CreateCategoryPathParams, + CreateCategory400, + CreateCategory401, + CreateCategory403, + CreateCategory404, + CreateCategory500, +} from "../../types/types.gen.ts"; +import { mutationOptions, useMutation } from "@tanstack/react-query"; + +export const createCategoryMutationKey = () => + [{ url: "/api/v1/trips/:tripID/categories" }] as const; + +export type CreateCategoryMutationKey = ReturnType< + typeof createCategoryMutationKey +>; + +/** + * @description Creates a new custom category for a trip (any trip member) + * @summary Create category + * {@link /api/v1/trips/:tripID/categories} + */ +export async function createCategory( + tripID: CreateCategoryPathParams["tripID"], + data: CreateCategoryMutationRequest, + config: Partial> & { + client?: typeof fetch; + } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const requestData = data; + + const res = await request< + CreateCategoryMutationResponse, + ResponseErrorConfig< + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500 + >, + CreateCategoryMutationRequest + >({ + method: "POST", + url: `/api/v1/trips/${tripID}/categories`, + data: requestData, + ...requestConfig, + }); + return res.data; +} + +export function createCategoryMutationOptions( + config: Partial> & { + client?: typeof fetch; + } = {}, +) { + const mutationKey = createCategoryMutationKey(); + return mutationOptions< + CreateCategoryMutationResponse, + ResponseErrorConfig< + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500 + >, + { + tripID: CreateCategoryPathParams["tripID"]; + data: CreateCategoryMutationRequest; + }, + typeof mutationKey + >({ + mutationKey, + mutationFn: async ({ tripID, data }) => { + return createCategory(tripID, data, config); + }, + }); +} + +/** + * @description Creates a new custom category for a trip (any trip member) + * @summary Create category + * {@link /api/v1/trips/:tripID/categories} + */ +export function useCreateCategory( + options: { + mutation?: UseMutationOptions< + CreateCategoryMutationResponse, + ResponseErrorConfig< + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500 + >, + { + tripID: CreateCategoryPathParams["tripID"]; + data: CreateCategoryMutationRequest; + }, + TContext + > & { client?: QueryClient }; + client?: Partial> & { + client?: typeof fetch; + }; + } = {}, +) { + const { mutation = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...mutationOptions } = mutation; + const mutationKey = + mutationOptions.mutationKey ?? createCategoryMutationKey(); + + const baseOptions = createCategoryMutationOptions( + config, + ) as UseMutationOptions< + CreateCategoryMutationResponse, + ResponseErrorConfig< + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500 + >, + { + tripID: CreateCategoryPathParams["tripID"]; + data: CreateCategoryMutationRequest; + }, + TContext + >; + + return useMutation< + CreateCategoryMutationResponse, + ResponseErrorConfig< + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500 + >, + { + tripID: CreateCategoryPathParams["tripID"]; + data: CreateCategoryMutationRequest; + }, + TContext + >( + { + ...baseOptions, + mutationKey, + ...mutationOptions, + }, + queryClient, + ) as UseMutationResult< + CreateCategoryMutationResponse, + ResponseErrorConfig< + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500 + >, + { + tripID: CreateCategoryPathParams["tripID"]; + data: CreateCategoryMutationRequest; + }, + TContext + >; +} diff --git a/frontend/api/categories/useDeleteCategory.ts b/frontend/api/categories/useDeleteCategory.ts new file mode 100644 index 00000000..c12af1aa --- /dev/null +++ b/frontend/api/categories/useDeleteCategory.ts @@ -0,0 +1,171 @@ +/** + * Generated by Kubb (https://kubb.dev/). + * Do not edit manually. + */ + +import fetch from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; +import type { + DeleteCategoryMutationResponse, + DeleteCategoryPathParams, + DeleteCategory400, + DeleteCategory401, + DeleteCategory403, + DeleteCategory404, + DeleteCategory500, +} from "../../types/types.gen.ts"; +import { mutationOptions, useMutation } from "@tanstack/react-query"; + +export const deleteCategoryMutationKey = () => + [{ url: "/api/v1/trips/:tripID/categories/:name" }] as const; + +export type DeleteCategoryMutationKey = ReturnType< + typeof deleteCategoryMutationKey +>; + +/** + * @description Deletes a custom category from a trip (admin only, cannot delete default categories) + * @summary Delete category + * {@link /api/v1/trips/:tripID/categories/:name} + */ +export async function deleteCategory( + tripID: DeleteCategoryPathParams["tripID"], + name: DeleteCategoryPathParams["name"], + config: Partial & { client?: typeof fetch } = {}, +) { + const { client: request = fetch, ...requestConfig } = config; + + const res = await request< + DeleteCategoryMutationResponse, + ResponseErrorConfig< + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500 + >, + unknown + >({ + method: "DELETE", + url: `/api/v1/trips/${tripID}/categories/${name}`, + ...requestConfig, + }); + return res.data; +} + +export function deleteCategoryMutationOptions( + config: Partial & { client?: typeof fetch } = {}, +) { + const mutationKey = deleteCategoryMutationKey(); + return mutationOptions< + DeleteCategoryMutationResponse, + ResponseErrorConfig< + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500 + >, + { + tripID: DeleteCategoryPathParams["tripID"]; + name: DeleteCategoryPathParams["name"]; + }, + typeof mutationKey + >({ + mutationKey, + mutationFn: async ({ tripID, name }) => { + return deleteCategory(tripID, name, config); + }, + }); +} + +/** + * @description Deletes a custom category from a trip (admin only, cannot delete default categories) + * @summary Delete category + * {@link /api/v1/trips/:tripID/categories/:name} + */ +export function useDeleteCategory( + options: { + mutation?: UseMutationOptions< + DeleteCategoryMutationResponse, + ResponseErrorConfig< + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500 + >, + { + tripID: DeleteCategoryPathParams["tripID"]; + name: DeleteCategoryPathParams["name"]; + }, + TContext + > & { client?: QueryClient }; + client?: Partial & { client?: typeof fetch }; + } = {}, +) { + const { mutation = {}, client: config = {} } = options ?? {}; + const { client: queryClient, ...mutationOptions } = mutation; + const mutationKey = + mutationOptions.mutationKey ?? deleteCategoryMutationKey(); + + const baseOptions = deleteCategoryMutationOptions( + config, + ) as UseMutationOptions< + DeleteCategoryMutationResponse, + ResponseErrorConfig< + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500 + >, + { + tripID: DeleteCategoryPathParams["tripID"]; + name: DeleteCategoryPathParams["name"]; + }, + TContext + >; + + return useMutation< + DeleteCategoryMutationResponse, + ResponseErrorConfig< + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500 + >, + { + tripID: DeleteCategoryPathParams["tripID"]; + name: DeleteCategoryPathParams["name"]; + }, + TContext + >( + { + ...baseOptions, + mutationKey, + ...mutationOptions, + }, + queryClient, + ) as UseMutationResult< + DeleteCategoryMutationResponse, + ResponseErrorConfig< + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500 + >, + { + tripID: DeleteCategoryPathParams["tripID"]; + name: DeleteCategoryPathParams["name"]; + }, + TContext + >; +} diff --git a/frontend/api/categories/useGetCategoriesByTripID.ts b/frontend/api/categories/useGetCategoriesByTripID.ts index c9850c85..51ddd039 100644 --- a/frontend/api/categories/useGetCategoriesByTripID.ts +++ b/frontend/api/categories/useGetCategoriesByTripID.ts @@ -4,29 +4,32 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetCategoriesByTripIDQueryResponse, GetCategoriesByTripIDPathParams, + GetCategoriesByTripIDQueryParams, GetCategoriesByTripID400, GetCategoriesByTripID401, GetCategoriesByTripID403, GetCategoriesByTripID404, GetCategoriesByTripID500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getCategoriesByTripIDQueryKey = ( tripID: GetCategoriesByTripIDPathParams["tripID"], + params?: GetCategoriesByTripIDQueryParams, ) => [ { url: "/api/v1/trips/:tripID/categories", params: { tripID: tripID } }, + ...(params ? [params] : []), ] as const; export type GetCategoriesByTripIDQueryKey = ReturnType< @@ -40,7 +43,8 @@ export type GetCategoriesByTripIDQueryKey = ReturnType< */ export async function getCategoriesByTripID( tripID: GetCategoriesByTripIDPathParams["tripID"], - config: Partial & { client?: Client } = {}, + params?: GetCategoriesByTripIDQueryParams, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -57,6 +61,7 @@ export async function getCategoriesByTripID( >({ method: "GET", url: `/api/v1/trips/${tripID}/categories`, + params, ...requestConfig, }); return res.data; @@ -64,9 +69,10 @@ export async function getCategoriesByTripID( export function getCategoriesByTripIDQueryOptions( tripID: GetCategoriesByTripIDPathParams["tripID"], - config: Partial & { client?: Client } = {}, + params?: GetCategoriesByTripIDQueryParams, + config: Partial & { client?: typeof fetch } = {}, ) { - const queryKey = getCategoriesByTripIDQueryKey(tripID); + const queryKey = getCategoriesByTripIDQueryKey(tripID, params); return queryOptions< GetCategoriesByTripIDQueryResponse, ResponseErrorConfig< @@ -82,10 +88,8 @@ export function getCategoriesByTripIDQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } - return getCategoriesByTripID(tripID, config); + config.signal = signal; + return getCategoriesByTripID(tripID, params, config); }, }); } @@ -101,6 +105,7 @@ export function useGetCategoriesByTripID< TQueryKey extends QueryKey = GetCategoriesByTripIDQueryKey, >( tripID: GetCategoriesByTripIDPathParams["tripID"], + params?: GetCategoriesByTripIDQueryParams, options: { query?: Partial< QueryObserverOptions< @@ -117,17 +122,17 @@ export function useGetCategoriesByTripID< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; const { client: queryClient, ...queryOptions } = queryConfig; const queryKey = - queryOptions?.queryKey ?? getCategoriesByTripIDQueryKey(tripID); + queryOptions?.queryKey ?? getCategoriesByTripIDQueryKey(tripID, params); const query = useQuery( { - ...getCategoriesByTripIDQueryOptions(tripID, config), + ...getCategoriesByTripIDQueryOptions(tripID, params, config), queryKey, ...queryOptions, } as unknown as QueryObserverOptions, diff --git a/frontend/api/categories/useGetCategoriesByTripIDSuspense.ts b/frontend/api/categories/useGetCategoriesByTripIDSuspense.ts index fb8c503a..041b8e13 100644 --- a/frontend/api/categories/useGetCategoriesByTripIDSuspense.ts +++ b/frontend/api/categories/useGetCategoriesByTripIDSuspense.ts @@ -4,29 +4,32 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetCategoriesByTripIDQueryResponse, GetCategoriesByTripIDPathParams, + GetCategoriesByTripIDQueryParams, GetCategoriesByTripID400, GetCategoriesByTripID401, GetCategoriesByTripID403, GetCategoriesByTripID404, GetCategoriesByTripID500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getCategoriesByTripIDSuspenseQueryKey = ( tripID: GetCategoriesByTripIDPathParams["tripID"], + params?: GetCategoriesByTripIDQueryParams, ) => [ { url: "/api/v1/trips/:tripID/categories", params: { tripID: tripID } }, + ...(params ? [params] : []), ] as const; export type GetCategoriesByTripIDSuspenseQueryKey = ReturnType< @@ -40,7 +43,8 @@ export type GetCategoriesByTripIDSuspenseQueryKey = ReturnType< */ export async function getCategoriesByTripIDSuspense( tripID: GetCategoriesByTripIDPathParams["tripID"], - config: Partial & { client?: Client } = {}, + params?: GetCategoriesByTripIDQueryParams, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -57,6 +61,7 @@ export async function getCategoriesByTripIDSuspense( >({ method: "GET", url: `/api/v1/trips/${tripID}/categories`, + params, ...requestConfig, }); return res.data; @@ -64,9 +69,10 @@ export async function getCategoriesByTripIDSuspense( export function getCategoriesByTripIDSuspenseQueryOptions( tripID: GetCategoriesByTripIDPathParams["tripID"], - config: Partial & { client?: Client } = {}, + params?: GetCategoriesByTripIDQueryParams, + config: Partial & { client?: typeof fetch } = {}, ) { - const queryKey = getCategoriesByTripIDSuspenseQueryKey(tripID); + const queryKey = getCategoriesByTripIDSuspenseQueryKey(tripID, params); return queryOptions< GetCategoriesByTripIDQueryResponse, ResponseErrorConfig< @@ -82,10 +88,8 @@ export function getCategoriesByTripIDSuspenseQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } - return getCategoriesByTripIDSuspense(tripID, config); + config.signal = signal; + return getCategoriesByTripIDSuspense(tripID, params, config); }, }); } @@ -100,6 +104,7 @@ export function useGetCategoriesByTripIDSuspense< TQueryKey extends QueryKey = GetCategoriesByTripIDSuspenseQueryKey, >( tripID: GetCategoriesByTripIDPathParams["tripID"], + params?: GetCategoriesByTripIDQueryParams, options: { query?: Partial< UseSuspenseQueryOptions< @@ -115,17 +120,18 @@ export function useGetCategoriesByTripIDSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; const { client: queryClient, ...queryOptions } = queryConfig; const queryKey = - queryOptions?.queryKey ?? getCategoriesByTripIDSuspenseQueryKey(tripID); + queryOptions?.queryKey ?? + getCategoriesByTripIDSuspenseQueryKey(tripID, params); const query = useSuspenseQuery( { - ...getCategoriesByTripIDSuspenseQueryOptions(tripID, config), + ...getCategoriesByTripIDSuspenseQueryOptions(tripID, params, config), queryKey, ...queryOptions, } as unknown as UseSuspenseQueryOptions, diff --git a/frontend/api/categories/useHideCategory.ts b/frontend/api/categories/useHideCategory.ts index c74b6b5f..cadfabab 100644 --- a/frontend/api/categories/useHideCategory.ts +++ b/frontend/api/categories/useHideCategory.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { HideCategoryMutationResponse, HideCategoryPathParams, @@ -14,11 +19,6 @@ import type { HideCategory404, HideCategory500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const hideCategoryMutationKey = () => @@ -36,7 +36,7 @@ export type HideCategoryMutationKey = ReturnType< export async function hideCategory( tripID: HideCategoryPathParams["tripID"], name: HideCategoryPathParams["name"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -58,8 +58,8 @@ export async function hideCategory( return res.data; } -export function hideCategoryMutationOptions( - config: Partial & { client?: Client } = {}, +export function hideCategoryMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = hideCategoryMutationKey(); return mutationOptions< @@ -75,7 +75,7 @@ export function hideCategoryMutationOptions( tripID: HideCategoryPathParams["tripID"]; name: HideCategoryPathParams["name"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, name }) => { @@ -106,7 +106,7 @@ export function useHideCategory( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/categories/useShowCategory.ts b/frontend/api/categories/useShowCategory.ts index 0b8b8a9f..519c2baa 100644 --- a/frontend/api/categories/useShowCategory.ts +++ b/frontend/api/categories/useShowCategory.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { ShowCategoryMutationResponse, ShowCategoryPathParams, @@ -14,11 +19,6 @@ import type { ShowCategory404, ShowCategory500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const showCategoryMutationKey = () => @@ -36,7 +36,7 @@ export type ShowCategoryMutationKey = ReturnType< export async function showCategory( tripID: ShowCategoryPathParams["tripID"], name: ShowCategoryPathParams["name"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -58,8 +58,8 @@ export async function showCategory( return res.data; } -export function showCategoryMutationOptions( - config: Partial & { client?: Client } = {}, +export function showCategoryMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = showCategoryMutationKey(); return mutationOptions< @@ -75,7 +75,7 @@ export function showCategoryMutationOptions( tripID: ShowCategoryPathParams["tripID"]; name: ShowCategoryPathParams["name"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, name }) => { @@ -106,7 +106,7 @@ export function useShowCategory( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/comments/useCreateComment.ts b/frontend/api/comments/useCreateComment.ts index fccaa09d..67d21e02 100644 --- a/frontend/api/comments/useCreateComment.ts +++ b/frontend/api/comments/useCreateComment.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateCommentMutationRequest, CreateCommentMutationResponse, @@ -14,11 +19,6 @@ import type { CreateComment422, CreateComment500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createCommentMutationKey = () => @@ -36,7 +36,7 @@ export type CreateCommentMutationKey = ReturnType< export async function createComment( data: CreateCommentMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -62,9 +62,9 @@ export async function createComment( return res.data; } -export function createCommentMutationOptions( +export function createCommentMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createCommentMutationKey(); @@ -78,7 +78,7 @@ export function createCommentMutationOptions( | CreateComment500 >, { data: CreateCommentMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -107,7 +107,7 @@ export function useCreateComment( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/comments/useDeleteComment.ts b/frontend/api/comments/useDeleteComment.ts index dbe63d0a..43d517a1 100644 --- a/frontend/api/comments/useDeleteComment.ts +++ b/frontend/api/comments/useDeleteComment.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteCommentMutationResponse, DeleteCommentPathParams, @@ -13,11 +18,6 @@ import type { DeleteComment404, DeleteComment500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteCommentMutationKey = () => @@ -34,7 +34,7 @@ export type DeleteCommentMutationKey = ReturnType< */ export async function deleteComment( commentID: DeleteCommentPathParams["commentID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -52,8 +52,8 @@ export async function deleteComment( return res.data; } -export function deleteCommentMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteCommentMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteCommentMutationKey(); return mutationOptions< @@ -62,7 +62,7 @@ export function deleteCommentMutationOptions( DeleteComment400 | DeleteComment401 | DeleteComment404 | DeleteComment500 >, { commentID: DeleteCommentPathParams["commentID"] }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ commentID }) => { @@ -89,7 +89,7 @@ export function useDeleteComment( { commentID: DeleteCommentPathParams["commentID"] }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/comments/useGetPaginatedComments.ts b/frontend/api/comments/useGetPaginatedComments.ts index 14fd280b..e0c0e074 100644 --- a/frontend/api/comments/useGetPaginatedComments.ts +++ b/frontend/api/comments/useGetPaginatedComments.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetPaginatedCommentsQueryResponse, GetPaginatedCommentsPathParams, @@ -15,19 +21,13 @@ import type { GetPaginatedComments422, GetPaginatedComments500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getPaginatedCommentsQueryKey = ( tripID: GetPaginatedCommentsPathParams["tripID"], entityType: GetPaginatedCommentsPathParams["entityType"], entityID: GetPaginatedCommentsPathParams["entityID"], - params: GetPaginatedCommentsQueryParams = {}, + params?: GetPaginatedCommentsQueryParams, ) => [ { @@ -51,7 +51,7 @@ export async function getPaginatedComments( entityType: GetPaginatedCommentsPathParams["entityType"], entityID: GetPaginatedCommentsPathParams["entityID"], params?: GetPaginatedCommentsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -79,7 +79,7 @@ export function getPaginatedCommentsQueryOptions( entityType: GetPaginatedCommentsPathParams["entityType"], entityID: GetPaginatedCommentsPathParams["entityID"], params?: GetPaginatedCommentsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPaginatedCommentsQueryKey( tripID, @@ -102,9 +102,7 @@ export function getPaginatedCommentsQueryOptions( enabled: !!(tripID && entityType && entityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPaginatedComments(tripID, entityType, entityID, params, config); }, }); @@ -140,7 +138,7 @@ export function useGetPaginatedComments< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/comments/useGetPaginatedCommentsSuspense.ts b/frontend/api/comments/useGetPaginatedCommentsSuspense.ts index a75efe28..203ba024 100644 --- a/frontend/api/comments/useGetPaginatedCommentsSuspense.ts +++ b/frontend/api/comments/useGetPaginatedCommentsSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetPaginatedCommentsQueryResponse, GetPaginatedCommentsPathParams, @@ -15,19 +21,13 @@ import type { GetPaginatedComments422, GetPaginatedComments500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getPaginatedCommentsSuspenseQueryKey = ( tripID: GetPaginatedCommentsPathParams["tripID"], entityType: GetPaginatedCommentsPathParams["entityType"], entityID: GetPaginatedCommentsPathParams["entityID"], - params: GetPaginatedCommentsQueryParams = {}, + params?: GetPaginatedCommentsQueryParams, ) => [ { @@ -51,7 +51,7 @@ export async function getPaginatedCommentsSuspense( entityType: GetPaginatedCommentsPathParams["entityType"], entityID: GetPaginatedCommentsPathParams["entityID"], params?: GetPaginatedCommentsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -79,7 +79,7 @@ export function getPaginatedCommentsSuspenseQueryOptions( entityType: GetPaginatedCommentsPathParams["entityType"], entityID: GetPaginatedCommentsPathParams["entityID"], params?: GetPaginatedCommentsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPaginatedCommentsSuspenseQueryKey( tripID, @@ -102,9 +102,7 @@ export function getPaginatedCommentsSuspenseQueryOptions( enabled: !!(tripID && entityType && entityID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPaginatedCommentsSuspense( tripID, entityType, @@ -144,7 +142,7 @@ export function useGetPaginatedCommentsSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/comments/useUpdateComment.ts b/frontend/api/comments/useUpdateComment.ts index 5486721b..6ec6259d 100644 --- a/frontend/api/comments/useUpdateComment.ts +++ b/frontend/api/comments/useUpdateComment.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdateCommentMutationRequest, UpdateCommentMutationResponse, @@ -15,11 +20,6 @@ import type { UpdateComment422, UpdateComment500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updateCommentMutationKey = () => @@ -38,7 +38,7 @@ export async function updateComment( commentID: UpdateCommentPathParams["commentID"], data: UpdateCommentMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -64,9 +64,9 @@ export async function updateComment( return res.data; } -export function updateCommentMutationOptions( +export function updateCommentMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updateCommentMutationKey(); @@ -83,7 +83,7 @@ export function updateCommentMutationOptions( commentID: UpdateCommentPathParams["commentID"]; data: UpdateCommentMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ commentID, data }) => { @@ -115,7 +115,7 @@ export function useUpdateComment( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/example/useHealthcheck.ts b/frontend/api/example/useHealthcheck.ts index 3eae8feb..4cf890c0 100644 --- a/frontend/api/example/useHealthcheck.ts +++ b/frontend/api/example/useHealthcheck.ts @@ -4,17 +4,17 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - HealthcheckQueryResponse, - Healthcheck500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, QueryObserverOptions, UseQueryResult, } from "@tanstack/react-query"; +import type { + HealthcheckQueryResponse, + Healthcheck500, +} from "../../types/types.gen.ts"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const healthcheckQueryKey = () => [{ url: "/healthcheck" }] as const; @@ -27,7 +27,7 @@ export type HealthcheckQueryKey = ReturnType; * {@link /healthcheck} */ export async function healthcheck( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -40,7 +40,7 @@ export async function healthcheck( } export function healthcheckQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = healthcheckQueryKey(); return queryOptions< @@ -51,9 +51,7 @@ export function healthcheckQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return healthcheck(config); }, }); @@ -79,7 +77,7 @@ export function useHealthcheck< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/example/useHealthcheckSuspense.ts b/frontend/api/example/useHealthcheckSuspense.ts index 9134ca78..a1c9bbad 100644 --- a/frontend/api/example/useHealthcheckSuspense.ts +++ b/frontend/api/example/useHealthcheckSuspense.ts @@ -4,17 +4,17 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - HealthcheckQueryResponse, - Healthcheck500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, UseSuspenseQueryOptions, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import type { + HealthcheckQueryResponse, + Healthcheck500, +} from "../../types/types.gen.ts"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const healthcheckSuspenseQueryKey = () => @@ -30,7 +30,7 @@ export type HealthcheckSuspenseQueryKey = ReturnType< * {@link /healthcheck} */ export async function healthcheckSuspense( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -43,7 +43,7 @@ export async function healthcheckSuspense( } export function healthcheckSuspenseQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = healthcheckSuspenseQueryKey(); return queryOptions< @@ -54,9 +54,7 @@ export function healthcheckSuspenseQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return healthcheckSuspense(config); }, }); @@ -80,7 +78,7 @@ export function useHealthcheckSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useCheckS3Health.ts b/frontend/api/files/useCheckS3Health.ts index 66e7a0fd..19eb296f 100644 --- a/frontend/api/files/useCheckS3Health.ts +++ b/frontend/api/files/useCheckS3Health.ts @@ -4,17 +4,17 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - CheckS3HealthQueryResponse, - CheckS3Health503, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, QueryObserverOptions, UseQueryResult, } from "@tanstack/react-query"; +import type { + CheckS3HealthQueryResponse, + CheckS3Health503, +} from "../../types/types.gen.ts"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const checkS3HealthQueryKey = () => @@ -28,7 +28,7 @@ export type CheckS3HealthQueryKey = ReturnType; * {@link /api/v1/files/health} */ export async function checkS3Health( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -41,7 +41,7 @@ export async function checkS3Health( } export function checkS3HealthQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = checkS3HealthQueryKey(); return queryOptions< @@ -52,9 +52,7 @@ export function checkS3HealthQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return checkS3Health(config); }, }); @@ -80,7 +78,7 @@ export function useCheckS3Health< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useCheckS3HealthSuspense.ts b/frontend/api/files/useCheckS3HealthSuspense.ts index 6e3ce4de..f6819c15 100644 --- a/frontend/api/files/useCheckS3HealthSuspense.ts +++ b/frontend/api/files/useCheckS3HealthSuspense.ts @@ -4,17 +4,17 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - CheckS3HealthQueryResponse, - CheckS3Health503, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, UseSuspenseQueryOptions, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import type { + CheckS3HealthQueryResponse, + CheckS3Health503, +} from "../../types/types.gen.ts"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const checkS3HealthSuspenseQueryKey = () => @@ -30,7 +30,7 @@ export type CheckS3HealthSuspenseQueryKey = ReturnType< * {@link /api/v1/files/health} */ export async function checkS3HealthSuspense( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -43,7 +43,7 @@ export async function checkS3HealthSuspense( } export function checkS3HealthSuspenseQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = checkS3HealthSuspenseQueryKey(); return queryOptions< @@ -54,9 +54,7 @@ export function checkS3HealthSuspenseQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return checkS3HealthSuspense(config); }, }); @@ -80,7 +78,7 @@ export function useCheckS3HealthSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useConfirmUpload.ts b/frontend/api/files/useConfirmUpload.ts index 474592b8..0cf06866 100644 --- a/frontend/api/files/useConfirmUpload.ts +++ b/frontend/api/files/useConfirmUpload.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { ConfirmUploadMutationRequest, ConfirmUploadMutationResponse, @@ -13,11 +18,6 @@ import type { ConfirmUpload422, ConfirmUpload500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const confirmUploadMutationKey = () => @@ -35,7 +35,7 @@ export type ConfirmUploadMutationKey = ReturnType< export async function confirmUpload( data: ConfirmUploadMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -57,9 +57,9 @@ export async function confirmUpload( return res.data; } -export function confirmUploadMutationOptions( +export function confirmUploadMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = confirmUploadMutationKey(); @@ -69,7 +69,7 @@ export function confirmUploadMutationOptions( ConfirmUpload400 | ConfirmUpload404 | ConfirmUpload422 | ConfirmUpload500 >, { data: ConfirmUploadMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -97,7 +97,7 @@ export function useConfirmUpload( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/files/useCreateUploadURLs.ts b/frontend/api/files/useCreateUploadURLs.ts index 9b5d5bc7..7bf4f58c 100644 --- a/frontend/api/files/useCreateUploadURLs.ts +++ b/frontend/api/files/useCreateUploadURLs.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateUploadURLsMutationRequest, CreateUploadURLsMutationResponse, @@ -12,11 +17,6 @@ import type { CreateUploadURLs422, CreateUploadURLs500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createUploadURLsMutationKey = () => @@ -34,7 +34,7 @@ export type CreateUploadURLsMutationKey = ReturnType< export async function createUploadURLs( data: CreateUploadURLsMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -56,9 +56,9 @@ export async function createUploadURLs( return res.data; } -export function createUploadURLsMutationOptions( +export function createUploadURLsMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createUploadURLsMutationKey(); @@ -68,7 +68,7 @@ export function createUploadURLsMutationOptions( CreateUploadURLs400 | CreateUploadURLs422 | CreateUploadURLs500 >, { data: CreateUploadURLsMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -93,7 +93,7 @@ export function useCreateUploadURLs( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/files/useDeleteImage.ts b/frontend/api/files/useDeleteImage.ts index 6647c8ff..c262e81e 100644 --- a/frontend/api/files/useDeleteImage.ts +++ b/frontend/api/files/useDeleteImage.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteImageMutationResponse, DeleteImagePathParams, @@ -12,11 +17,6 @@ import type { DeleteImage404, DeleteImage500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteImageMutationKey = () => @@ -31,7 +31,7 @@ export type DeleteImageMutationKey = ReturnType; */ export async function deleteImage( imageId: DeleteImagePathParams["imageId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -43,15 +43,15 @@ export async function deleteImage( return res.data; } -export function deleteImageMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteImageMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteImageMutationKey(); return mutationOptions< DeleteImageMutationResponse, ResponseErrorConfig, { imageId: DeleteImagePathParams["imageId"] }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ imageId }) => { @@ -73,7 +73,7 @@ export function useDeleteImage( { imageId: DeleteImagePathParams["imageId"] }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useGetFile.ts b/frontend/api/files/useGetFile.ts index b3deccb8..15c4ad8b 100644 --- a/frontend/api/files/useGetFile.ts +++ b/frontend/api/files/useGetFile.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetFileQueryResponse, GetFilePathParams, @@ -12,12 +18,6 @@ import type { GetFile404, GetFile500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getFileQueryKey = ( @@ -41,7 +41,7 @@ export type GetFileQueryKey = ReturnType; export async function getFile( imageId: GetFilePathParams["imageId"], size: GetFilePathParams["size"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -60,7 +60,7 @@ export async function getFile( export function getFileQueryOptions( imageId: GetFilePathParams["imageId"], size: GetFilePathParams["size"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getFileQueryKey(imageId, size); return queryOptions< @@ -72,9 +72,7 @@ export function getFileQueryOptions( enabled: !!(imageId && size), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getFile(imageId, size, config); }, }); @@ -102,7 +100,7 @@ export function useGetFile< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useGetFileAllSizes.ts b/frontend/api/files/useGetFileAllSizes.ts index 4ae75d75..65b88e8a 100644 --- a/frontend/api/files/useGetFileAllSizes.ts +++ b/frontend/api/files/useGetFileAllSizes.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetFileAllSizesQueryResponse, GetFileAllSizesPathParams, @@ -12,12 +18,6 @@ import type { GetFileAllSizes404, GetFileAllSizes500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getFileAllSizesQueryKey = ( @@ -35,7 +35,7 @@ export type GetFileAllSizesQueryKey = ReturnType< */ export async function getFileAllSizes( imageId: GetFileAllSizesPathParams["imageId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -51,7 +51,7 @@ export async function getFileAllSizes( export function getFileAllSizesQueryOptions( imageId: GetFileAllSizesPathParams["imageId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getFileAllSizesQueryKey(imageId); return queryOptions< @@ -65,9 +65,7 @@ export function getFileAllSizesQueryOptions( enabled: !!imageId, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getFileAllSizes(imageId, config); }, }); @@ -96,7 +94,7 @@ export function useGetFileAllSizes< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useGetFileAllSizesSuspense.ts b/frontend/api/files/useGetFileAllSizesSuspense.ts index 19626b16..2db94733 100644 --- a/frontend/api/files/useGetFileAllSizesSuspense.ts +++ b/frontend/api/files/useGetFileAllSizesSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetFileAllSizesQueryResponse, GetFileAllSizesPathParams, @@ -12,12 +18,6 @@ import type { GetFileAllSizes404, GetFileAllSizes500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getFileAllSizesSuspenseQueryKey = ( @@ -35,7 +35,7 @@ export type GetFileAllSizesSuspenseQueryKey = ReturnType< */ export async function getFileAllSizesSuspense( imageId: GetFileAllSizesPathParams["imageId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -51,7 +51,7 @@ export async function getFileAllSizesSuspense( export function getFileAllSizesSuspenseQueryOptions( imageId: GetFileAllSizesPathParams["imageId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getFileAllSizesSuspenseQueryKey(imageId); return queryOptions< @@ -65,9 +65,7 @@ export function getFileAllSizesSuspenseQueryOptions( enabled: !!imageId, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getFileAllSizesSuspense(imageId, config); }, }); @@ -94,7 +92,7 @@ export function useGetFileAllSizesSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/files/useGetFileSuspense.ts b/frontend/api/files/useGetFileSuspense.ts index 26bf4801..618933e9 100644 --- a/frontend/api/files/useGetFileSuspense.ts +++ b/frontend/api/files/useGetFileSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetFileQueryResponse, GetFilePathParams, @@ -12,12 +18,6 @@ import type { GetFile404, GetFile500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getFileSuspenseQueryKey = ( @@ -43,7 +43,7 @@ export type GetFileSuspenseQueryKey = ReturnType< export async function getFileSuspense( imageId: GetFilePathParams["imageId"], size: GetFilePathParams["size"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -62,7 +62,7 @@ export async function getFileSuspense( export function getFileSuspenseQueryOptions( imageId: GetFilePathParams["imageId"], size: GetFilePathParams["size"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getFileSuspenseQueryKey(imageId, size); return queryOptions< @@ -74,9 +74,7 @@ export function getFileSuspenseQueryOptions( enabled: !!(imageId && size), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getFileSuspense(imageId, size, config); }, }); @@ -102,7 +100,7 @@ export function useGetFileSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/index.ts b/frontend/api/index.ts index f176f396..d9b9846b 100644 --- a/frontend/api/index.ts +++ b/frontend/api/index.ts @@ -9,9 +9,17 @@ export type { GetActivityCategoriesSuspenseQueryKey } from "./activities/useGetA export type { GetActivitySuspenseQueryKey } from "./activities/useGetActivitySuspense.ts"; export type { GetApiV1TripsTripidActivitiesActivityidRsvpsQueryKey } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts"; export type { GetApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryKey } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts"; +export type { ParseActivityLinkMutationKey } from "./activities/useParseActivityLink.ts"; export type { PostApiV1TripsTripidActivitiesActivityidRsvpMutationKey } from "./activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts"; export type { RemoveCategoryFromActivityMutationKey } from "./activities/useRemoveCategoryFromActivity.ts"; export type { UpdateActivityMutationKey } from "./activities/useUpdateActivity.ts"; +export type { GetTripActivityFeedQueryKey } from "./activity-feed/useGetTripActivityFeed.ts"; +export type { GetTripActivityFeedSuspenseQueryKey } from "./activity-feed/useGetTripActivityFeedSuspense.ts"; +export type { GetUnreadActivityCountQueryKey } from "./activity-feed/useGetUnreadActivityCount.ts"; +export type { GetUnreadActivityCountSuspenseQueryKey } from "./activity-feed/useGetUnreadActivityCountSuspense.ts"; +export type { MarkActivityEventReadMutationKey } from "./activity-feed/useMarkActivityEventRead.ts"; +export type { CreateCategoryMutationKey } from "./categories/useCreateCategory.ts"; +export type { DeleteCategoryMutationKey } from "./categories/useDeleteCategory.ts"; export type { GetCategoriesByTripIDQueryKey } from "./categories/useGetCategoriesByTripID.ts"; export type { GetCategoriesByTripIDSuspenseQueryKey } from "./categories/useGetCategoriesByTripIDSuspense.ts"; export type { HideCategoryMutationKey } from "./categories/useHideCategory.ts"; @@ -66,9 +74,9 @@ export type { DeletePollOptionMutationKey } from "./polls/useDeletePollOption.ts export type { DeleteRankPollMutationKey } from "./polls/useDeleteRankPoll.ts"; export type { DeleteRankPollOptionMutationKey } from "./polls/useDeleteRankPollOption.ts"; export type { GetPollQueryKey } from "./polls/useGetPoll.ts"; -export type { GetPollSuspenseQueryKey } from "./polls/useGetPollSuspense.ts"; export type { GetPollsByTripIDQueryKey } from "./polls/useGetPollsByTripID.ts"; export type { GetPollsByTripIDSuspenseQueryKey } from "./polls/useGetPollsByTripIDSuspense.ts"; +export type { GetPollSuspenseQueryKey } from "./polls/useGetPollSuspense.ts"; export type { GetRankPollResultsQueryKey } from "./polls/useGetRankPollResults.ts"; export type { GetRankPollResultsSuspenseQueryKey } from "./polls/useGetRankPollResultsSuspense.ts"; export type { GetRankPollVotersQueryKey } from "./polls/useGetRankPollVoters.ts"; @@ -97,399 +105,431 @@ export type { GetCurrentUserSuspenseQueryKey } from "./users/useGetCurrentUserSu export type { GetUserQueryKey } from "./users/useGetUser.ts"; export type { GetUserSuspenseQueryKey } from "./users/useGetUserSuspense.ts"; export type { UpdateUserMutationKey } from "./users/useUpdateUser.ts"; -export { addCategoryToActivity } from "./activities/useAddCategoryToActivity.ts"; export { addCategoryToActivityMutationKey } from "./activities/useAddCategoryToActivity.ts"; +export { addCategoryToActivity } from "./activities/useAddCategoryToActivity.ts"; export { addCategoryToActivityMutationOptions } from "./activities/useAddCategoryToActivity.ts"; export { useAddCategoryToActivity } from "./activities/useAddCategoryToActivity.ts"; -export { createActivity } from "./activities/useCreateActivity.ts"; export { createActivityMutationKey } from "./activities/useCreateActivity.ts"; +export { createActivity } from "./activities/useCreateActivity.ts"; export { createActivityMutationOptions } from "./activities/useCreateActivity.ts"; export { useCreateActivity } from "./activities/useCreateActivity.ts"; -export { deleteActivity } from "./activities/useDeleteActivity.ts"; export { deleteActivityMutationKey } from "./activities/useDeleteActivity.ts"; +export { deleteActivity } from "./activities/useDeleteActivity.ts"; export { deleteActivityMutationOptions } from "./activities/useDeleteActivity.ts"; export { useDeleteActivity } from "./activities/useDeleteActivity.ts"; -export { getActivitiesByTripID } from "./activities/useGetActivitiesByTripID.ts"; export { getActivitiesByTripIDQueryKey } from "./activities/useGetActivitiesByTripID.ts"; +export { getActivitiesByTripID } from "./activities/useGetActivitiesByTripID.ts"; export { getActivitiesByTripIDQueryOptions } from "./activities/useGetActivitiesByTripID.ts"; export { useGetActivitiesByTripID } from "./activities/useGetActivitiesByTripID.ts"; -export { getActivitiesByTripIDSuspense } from "./activities/useGetActivitiesByTripIDSuspense.ts"; export { getActivitiesByTripIDSuspenseQueryKey } from "./activities/useGetActivitiesByTripIDSuspense.ts"; +export { getActivitiesByTripIDSuspense } from "./activities/useGetActivitiesByTripIDSuspense.ts"; export { getActivitiesByTripIDSuspenseQueryOptions } from "./activities/useGetActivitiesByTripIDSuspense.ts"; export { useGetActivitiesByTripIDSuspense } from "./activities/useGetActivitiesByTripIDSuspense.ts"; -export { getActivity } from "./activities/useGetActivity.ts"; export { getActivityQueryKey } from "./activities/useGetActivity.ts"; +export { getActivity } from "./activities/useGetActivity.ts"; export { getActivityQueryOptions } from "./activities/useGetActivity.ts"; export { useGetActivity } from "./activities/useGetActivity.ts"; -export { getActivityCategories } from "./activities/useGetActivityCategories.ts"; export { getActivityCategoriesQueryKey } from "./activities/useGetActivityCategories.ts"; +export { getActivityCategories } from "./activities/useGetActivityCategories.ts"; export { getActivityCategoriesQueryOptions } from "./activities/useGetActivityCategories.ts"; export { useGetActivityCategories } from "./activities/useGetActivityCategories.ts"; -export { getActivityCategoriesSuspense } from "./activities/useGetActivityCategoriesSuspense.ts"; export { getActivityCategoriesSuspenseQueryKey } from "./activities/useGetActivityCategoriesSuspense.ts"; +export { getActivityCategoriesSuspense } from "./activities/useGetActivityCategoriesSuspense.ts"; export { getActivityCategoriesSuspenseQueryOptions } from "./activities/useGetActivityCategoriesSuspense.ts"; export { useGetActivityCategoriesSuspense } from "./activities/useGetActivityCategoriesSuspense.ts"; -export { getActivitySuspense } from "./activities/useGetActivitySuspense.ts"; export { getActivitySuspenseQueryKey } from "./activities/useGetActivitySuspense.ts"; +export { getActivitySuspense } from "./activities/useGetActivitySuspense.ts"; export { getActivitySuspenseQueryOptions } from "./activities/useGetActivitySuspense.ts"; export { useGetActivitySuspense } from "./activities/useGetActivitySuspense.ts"; -export { getApiV1TripsTripidActivitiesActivityidRsvps } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts"; export { getApiV1TripsTripidActivitiesActivityidRsvpsQueryKey } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts"; +export { getApiV1TripsTripidActivitiesActivityidRsvps } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts"; export { getApiV1TripsTripidActivitiesActivityidRsvpsQueryOptions } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts"; export { useGetApiV1TripsTripidActivitiesActivityidRsvps } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvps.ts"; -export { getApiV1TripsTripidActivitiesActivityidRsvpsSuspense } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts"; export { getApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryKey } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts"; +export { getApiV1TripsTripidActivitiesActivityidRsvpsSuspense } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts"; export { getApiV1TripsTripidActivitiesActivityidRsvpsSuspenseQueryOptions } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts"; export { useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense } from "./activities/useGetApiV1TripsTripidActivitiesActivityidRsvpsSuspense.ts"; -export { postApiV1TripsTripidActivitiesActivityidRsvp } from "./activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts"; +export { parseActivityLinkMutationKey } from "./activities/useParseActivityLink.ts"; +export { parseActivityLink } from "./activities/useParseActivityLink.ts"; +export { parseActivityLinkMutationOptions } from "./activities/useParseActivityLink.ts"; +export { useParseActivityLink } from "./activities/useParseActivityLink.ts"; export { postApiV1TripsTripidActivitiesActivityidRsvpMutationKey } from "./activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts"; +export { postApiV1TripsTripidActivitiesActivityidRsvp } from "./activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts"; export { postApiV1TripsTripidActivitiesActivityidRsvpMutationOptions } from "./activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts"; export { usePostApiV1TripsTripidActivitiesActivityidRsvp } from "./activities/usePostApiV1TripsTripidActivitiesActivityidRsvp.ts"; -export { removeCategoryFromActivity } from "./activities/useRemoveCategoryFromActivity.ts"; export { removeCategoryFromActivityMutationKey } from "./activities/useRemoveCategoryFromActivity.ts"; +export { removeCategoryFromActivity } from "./activities/useRemoveCategoryFromActivity.ts"; export { removeCategoryFromActivityMutationOptions } from "./activities/useRemoveCategoryFromActivity.ts"; export { useRemoveCategoryFromActivity } from "./activities/useRemoveCategoryFromActivity.ts"; -export { updateActivity } from "./activities/useUpdateActivity.ts"; export { updateActivityMutationKey } from "./activities/useUpdateActivity.ts"; +export { updateActivity } from "./activities/useUpdateActivity.ts"; export { updateActivityMutationOptions } from "./activities/useUpdateActivity.ts"; export { useUpdateActivity } from "./activities/useUpdateActivity.ts"; -export { getCategoriesByTripID } from "./categories/useGetCategoriesByTripID.ts"; +export { getTripActivityFeedQueryKey } from "./activity-feed/useGetTripActivityFeed.ts"; +export { getTripActivityFeed } from "./activity-feed/useGetTripActivityFeed.ts"; +export { getTripActivityFeedQueryOptions } from "./activity-feed/useGetTripActivityFeed.ts"; +export { useGetTripActivityFeed } from "./activity-feed/useGetTripActivityFeed.ts"; +export { getTripActivityFeedSuspenseQueryKey } from "./activity-feed/useGetTripActivityFeedSuspense.ts"; +export { getTripActivityFeedSuspense } from "./activity-feed/useGetTripActivityFeedSuspense.ts"; +export { getTripActivityFeedSuspenseQueryOptions } from "./activity-feed/useGetTripActivityFeedSuspense.ts"; +export { useGetTripActivityFeedSuspense } from "./activity-feed/useGetTripActivityFeedSuspense.ts"; +export { getUnreadActivityCountQueryKey } from "./activity-feed/useGetUnreadActivityCount.ts"; +export { getUnreadActivityCount } from "./activity-feed/useGetUnreadActivityCount.ts"; +export { getUnreadActivityCountQueryOptions } from "./activity-feed/useGetUnreadActivityCount.ts"; +export { useGetUnreadActivityCount } from "./activity-feed/useGetUnreadActivityCount.ts"; +export { getUnreadActivityCountSuspenseQueryKey } from "./activity-feed/useGetUnreadActivityCountSuspense.ts"; +export { getUnreadActivityCountSuspense } from "./activity-feed/useGetUnreadActivityCountSuspense.ts"; +export { getUnreadActivityCountSuspenseQueryOptions } from "./activity-feed/useGetUnreadActivityCountSuspense.ts"; +export { useGetUnreadActivityCountSuspense } from "./activity-feed/useGetUnreadActivityCountSuspense.ts"; +export { markActivityEventReadMutationKey } from "./activity-feed/useMarkActivityEventRead.ts"; +export { markActivityEventRead } from "./activity-feed/useMarkActivityEventRead.ts"; +export { markActivityEventReadMutationOptions } from "./activity-feed/useMarkActivityEventRead.ts"; +export { useMarkActivityEventRead } from "./activity-feed/useMarkActivityEventRead.ts"; +export { createCategoryMutationKey } from "./categories/useCreateCategory.ts"; +export { createCategory } from "./categories/useCreateCategory.ts"; +export { createCategoryMutationOptions } from "./categories/useCreateCategory.ts"; +export { useCreateCategory } from "./categories/useCreateCategory.ts"; +export { deleteCategoryMutationKey } from "./categories/useDeleteCategory.ts"; +export { deleteCategory } from "./categories/useDeleteCategory.ts"; +export { deleteCategoryMutationOptions } from "./categories/useDeleteCategory.ts"; +export { useDeleteCategory } from "./categories/useDeleteCategory.ts"; export { getCategoriesByTripIDQueryKey } from "./categories/useGetCategoriesByTripID.ts"; +export { getCategoriesByTripID } from "./categories/useGetCategoriesByTripID.ts"; export { getCategoriesByTripIDQueryOptions } from "./categories/useGetCategoriesByTripID.ts"; export { useGetCategoriesByTripID } from "./categories/useGetCategoriesByTripID.ts"; -export { getCategoriesByTripIDSuspense } from "./categories/useGetCategoriesByTripIDSuspense.ts"; export { getCategoriesByTripIDSuspenseQueryKey } from "./categories/useGetCategoriesByTripIDSuspense.ts"; +export { getCategoriesByTripIDSuspense } from "./categories/useGetCategoriesByTripIDSuspense.ts"; export { getCategoriesByTripIDSuspenseQueryOptions } from "./categories/useGetCategoriesByTripIDSuspense.ts"; export { useGetCategoriesByTripIDSuspense } from "./categories/useGetCategoriesByTripIDSuspense.ts"; -export { hideCategory } from "./categories/useHideCategory.ts"; export { hideCategoryMutationKey } from "./categories/useHideCategory.ts"; +export { hideCategory } from "./categories/useHideCategory.ts"; export { hideCategoryMutationOptions } from "./categories/useHideCategory.ts"; export { useHideCategory } from "./categories/useHideCategory.ts"; -export { showCategory } from "./categories/useShowCategory.ts"; export { showCategoryMutationKey } from "./categories/useShowCategory.ts"; +export { showCategory } from "./categories/useShowCategory.ts"; export { showCategoryMutationOptions } from "./categories/useShowCategory.ts"; export { useShowCategory } from "./categories/useShowCategory.ts"; -export { createComment } from "./comments/useCreateComment.ts"; export { createCommentMutationKey } from "./comments/useCreateComment.ts"; +export { createComment } from "./comments/useCreateComment.ts"; export { createCommentMutationOptions } from "./comments/useCreateComment.ts"; export { useCreateComment } from "./comments/useCreateComment.ts"; -export { deleteComment } from "./comments/useDeleteComment.ts"; export { deleteCommentMutationKey } from "./comments/useDeleteComment.ts"; +export { deleteComment } from "./comments/useDeleteComment.ts"; export { deleteCommentMutationOptions } from "./comments/useDeleteComment.ts"; export { useDeleteComment } from "./comments/useDeleteComment.ts"; -export { getPaginatedComments } from "./comments/useGetPaginatedComments.ts"; export { getPaginatedCommentsQueryKey } from "./comments/useGetPaginatedComments.ts"; +export { getPaginatedComments } from "./comments/useGetPaginatedComments.ts"; export { getPaginatedCommentsQueryOptions } from "./comments/useGetPaginatedComments.ts"; export { useGetPaginatedComments } from "./comments/useGetPaginatedComments.ts"; -export { getPaginatedCommentsSuspense } from "./comments/useGetPaginatedCommentsSuspense.ts"; export { getPaginatedCommentsSuspenseQueryKey } from "./comments/useGetPaginatedCommentsSuspense.ts"; +export { getPaginatedCommentsSuspense } from "./comments/useGetPaginatedCommentsSuspense.ts"; export { getPaginatedCommentsSuspenseQueryOptions } from "./comments/useGetPaginatedCommentsSuspense.ts"; export { useGetPaginatedCommentsSuspense } from "./comments/useGetPaginatedCommentsSuspense.ts"; -export { updateComment } from "./comments/useUpdateComment.ts"; export { updateCommentMutationKey } from "./comments/useUpdateComment.ts"; +export { updateComment } from "./comments/useUpdateComment.ts"; export { updateCommentMutationOptions } from "./comments/useUpdateComment.ts"; export { useUpdateComment } from "./comments/useUpdateComment.ts"; -export { healthcheck } from "./example/useHealthcheck.ts"; export { healthcheckQueryKey } from "./example/useHealthcheck.ts"; +export { healthcheck } from "./example/useHealthcheck.ts"; export { healthcheckQueryOptions } from "./example/useHealthcheck.ts"; export { useHealthcheck } from "./example/useHealthcheck.ts"; -export { healthcheckSuspense } from "./example/useHealthcheckSuspense.ts"; export { healthcheckSuspenseQueryKey } from "./example/useHealthcheckSuspense.ts"; +export { healthcheckSuspense } from "./example/useHealthcheckSuspense.ts"; export { healthcheckSuspenseQueryOptions } from "./example/useHealthcheckSuspense.ts"; export { useHealthcheckSuspense } from "./example/useHealthcheckSuspense.ts"; -export { checkS3Health } from "./files/useCheckS3Health.ts"; export { checkS3HealthQueryKey } from "./files/useCheckS3Health.ts"; +export { checkS3Health } from "./files/useCheckS3Health.ts"; export { checkS3HealthQueryOptions } from "./files/useCheckS3Health.ts"; export { useCheckS3Health } from "./files/useCheckS3Health.ts"; -export { checkS3HealthSuspense } from "./files/useCheckS3HealthSuspense.ts"; export { checkS3HealthSuspenseQueryKey } from "./files/useCheckS3HealthSuspense.ts"; +export { checkS3HealthSuspense } from "./files/useCheckS3HealthSuspense.ts"; export { checkS3HealthSuspenseQueryOptions } from "./files/useCheckS3HealthSuspense.ts"; export { useCheckS3HealthSuspense } from "./files/useCheckS3HealthSuspense.ts"; -export { confirmUpload } from "./files/useConfirmUpload.ts"; export { confirmUploadMutationKey } from "./files/useConfirmUpload.ts"; +export { confirmUpload } from "./files/useConfirmUpload.ts"; export { confirmUploadMutationOptions } from "./files/useConfirmUpload.ts"; export { useConfirmUpload } from "./files/useConfirmUpload.ts"; -export { createUploadURLs } from "./files/useCreateUploadURLs.ts"; export { createUploadURLsMutationKey } from "./files/useCreateUploadURLs.ts"; +export { createUploadURLs } from "./files/useCreateUploadURLs.ts"; export { createUploadURLsMutationOptions } from "./files/useCreateUploadURLs.ts"; export { useCreateUploadURLs } from "./files/useCreateUploadURLs.ts"; -export { deleteImage } from "./files/useDeleteImage.ts"; export { deleteImageMutationKey } from "./files/useDeleteImage.ts"; +export { deleteImage } from "./files/useDeleteImage.ts"; export { deleteImageMutationOptions } from "./files/useDeleteImage.ts"; export { useDeleteImage } from "./files/useDeleteImage.ts"; -export { getFile } from "./files/useGetFile.ts"; export { getFileQueryKey } from "./files/useGetFile.ts"; +export { getFile } from "./files/useGetFile.ts"; export { getFileQueryOptions } from "./files/useGetFile.ts"; export { useGetFile } from "./files/useGetFile.ts"; -export { getFileAllSizes } from "./files/useGetFileAllSizes.ts"; export { getFileAllSizesQueryKey } from "./files/useGetFileAllSizes.ts"; +export { getFileAllSizes } from "./files/useGetFileAllSizes.ts"; export { getFileAllSizesQueryOptions } from "./files/useGetFileAllSizes.ts"; export { useGetFileAllSizes } from "./files/useGetFileAllSizes.ts"; -export { getFileAllSizesSuspense } from "./files/useGetFileAllSizesSuspense.ts"; export { getFileAllSizesSuspenseQueryKey } from "./files/useGetFileAllSizesSuspense.ts"; +export { getFileAllSizesSuspense } from "./files/useGetFileAllSizesSuspense.ts"; export { getFileAllSizesSuspenseQueryOptions } from "./files/useGetFileAllSizesSuspense.ts"; export { useGetFileAllSizesSuspense } from "./files/useGetFileAllSizesSuspense.ts"; -export { getFileSuspense } from "./files/useGetFileSuspense.ts"; export { getFileSuspenseQueryKey } from "./files/useGetFileSuspense.ts"; +export { getFileSuspense } from "./files/useGetFileSuspense.ts"; export { getFileSuspenseQueryOptions } from "./files/useGetFileSuspense.ts"; export { useGetFileSuspense } from "./files/useGetFileSuspense.ts"; -export { addMember } from "./memberships/useAddMember.ts"; export { addMemberMutationKey } from "./memberships/useAddMember.ts"; +export { addMember } from "./memberships/useAddMember.ts"; export { addMemberMutationOptions } from "./memberships/useAddMember.ts"; export { useAddMember } from "./memberships/useAddMember.ts"; -export { demoteFromAdmin } from "./memberships/useDemoteFromAdmin.ts"; export { demoteFromAdminMutationKey } from "./memberships/useDemoteFromAdmin.ts"; +export { demoteFromAdmin } from "./memberships/useDemoteFromAdmin.ts"; export { demoteFromAdminMutationOptions } from "./memberships/useDemoteFromAdmin.ts"; export { useDemoteFromAdmin } from "./memberships/useDemoteFromAdmin.ts"; -export { getMembership } from "./memberships/useGetMembership.ts"; export { getMembershipQueryKey } from "./memberships/useGetMembership.ts"; +export { getMembership } from "./memberships/useGetMembership.ts"; export { getMembershipQueryOptions } from "./memberships/useGetMembership.ts"; export { useGetMembership } from "./memberships/useGetMembership.ts"; -export { getMembershipSuspense } from "./memberships/useGetMembershipSuspense.ts"; export { getMembershipSuspenseQueryKey } from "./memberships/useGetMembershipSuspense.ts"; +export { getMembershipSuspense } from "./memberships/useGetMembershipSuspense.ts"; export { getMembershipSuspenseQueryOptions } from "./memberships/useGetMembershipSuspense.ts"; export { useGetMembershipSuspense } from "./memberships/useGetMembershipSuspense.ts"; -export { getTripMembers } from "./memberships/useGetTripMembers.ts"; export { getTripMembersQueryKey } from "./memberships/useGetTripMembers.ts"; +export { getTripMembers } from "./memberships/useGetTripMembers.ts"; export { getTripMembersQueryOptions } from "./memberships/useGetTripMembers.ts"; export { useGetTripMembers } from "./memberships/useGetTripMembers.ts"; -export { getTripMembersSuspense } from "./memberships/useGetTripMembersSuspense.ts"; export { getTripMembersSuspenseQueryKey } from "./memberships/useGetTripMembersSuspense.ts"; +export { getTripMembersSuspense } from "./memberships/useGetTripMembersSuspense.ts"; export { getTripMembersSuspenseQueryOptions } from "./memberships/useGetTripMembersSuspense.ts"; export { useGetTripMembersSuspense } from "./memberships/useGetTripMembersSuspense.ts"; -export { joinTripByInvite } from "./memberships/useJoinTripByInvite.ts"; export { joinTripByInviteMutationKey } from "./memberships/useJoinTripByInvite.ts"; +export { joinTripByInvite } from "./memberships/useJoinTripByInvite.ts"; export { joinTripByInviteMutationOptions } from "./memberships/useJoinTripByInvite.ts"; export { useJoinTripByInvite } from "./memberships/useJoinTripByInvite.ts"; -export { promoteToAdmin } from "./memberships/usePromoteToAdmin.ts"; export { promoteToAdminMutationKey } from "./memberships/usePromoteToAdmin.ts"; +export { promoteToAdmin } from "./memberships/usePromoteToAdmin.ts"; export { promoteToAdminMutationOptions } from "./memberships/usePromoteToAdmin.ts"; export { usePromoteToAdmin } from "./memberships/usePromoteToAdmin.ts"; -export { removeMember } from "./memberships/useRemoveMember.ts"; export { removeMemberMutationKey } from "./memberships/useRemoveMember.ts"; +export { removeMember } from "./memberships/useRemoveMember.ts"; export { removeMemberMutationOptions } from "./memberships/useRemoveMember.ts"; export { useRemoveMember } from "./memberships/useRemoveMember.ts"; -export { updateMembership } from "./memberships/useUpdateMembership.ts"; export { updateMembershipMutationKey } from "./memberships/useUpdateMembership.ts"; +export { updateMembership } from "./memberships/useUpdateMembership.ts"; export { updateMembershipMutationOptions } from "./memberships/useUpdateMembership.ts"; export { useUpdateMembership } from "./memberships/useUpdateMembership.ts"; -export { sendBulkNotification } from "./notifications/useSendBulkNotification.ts"; export { sendBulkNotificationMutationKey } from "./notifications/useSendBulkNotification.ts"; +export { sendBulkNotification } from "./notifications/useSendBulkNotification.ts"; export { sendBulkNotificationMutationOptions } from "./notifications/useSendBulkNotification.ts"; export { useSendBulkNotification } from "./notifications/useSendBulkNotification.ts"; -export { sendNotification } from "./notifications/useSendNotification.ts"; export { sendNotificationMutationKey } from "./notifications/useSendNotification.ts"; +export { sendNotification } from "./notifications/useSendNotification.ts"; export { sendNotificationMutationOptions } from "./notifications/useSendNotification.ts"; export { useSendNotification } from "./notifications/useSendNotification.ts"; -export { createPitch } from "./pitches/useCreatePitch.ts"; export { createPitchMutationKey } from "./pitches/useCreatePitch.ts"; +export { createPitch } from "./pitches/useCreatePitch.ts"; export { createPitchMutationOptions } from "./pitches/useCreatePitch.ts"; export { useCreatePitch } from "./pitches/useCreatePitch.ts"; -export { deletePitch } from "./pitches/useDeletePitch.ts"; export { deletePitchMutationKey } from "./pitches/useDeletePitch.ts"; +export { deletePitch } from "./pitches/useDeletePitch.ts"; export { deletePitchMutationOptions } from "./pitches/useDeletePitch.ts"; export { useDeletePitch } from "./pitches/useDeletePitch.ts"; -export { getPitch } from "./pitches/useGetPitch.ts"; export { getPitchQueryKey } from "./pitches/useGetPitch.ts"; +export { getPitch } from "./pitches/useGetPitch.ts"; export { getPitchQueryOptions } from "./pitches/useGetPitch.ts"; export { useGetPitch } from "./pitches/useGetPitch.ts"; -export { getPitchSuspense } from "./pitches/useGetPitchSuspense.ts"; export { getPitchSuspenseQueryKey } from "./pitches/useGetPitchSuspense.ts"; +export { getPitchSuspense } from "./pitches/useGetPitchSuspense.ts"; export { getPitchSuspenseQueryOptions } from "./pitches/useGetPitchSuspense.ts"; export { useGetPitchSuspense } from "./pitches/useGetPitchSuspense.ts"; -export { listPitches } from "./pitches/useListPitches.ts"; export { listPitchesQueryKey } from "./pitches/useListPitches.ts"; +export { listPitches } from "./pitches/useListPitches.ts"; export { listPitchesQueryOptions } from "./pitches/useListPitches.ts"; export { useListPitches } from "./pitches/useListPitches.ts"; -export { listPitchesSuspense } from "./pitches/useListPitchesSuspense.ts"; export { listPitchesSuspenseQueryKey } from "./pitches/useListPitchesSuspense.ts"; +export { listPitchesSuspense } from "./pitches/useListPitchesSuspense.ts"; export { listPitchesSuspenseQueryOptions } from "./pitches/useListPitchesSuspense.ts"; export { useListPitchesSuspense } from "./pitches/useListPitchesSuspense.ts"; -export { updatePitch } from "./pitches/useUpdatePitch.ts"; export { updatePitchMutationKey } from "./pitches/useUpdatePitch.ts"; +export { updatePitch } from "./pitches/useUpdatePitch.ts"; export { updatePitchMutationOptions } from "./pitches/useUpdatePitch.ts"; export { useUpdatePitch } from "./pitches/useUpdatePitch.ts"; -export { getPlaceDetails } from "./places/useGetPlaceDetails.ts"; export { getPlaceDetailsMutationKey } from "./places/useGetPlaceDetails.ts"; +export { getPlaceDetails } from "./places/useGetPlaceDetails.ts"; export { getPlaceDetailsMutationOptions } from "./places/useGetPlaceDetails.ts"; export { useGetPlaceDetails } from "./places/useGetPlaceDetails.ts"; -export { googleMapsHealth } from "./places/useGoogleMapsHealth.ts"; export { googleMapsHealthQueryKey } from "./places/useGoogleMapsHealth.ts"; +export { googleMapsHealth } from "./places/useGoogleMapsHealth.ts"; export { googleMapsHealthQueryOptions } from "./places/useGoogleMapsHealth.ts"; export { useGoogleMapsHealth } from "./places/useGoogleMapsHealth.ts"; -export { googleMapsHealthSuspense } from "./places/useGoogleMapsHealthSuspense.ts"; export { googleMapsHealthSuspenseQueryKey } from "./places/useGoogleMapsHealthSuspense.ts"; +export { googleMapsHealthSuspense } from "./places/useGoogleMapsHealthSuspense.ts"; export { googleMapsHealthSuspenseQueryOptions } from "./places/useGoogleMapsHealthSuspense.ts"; export { useGoogleMapsHealthSuspense } from "./places/useGoogleMapsHealthSuspense.ts"; -export { typeaheadPlaces } from "./places/useTypeaheadPlaces.ts"; export { typeaheadPlacesQueryKey } from "./places/useTypeaheadPlaces.ts"; +export { typeaheadPlaces } from "./places/useTypeaheadPlaces.ts"; export { typeaheadPlacesQueryOptions } from "./places/useTypeaheadPlaces.ts"; export { useTypeaheadPlaces } from "./places/useTypeaheadPlaces.ts"; -export { typeaheadPlacesSuspense } from "./places/useTypeaheadPlacesSuspense.ts"; export { typeaheadPlacesSuspenseQueryKey } from "./places/useTypeaheadPlacesSuspense.ts"; +export { typeaheadPlacesSuspense } from "./places/useTypeaheadPlacesSuspense.ts"; export { typeaheadPlacesSuspenseQueryOptions } from "./places/useTypeaheadPlacesSuspense.ts"; export { useTypeaheadPlacesSuspense } from "./places/useTypeaheadPlacesSuspense.ts"; -export { addPollOption } from "./polls/useAddPollOption.ts"; export { addPollOptionMutationKey } from "./polls/useAddPollOption.ts"; +export { addPollOption } from "./polls/useAddPollOption.ts"; export { addPollOptionMutationOptions } from "./polls/useAddPollOption.ts"; export { useAddPollOption } from "./polls/useAddPollOption.ts"; -export { addRankPollOption } from "./polls/useAddRankPollOption.ts"; export { addRankPollOptionMutationKey } from "./polls/useAddRankPollOption.ts"; +export { addRankPollOption } from "./polls/useAddRankPollOption.ts"; export { addRankPollOptionMutationOptions } from "./polls/useAddRankPollOption.ts"; export { useAddRankPollOption } from "./polls/useAddRankPollOption.ts"; -export { castVote } from "./polls/useCastVote.ts"; export { castVoteMutationKey } from "./polls/useCastVote.ts"; +export { castVote } from "./polls/useCastVote.ts"; export { castVoteMutationOptions } from "./polls/useCastVote.ts"; export { useCastVote } from "./polls/useCastVote.ts"; -export { createPoll } from "./polls/useCreatePoll.ts"; export { createPollMutationKey } from "./polls/useCreatePoll.ts"; +export { createPoll } from "./polls/useCreatePoll.ts"; export { createPollMutationOptions } from "./polls/useCreatePoll.ts"; export { useCreatePoll } from "./polls/useCreatePoll.ts"; -export { createRankPoll } from "./polls/useCreateRankPoll.ts"; export { createRankPollMutationKey } from "./polls/useCreateRankPoll.ts"; +export { createRankPoll } from "./polls/useCreateRankPoll.ts"; export { createRankPollMutationOptions } from "./polls/useCreateRankPoll.ts"; export { useCreateRankPoll } from "./polls/useCreateRankPoll.ts"; -export { deletePoll } from "./polls/useDeletePoll.ts"; export { deletePollMutationKey } from "./polls/useDeletePoll.ts"; +export { deletePoll } from "./polls/useDeletePoll.ts"; export { deletePollMutationOptions } from "./polls/useDeletePoll.ts"; export { useDeletePoll } from "./polls/useDeletePoll.ts"; -export { deletePollOption } from "./polls/useDeletePollOption.ts"; export { deletePollOptionMutationKey } from "./polls/useDeletePollOption.ts"; +export { deletePollOption } from "./polls/useDeletePollOption.ts"; export { deletePollOptionMutationOptions } from "./polls/useDeletePollOption.ts"; export { useDeletePollOption } from "./polls/useDeletePollOption.ts"; -export { deleteRankPoll } from "./polls/useDeleteRankPoll.ts"; export { deleteRankPollMutationKey } from "./polls/useDeleteRankPoll.ts"; +export { deleteRankPoll } from "./polls/useDeleteRankPoll.ts"; export { deleteRankPollMutationOptions } from "./polls/useDeleteRankPoll.ts"; export { useDeleteRankPoll } from "./polls/useDeleteRankPoll.ts"; -export { deleteRankPollOption } from "./polls/useDeleteRankPollOption.ts"; export { deleteRankPollOptionMutationKey } from "./polls/useDeleteRankPollOption.ts"; +export { deleteRankPollOption } from "./polls/useDeleteRankPollOption.ts"; export { deleteRankPollOptionMutationOptions } from "./polls/useDeleteRankPollOption.ts"; export { useDeleteRankPollOption } from "./polls/useDeleteRankPollOption.ts"; -export { getPoll } from "./polls/useGetPoll.ts"; export { getPollQueryKey } from "./polls/useGetPoll.ts"; +export { getPoll } from "./polls/useGetPoll.ts"; export { getPollQueryOptions } from "./polls/useGetPoll.ts"; export { useGetPoll } from "./polls/useGetPoll.ts"; -export { getPollSuspense } from "./polls/useGetPollSuspense.ts"; -export { getPollSuspenseQueryKey } from "./polls/useGetPollSuspense.ts"; -export { getPollSuspenseQueryOptions } from "./polls/useGetPollSuspense.ts"; -export { useGetPollSuspense } from "./polls/useGetPollSuspense.ts"; -export { getPollsByTripID } from "./polls/useGetPollsByTripID.ts"; export { getPollsByTripIDQueryKey } from "./polls/useGetPollsByTripID.ts"; +export { getPollsByTripID } from "./polls/useGetPollsByTripID.ts"; export { getPollsByTripIDQueryOptions } from "./polls/useGetPollsByTripID.ts"; export { useGetPollsByTripID } from "./polls/useGetPollsByTripID.ts"; -export { getPollsByTripIDSuspense } from "./polls/useGetPollsByTripIDSuspense.ts"; export { getPollsByTripIDSuspenseQueryKey } from "./polls/useGetPollsByTripIDSuspense.ts"; +export { getPollsByTripIDSuspense } from "./polls/useGetPollsByTripIDSuspense.ts"; export { getPollsByTripIDSuspenseQueryOptions } from "./polls/useGetPollsByTripIDSuspense.ts"; export { useGetPollsByTripIDSuspense } from "./polls/useGetPollsByTripIDSuspense.ts"; -export { getRankPollResults } from "./polls/useGetRankPollResults.ts"; +export { getPollSuspenseQueryKey } from "./polls/useGetPollSuspense.ts"; +export { getPollSuspense } from "./polls/useGetPollSuspense.ts"; +export { getPollSuspenseQueryOptions } from "./polls/useGetPollSuspense.ts"; +export { useGetPollSuspense } from "./polls/useGetPollSuspense.ts"; export { getRankPollResultsQueryKey } from "./polls/useGetRankPollResults.ts"; +export { getRankPollResults } from "./polls/useGetRankPollResults.ts"; export { getRankPollResultsQueryOptions } from "./polls/useGetRankPollResults.ts"; export { useGetRankPollResults } from "./polls/useGetRankPollResults.ts"; -export { getRankPollResultsSuspense } from "./polls/useGetRankPollResultsSuspense.ts"; export { getRankPollResultsSuspenseQueryKey } from "./polls/useGetRankPollResultsSuspense.ts"; +export { getRankPollResultsSuspense } from "./polls/useGetRankPollResultsSuspense.ts"; export { getRankPollResultsSuspenseQueryOptions } from "./polls/useGetRankPollResultsSuspense.ts"; export { useGetRankPollResultsSuspense } from "./polls/useGetRankPollResultsSuspense.ts"; -export { getRankPollVoters } from "./polls/useGetRankPollVoters.ts"; export { getRankPollVotersQueryKey } from "./polls/useGetRankPollVoters.ts"; +export { getRankPollVoters } from "./polls/useGetRankPollVoters.ts"; export { getRankPollVotersQueryOptions } from "./polls/useGetRankPollVoters.ts"; export { useGetRankPollVoters } from "./polls/useGetRankPollVoters.ts"; -export { getRankPollVotersSuspense } from "./polls/useGetRankPollVotersSuspense.ts"; export { getRankPollVotersSuspenseQueryKey } from "./polls/useGetRankPollVotersSuspense.ts"; +export { getRankPollVotersSuspense } from "./polls/useGetRankPollVotersSuspense.ts"; export { getRankPollVotersSuspenseQueryOptions } from "./polls/useGetRankPollVotersSuspense.ts"; export { useGetRankPollVotersSuspense } from "./polls/useGetRankPollVotersSuspense.ts"; -export { submitRanking } from "./polls/useSubmitRanking.ts"; export { submitRankingMutationKey } from "./polls/useSubmitRanking.ts"; +export { submitRanking } from "./polls/useSubmitRanking.ts"; export { submitRankingMutationOptions } from "./polls/useSubmitRanking.ts"; export { useSubmitRanking } from "./polls/useSubmitRanking.ts"; -export { updatePoll } from "./polls/useUpdatePoll.ts"; export { updatePollMutationKey } from "./polls/useUpdatePoll.ts"; +export { updatePoll } from "./polls/useUpdatePoll.ts"; export { updatePollMutationOptions } from "./polls/useUpdatePoll.ts"; export { useUpdatePoll } from "./polls/useUpdatePoll.ts"; -export { updateRankPoll } from "./polls/useUpdateRankPoll.ts"; export { updateRankPollMutationKey } from "./polls/useUpdateRankPoll.ts"; +export { updateRankPoll } from "./polls/useUpdateRankPoll.ts"; export { updateRankPollMutationOptions } from "./polls/useUpdateRankPoll.ts"; export { useUpdateRankPoll } from "./polls/useUpdateRankPoll.ts"; -export { searchActivities } from "./search/useSearchActivities.ts"; export { searchActivitiesQueryKey } from "./search/useSearchActivities.ts"; +export { searchActivities } from "./search/useSearchActivities.ts"; export { searchActivitiesQueryOptions } from "./search/useSearchActivities.ts"; export { useSearchActivities } from "./search/useSearchActivities.ts"; -export { searchActivitiesSuspense } from "./search/useSearchActivitiesSuspense.ts"; export { searchActivitiesSuspenseQueryKey } from "./search/useSearchActivitiesSuspense.ts"; +export { searchActivitiesSuspense } from "./search/useSearchActivitiesSuspense.ts"; export { searchActivitiesSuspenseQueryOptions } from "./search/useSearchActivitiesSuspense.ts"; export { useSearchActivitiesSuspense } from "./search/useSearchActivitiesSuspense.ts"; -export { searchTripMembers } from "./search/useSearchTripMembers.ts"; export { searchTripMembersQueryKey } from "./search/useSearchTripMembers.ts"; +export { searchTripMembers } from "./search/useSearchTripMembers.ts"; export { searchTripMembersQueryOptions } from "./search/useSearchTripMembers.ts"; export { useSearchTripMembers } from "./search/useSearchTripMembers.ts"; -export { searchTripMembersSuspense } from "./search/useSearchTripMembersSuspense.ts"; export { searchTripMembersSuspenseQueryKey } from "./search/useSearchTripMembersSuspense.ts"; +export { searchTripMembersSuspense } from "./search/useSearchTripMembersSuspense.ts"; export { searchTripMembersSuspenseQueryOptions } from "./search/useSearchTripMembersSuspense.ts"; export { useSearchTripMembersSuspense } from "./search/useSearchTripMembersSuspense.ts"; -export { searchTrips } from "./search/useSearchTrips.ts"; export { searchTripsQueryKey } from "./search/useSearchTrips.ts"; +export { searchTrips } from "./search/useSearchTrips.ts"; export { searchTripsQueryOptions } from "./search/useSearchTrips.ts"; export { useSearchTrips } from "./search/useSearchTrips.ts"; -export { searchTripsSuspense } from "./search/useSearchTripsSuspense.ts"; export { searchTripsSuspenseQueryKey } from "./search/useSearchTripsSuspense.ts"; +export { searchTripsSuspense } from "./search/useSearchTripsSuspense.ts"; export { searchTripsSuspenseQueryOptions } from "./search/useSearchTripsSuspense.ts"; export { useSearchTripsSuspense } from "./search/useSearchTripsSuspense.ts"; -export { createTrip } from "./trips/useCreateTrip.ts"; export { createTripMutationKey } from "./trips/useCreateTrip.ts"; +export { createTrip } from "./trips/useCreateTrip.ts"; export { createTripMutationOptions } from "./trips/useCreateTrip.ts"; export { useCreateTrip } from "./trips/useCreateTrip.ts"; -export { createTripInvite } from "./trips/useCreateTripInvite.ts"; export { createTripInviteMutationKey } from "./trips/useCreateTripInvite.ts"; +export { createTripInvite } from "./trips/useCreateTripInvite.ts"; export { createTripInviteMutationOptions } from "./trips/useCreateTripInvite.ts"; export { useCreateTripInvite } from "./trips/useCreateTripInvite.ts"; -export { deleteTrip } from "./trips/useDeleteTrip.ts"; export { deleteTripMutationKey } from "./trips/useDeleteTrip.ts"; +export { deleteTrip } from "./trips/useDeleteTrip.ts"; export { deleteTripMutationOptions } from "./trips/useDeleteTrip.ts"; export { useDeleteTrip } from "./trips/useDeleteTrip.ts"; -export { getAllTrips } from "./trips/useGetAllTrips.ts"; export { getAllTripsQueryKey } from "./trips/useGetAllTrips.ts"; +export { getAllTrips } from "./trips/useGetAllTrips.ts"; export { getAllTripsQueryOptions } from "./trips/useGetAllTrips.ts"; export { useGetAllTrips } from "./trips/useGetAllTrips.ts"; -export { getAllTripsSuspense } from "./trips/useGetAllTripsSuspense.ts"; export { getAllTripsSuspenseQueryKey } from "./trips/useGetAllTripsSuspense.ts"; +export { getAllTripsSuspense } from "./trips/useGetAllTripsSuspense.ts"; export { getAllTripsSuspenseQueryOptions } from "./trips/useGetAllTripsSuspense.ts"; export { useGetAllTripsSuspense } from "./trips/useGetAllTripsSuspense.ts"; -export { getTrip } from "./trips/useGetTrip.ts"; export { getTripQueryKey } from "./trips/useGetTrip.ts"; +export { getTrip } from "./trips/useGetTrip.ts"; export { getTripQueryOptions } from "./trips/useGetTrip.ts"; export { useGetTrip } from "./trips/useGetTrip.ts"; -export { getTripSuspense } from "./trips/useGetTripSuspense.ts"; export { getTripSuspenseQueryKey } from "./trips/useGetTripSuspense.ts"; +export { getTripSuspense } from "./trips/useGetTripSuspense.ts"; export { getTripSuspenseQueryOptions } from "./trips/useGetTripSuspense.ts"; export { useGetTripSuspense } from "./trips/useGetTripSuspense.ts"; -export { updateTrip } from "./trips/useUpdateTrip.ts"; export { updateTripMutationKey } from "./trips/useUpdateTrip.ts"; +export { updateTrip } from "./trips/useUpdateTrip.ts"; export { updateTripMutationOptions } from "./trips/useUpdateTrip.ts"; export { useUpdateTrip } from "./trips/useUpdateTrip.ts"; -export { createUser } from "./users/useCreateUser.ts"; export { createUserMutationKey } from "./users/useCreateUser.ts"; +export { createUser } from "./users/useCreateUser.ts"; export { createUserMutationOptions } from "./users/useCreateUser.ts"; export { useCreateUser } from "./users/useCreateUser.ts"; -export { deleteUser } from "./users/useDeleteUser.ts"; export { deleteUserMutationKey } from "./users/useDeleteUser.ts"; +export { deleteUser } from "./users/useDeleteUser.ts"; export { deleteUserMutationOptions } from "./users/useDeleteUser.ts"; export { useDeleteUser } from "./users/useDeleteUser.ts"; -export { getCurrentUser } from "./users/useGetCurrentUser.ts"; export { getCurrentUserQueryKey } from "./users/useGetCurrentUser.ts"; +export { getCurrentUser } from "./users/useGetCurrentUser.ts"; export { getCurrentUserQueryOptions } from "./users/useGetCurrentUser.ts"; export { useGetCurrentUser } from "./users/useGetCurrentUser.ts"; -export { getCurrentUserSuspense } from "./users/useGetCurrentUserSuspense.ts"; export { getCurrentUserSuspenseQueryKey } from "./users/useGetCurrentUserSuspense.ts"; +export { getCurrentUserSuspense } from "./users/useGetCurrentUserSuspense.ts"; export { getCurrentUserSuspenseQueryOptions } from "./users/useGetCurrentUserSuspense.ts"; export { useGetCurrentUserSuspense } from "./users/useGetCurrentUserSuspense.ts"; -export { getUser } from "./users/useGetUser.ts"; export { getUserQueryKey } from "./users/useGetUser.ts"; +export { getUser } from "./users/useGetUser.ts"; export { getUserQueryOptions } from "./users/useGetUser.ts"; export { useGetUser } from "./users/useGetUser.ts"; -export { getUserSuspense } from "./users/useGetUserSuspense.ts"; export { getUserSuspenseQueryKey } from "./users/useGetUserSuspense.ts"; +export { getUserSuspense } from "./users/useGetUserSuspense.ts"; export { getUserSuspenseQueryOptions } from "./users/useGetUserSuspense.ts"; export { useGetUserSuspense } from "./users/useGetUserSuspense.ts"; -export { updateUser } from "./users/useUpdateUser.ts"; export { updateUserMutationKey } from "./users/useUpdateUser.ts"; +export { updateUser } from "./users/useUpdateUser.ts"; export { updateUserMutationOptions } from "./users/useUpdateUser.ts"; export { useUpdateUser } from "./users/useUpdateUser.ts"; diff --git a/frontend/api/memberships/useAddMember.ts b/frontend/api/memberships/useAddMember.ts index e22bfb00..cde4dba7 100644 --- a/frontend/api/memberships/useAddMember.ts +++ b/frontend/api/memberships/useAddMember.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { AddMemberMutationRequest, AddMemberMutationResponse, @@ -13,11 +18,6 @@ import type { AddMember422, AddMember500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const addMemberMutationKey = () => @@ -33,7 +33,7 @@ export type AddMemberMutationKey = ReturnType; export async function addMember( data: AddMemberMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -55,9 +55,9 @@ export async function addMember( return res.data; } -export function addMemberMutationOptions( +export function addMemberMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = addMemberMutationKey(); @@ -67,7 +67,7 @@ export function addMemberMutationOptions( AddMember400 | AddMember401 | AddMember422 | AddMember500 >, { data: AddMemberMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -92,7 +92,7 @@ export function useAddMember( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/memberships/useDemoteFromAdmin.ts b/frontend/api/memberships/useDemoteFromAdmin.ts index 81556cf3..e274deef 100644 --- a/frontend/api/memberships/useDemoteFromAdmin.ts +++ b/frontend/api/memberships/useDemoteFromAdmin.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DemoteFromAdminMutationResponse, DemoteFromAdminPathParams, @@ -13,11 +18,6 @@ import type { DemoteFromAdmin404, DemoteFromAdmin500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const demoteFromAdminMutationKey = () => @@ -35,7 +35,7 @@ export type DemoteFromAdminMutationKey = ReturnType< export async function demoteFromAdmin( tripID: DemoteFromAdminPathParams["tripID"], userID: DemoteFromAdminPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -56,8 +56,8 @@ export async function demoteFromAdmin( return res.data; } -export function demoteFromAdminMutationOptions( - config: Partial & { client?: Client } = {}, +export function demoteFromAdminMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = demoteFromAdminMutationKey(); return mutationOptions< @@ -72,7 +72,7 @@ export function demoteFromAdminMutationOptions( tripID: DemoteFromAdminPathParams["tripID"]; userID: DemoteFromAdminPathParams["userID"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, userID }) => { @@ -102,7 +102,7 @@ export function useDemoteFromAdmin( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useGetMembership.ts b/frontend/api/memberships/useGetMembership.ts index cbf374ea..5ccefb94 100644 --- a/frontend/api/memberships/useGetMembership.ts +++ b/frontend/api/memberships/useGetMembership.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetMembershipQueryResponse, GetMembershipPathParams, @@ -13,12 +19,6 @@ import type { GetMembership404, GetMembership500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getMembershipQueryKey = ( @@ -42,7 +42,7 @@ export type GetMembershipQueryKey = ReturnType; export async function getMembership( tripID: GetMembershipPathParams["tripID"], userID: GetMembershipPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -63,7 +63,7 @@ export async function getMembership( export function getMembershipQueryOptions( tripID: GetMembershipPathParams["tripID"], userID: GetMembershipPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getMembershipQueryKey(tripID, userID); return queryOptions< @@ -77,9 +77,7 @@ export function getMembershipQueryOptions( enabled: !!(tripID && userID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getMembership(tripID, userID, config); }, }); @@ -112,7 +110,7 @@ export function useGetMembership< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useGetMembershipSuspense.ts b/frontend/api/memberships/useGetMembershipSuspense.ts index bedf670b..8d478060 100644 --- a/frontend/api/memberships/useGetMembershipSuspense.ts +++ b/frontend/api/memberships/useGetMembershipSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetMembershipQueryResponse, GetMembershipPathParams, @@ -13,12 +19,6 @@ import type { GetMembership404, GetMembership500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getMembershipSuspenseQueryKey = ( @@ -44,7 +44,7 @@ export type GetMembershipSuspenseQueryKey = ReturnType< export async function getMembershipSuspense( tripID: GetMembershipPathParams["tripID"], userID: GetMembershipPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -65,7 +65,7 @@ export async function getMembershipSuspense( export function getMembershipSuspenseQueryOptions( tripID: GetMembershipPathParams["tripID"], userID: GetMembershipPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getMembershipSuspenseQueryKey(tripID, userID); return queryOptions< @@ -79,9 +79,7 @@ export function getMembershipSuspenseQueryOptions( enabled: !!(tripID && userID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getMembershipSuspense(tripID, userID, config); }, }); @@ -112,7 +110,7 @@ export function useGetMembershipSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useGetTripMembers.ts b/frontend/api/memberships/useGetTripMembers.ts index 8c2924d3..40f0530e 100644 --- a/frontend/api/memberships/useGetTripMembers.ts +++ b/frontend/api/memberships/useGetTripMembers.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetTripMembersQueryResponse, GetTripMembersPathParams, @@ -14,17 +20,11 @@ import type { GetTripMembers404, GetTripMembers500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getTripMembersQueryKey = ( tripID: GetTripMembersPathParams["tripID"], - params: GetTripMembersQueryParams = {}, + params?: GetTripMembersQueryParams, ) => [ { url: "/api/v1/trips/:tripID/memberships", params: { tripID: tripID } }, @@ -41,7 +41,7 @@ export type GetTripMembersQueryKey = ReturnType; export async function getTripMembers( tripID: GetTripMembersPathParams["tripID"], params?: GetTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -66,7 +66,7 @@ export async function getTripMembers( export function getTripMembersQueryOptions( tripID: GetTripMembersPathParams["tripID"], params?: GetTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getTripMembersQueryKey(tripID, params); return queryOptions< @@ -83,9 +83,7 @@ export function getTripMembersQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getTripMembers(tripID, params, config); }, }); @@ -118,7 +116,7 @@ export function useGetTripMembers< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useGetTripMembersSuspense.ts b/frontend/api/memberships/useGetTripMembersSuspense.ts index 12fdf893..68786b41 100644 --- a/frontend/api/memberships/useGetTripMembersSuspense.ts +++ b/frontend/api/memberships/useGetTripMembersSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetTripMembersQueryResponse, GetTripMembersPathParams, @@ -14,17 +20,11 @@ import type { GetTripMembers404, GetTripMembers500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getTripMembersSuspenseQueryKey = ( tripID: GetTripMembersPathParams["tripID"], - params: GetTripMembersQueryParams = {}, + params?: GetTripMembersQueryParams, ) => [ { url: "/api/v1/trips/:tripID/memberships", params: { tripID: tripID } }, @@ -43,7 +43,7 @@ export type GetTripMembersSuspenseQueryKey = ReturnType< export async function getTripMembersSuspense( tripID: GetTripMembersPathParams["tripID"], params?: GetTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -68,7 +68,7 @@ export async function getTripMembersSuspense( export function getTripMembersSuspenseQueryOptions( tripID: GetTripMembersPathParams["tripID"], params?: GetTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getTripMembersSuspenseQueryKey(tripID, params); return queryOptions< @@ -85,9 +85,7 @@ export function getTripMembersSuspenseQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getTripMembersSuspense(tripID, params, config); }, }); @@ -118,7 +116,7 @@ export function useGetTripMembersSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useJoinTripByInvite.ts b/frontend/api/memberships/useJoinTripByInvite.ts index 41579268..73d52f13 100644 --- a/frontend/api/memberships/useJoinTripByInvite.ts +++ b/frontend/api/memberships/useJoinTripByInvite.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { JoinTripByInviteMutationResponse, JoinTripByInvitePathParams, @@ -12,11 +17,6 @@ import type { JoinTripByInvite401, JoinTripByInvite500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const joinTripByInviteMutationKey = () => @@ -33,7 +33,7 @@ export type JoinTripByInviteMutationKey = ReturnType< */ export async function joinTripByInvite( code: JoinTripByInvitePathParams["code"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -51,8 +51,8 @@ export async function joinTripByInvite( return res.data; } -export function joinTripByInviteMutationOptions( - config: Partial & { client?: Client } = {}, +export function joinTripByInviteMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = joinTripByInviteMutationKey(); return mutationOptions< @@ -61,7 +61,7 @@ export function joinTripByInviteMutationOptions( JoinTripByInvite400 | JoinTripByInvite401 | JoinTripByInvite500 >, { code: JoinTripByInvitePathParams["code"] }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ code }) => { @@ -85,7 +85,7 @@ export function useJoinTripByInvite( { code: JoinTripByInvitePathParams["code"] }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/usePromoteToAdmin.ts b/frontend/api/memberships/usePromoteToAdmin.ts index 5c541ad7..90aaf796 100644 --- a/frontend/api/memberships/usePromoteToAdmin.ts +++ b/frontend/api/memberships/usePromoteToAdmin.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { PromoteToAdminMutationResponse, PromoteToAdminPathParams, @@ -13,11 +18,6 @@ import type { PromoteToAdmin404, PromoteToAdmin500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const promoteToAdminMutationKey = () => @@ -35,7 +35,7 @@ export type PromoteToAdminMutationKey = ReturnType< export async function promoteToAdmin( tripID: PromoteToAdminPathParams["tripID"], userID: PromoteToAdminPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -56,8 +56,8 @@ export async function promoteToAdmin( return res.data; } -export function promoteToAdminMutationOptions( - config: Partial & { client?: Client } = {}, +export function promoteToAdminMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = promoteToAdminMutationKey(); return mutationOptions< @@ -72,7 +72,7 @@ export function promoteToAdminMutationOptions( tripID: PromoteToAdminPathParams["tripID"]; userID: PromoteToAdminPathParams["userID"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, userID }) => { @@ -102,7 +102,7 @@ export function usePromoteToAdmin( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useRemoveMember.ts b/frontend/api/memberships/useRemoveMember.ts index 64555623..b2bf7750 100644 --- a/frontend/api/memberships/useRemoveMember.ts +++ b/frontend/api/memberships/useRemoveMember.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { RemoveMemberMutationResponse, RemoveMemberPathParams, @@ -13,11 +18,6 @@ import type { RemoveMember404, RemoveMember500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const removeMemberMutationKey = () => @@ -35,7 +35,7 @@ export type RemoveMemberMutationKey = ReturnType< export async function removeMember( tripID: RemoveMemberPathParams["tripID"], userID: RemoveMemberPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -53,8 +53,8 @@ export async function removeMember( return res.data; } -export function removeMemberMutationOptions( - config: Partial & { client?: Client } = {}, +export function removeMemberMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = removeMemberMutationKey(); return mutationOptions< @@ -66,7 +66,7 @@ export function removeMemberMutationOptions( tripID: RemoveMemberPathParams["tripID"]; userID: RemoveMemberPathParams["userID"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, userID }) => { @@ -93,7 +93,7 @@ export function useRemoveMember( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/memberships/useUpdateMembership.ts b/frontend/api/memberships/useUpdateMembership.ts index 3b05219d..1179f7d6 100644 --- a/frontend/api/memberships/useUpdateMembership.ts +++ b/frontend/api/memberships/useUpdateMembership.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdateMembershipMutationRequest, UpdateMembershipMutationResponse, @@ -15,11 +20,6 @@ import type { UpdateMembership422, UpdateMembership500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updateMembershipMutationKey = () => @@ -37,9 +37,9 @@ export type UpdateMembershipMutationKey = ReturnType< export async function updateMembership( tripID: UpdateMembershipPathParams["tripID"], userID: UpdateMembershipPathParams["userID"], - data: UpdateMembershipMutationRequest, + data?: UpdateMembershipMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -65,9 +65,9 @@ export async function updateMembership( return res.data; } -export function updateMembershipMutationOptions( +export function updateMembershipMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updateMembershipMutationKey(); @@ -83,9 +83,9 @@ export function updateMembershipMutationOptions( { tripID: UpdateMembershipPathParams["tripID"]; userID: UpdateMembershipPathParams["userID"]; - data: UpdateMembershipMutationRequest; + data?: UpdateMembershipMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, userID, data }) => { @@ -113,12 +113,12 @@ export function useUpdateMembership( { tripID: UpdateMembershipPathParams["tripID"]; userID: UpdateMembershipPathParams["userID"]; - data: UpdateMembershipMutationRequest; + data?: UpdateMembershipMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -141,7 +141,7 @@ export function useUpdateMembership( { tripID: UpdateMembershipPathParams["tripID"]; userID: UpdateMembershipPathParams["userID"]; - data: UpdateMembershipMutationRequest; + data?: UpdateMembershipMutationRequest; }, TContext >; @@ -158,7 +158,7 @@ export function useUpdateMembership( { tripID: UpdateMembershipPathParams["tripID"]; userID: UpdateMembershipPathParams["userID"]; - data: UpdateMembershipMutationRequest; + data?: UpdateMembershipMutationRequest; }, TContext >( @@ -180,7 +180,7 @@ export function useUpdateMembership( { tripID: UpdateMembershipPathParams["tripID"]; userID: UpdateMembershipPathParams["userID"]; - data: UpdateMembershipMutationRequest; + data?: UpdateMembershipMutationRequest; }, TContext >; diff --git a/frontend/api/notifications/useSendBulkNotification.ts b/frontend/api/notifications/useSendBulkNotification.ts index 5c5bc96a..eedd2e61 100644 --- a/frontend/api/notifications/useSendBulkNotification.ts +++ b/frontend/api/notifications/useSendBulkNotification.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { SendBulkNotificationMutationRequest, SendBulkNotificationMutationResponse, @@ -12,11 +17,6 @@ import type { SendBulkNotification422, SendBulkNotification500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const sendBulkNotificationMutationKey = () => @@ -34,7 +34,7 @@ export type SendBulkNotificationMutationKey = ReturnType< export async function sendBulkNotification( data: SendBulkNotificationMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -58,9 +58,9 @@ export async function sendBulkNotification( return res.data; } -export function sendBulkNotificationMutationOptions( +export function sendBulkNotificationMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = sendBulkNotificationMutationKey(); @@ -72,7 +72,7 @@ export function sendBulkNotificationMutationOptions( | SendBulkNotification500 >, { data: SendBulkNotificationMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -99,7 +99,7 @@ export function useSendBulkNotification( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/notifications/useSendNotification.ts b/frontend/api/notifications/useSendNotification.ts index e8c48b7a..89196a5c 100644 --- a/frontend/api/notifications/useSendNotification.ts +++ b/frontend/api/notifications/useSendNotification.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { SendNotificationMutationRequest, SendNotificationMutationResponse, @@ -12,11 +17,6 @@ import type { SendNotification422, SendNotification500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const sendNotificationMutationKey = () => @@ -34,7 +34,7 @@ export type SendNotificationMutationKey = ReturnType< export async function sendNotification( data: SendNotificationMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -56,9 +56,9 @@ export async function sendNotification( return res.data; } -export function sendNotificationMutationOptions( +export function sendNotificationMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = sendNotificationMutationKey(); @@ -68,7 +68,7 @@ export function sendNotificationMutationOptions( SendNotification400 | SendNotification422 | SendNotification500 >, { data: SendNotificationMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -93,7 +93,7 @@ export function useSendNotification( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/pitches/useCreatePitch.ts b/frontend/api/pitches/useCreatePitch.ts index c62d7d32..f1b72191 100644 --- a/frontend/api/pitches/useCreatePitch.ts +++ b/frontend/api/pitches/useCreatePitch.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreatePitchMutationRequest, CreatePitchMutationResponse, @@ -14,11 +19,6 @@ import type { CreatePitch422, CreatePitch500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createPitchMutationKey = () => @@ -27,7 +27,7 @@ export const createPitchMutationKey = () => export type CreatePitchMutationKey = ReturnType; /** - * @description Creates a new pitch for the trip and returns a presigned URL to upload the audio file + * @description Creates a new pitch for the trip and returns a presigned URL to upload the audio file.Optionally supply up to 5 confirmed image IDs (image_ids) in the request. The response includes images with presigned medium_url for each image. * @summary Create a pitch * {@link /api/v1/trips/:tripID/pitches} */ @@ -35,7 +35,7 @@ export async function createPitch( tripID: CreatePitchPathParams["tripID"], data: CreatePitchMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -57,9 +57,9 @@ export async function createPitch( return res.data; } -export function createPitchMutationOptions( +export function createPitchMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createPitchMutationKey(); @@ -72,7 +72,7 @@ export function createPitchMutationOptions( tripID: CreatePitchPathParams["tripID"]; data: CreatePitchMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, data }) => { @@ -82,7 +82,7 @@ export function createPitchMutationOptions( } /** - * @description Creates a new pitch for the trip and returns a presigned URL to upload the audio file + * @description Creates a new pitch for the trip and returns a presigned URL to upload the audio file.Optionally supply up to 5 confirmed image IDs (image_ids) in the request. The response includes images with presigned medium_url for each image. * @summary Create a pitch * {@link /api/v1/trips/:tripID/pitches} */ @@ -100,7 +100,7 @@ export function useCreatePitch( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/pitches/useDeletePitch.ts b/frontend/api/pitches/useDeletePitch.ts index 5ec30b10..fedf15e2 100644 --- a/frontend/api/pitches/useDeletePitch.ts +++ b/frontend/api/pitches/useDeletePitch.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeletePitchMutationResponse, DeletePitchPathParams, @@ -12,11 +17,6 @@ import type { DeletePitch404, DeletePitch500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deletePitchMutationKey = () => @@ -32,7 +32,7 @@ export type DeletePitchMutationKey = ReturnType; export async function deletePitch( tripID: DeletePitchPathParams["tripID"], pitchID: DeletePitchPathParams["pitchID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -48,8 +48,8 @@ export async function deletePitch( return res.data; } -export function deletePitchMutationOptions( - config: Partial & { client?: Client } = {}, +export function deletePitchMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deletePitchMutationKey(); return mutationOptions< @@ -59,7 +59,7 @@ export function deletePitchMutationOptions( tripID: DeletePitchPathParams["tripID"]; pitchID: DeletePitchPathParams["pitchID"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pitchID }) => { @@ -84,7 +84,7 @@ export function useDeletePitch( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/pitches/useGetPitch.ts b/frontend/api/pitches/useGetPitch.ts index 9e53f5c9..0ed66d58 100644 --- a/frontend/api/pitches/useGetPitch.ts +++ b/frontend/api/pitches/useGetPitch.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetPitchQueryResponse, GetPitchPathParams, @@ -12,12 +18,6 @@ import type { GetPitch404, GetPitch500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getPitchQueryKey = ( @@ -34,14 +34,14 @@ export const getPitchQueryKey = ( export type GetPitchQueryKey = ReturnType; /** - * @description Returns a single pitch with a presigned URL for the audio file + * @description Returns a single pitch with presigned URLs for the audio file and associated images (medium_url for each image) * @summary Get a pitch by ID * {@link /api/v1/trips/:tripID/pitches/:pitchID} */ export async function getPitch( tripID: GetPitchPathParams["tripID"], pitchID: GetPitchPathParams["pitchID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -60,7 +60,7 @@ export async function getPitch( export function getPitchQueryOptions( tripID: GetPitchPathParams["tripID"], pitchID: GetPitchPathParams["pitchID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPitchQueryKey(tripID, pitchID); return queryOptions< @@ -72,16 +72,14 @@ export function getPitchQueryOptions( enabled: !!(tripID && pitchID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPitch(tripID, pitchID, config); }, }); } /** - * @description Returns a single pitch with a presigned URL for the audio file + * @description Returns a single pitch with presigned URLs for the audio file and associated images (medium_url for each image) * @summary Get a pitch by ID * {@link /api/v1/trips/:tripID/pitches/:pitchID} */ @@ -102,7 +100,7 @@ export function useGetPitch< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/pitches/useGetPitchSuspense.ts b/frontend/api/pitches/useGetPitchSuspense.ts index fb7717b4..85486001 100644 --- a/frontend/api/pitches/useGetPitchSuspense.ts +++ b/frontend/api/pitches/useGetPitchSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetPitchQueryResponse, GetPitchPathParams, @@ -12,12 +18,6 @@ import type { GetPitch404, GetPitch500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getPitchSuspenseQueryKey = ( @@ -36,14 +36,14 @@ export type GetPitchSuspenseQueryKey = ReturnType< >; /** - * @description Returns a single pitch with a presigned URL for the audio file + * @description Returns a single pitch with presigned URLs for the audio file and associated images (medium_url for each image) * @summary Get a pitch by ID * {@link /api/v1/trips/:tripID/pitches/:pitchID} */ export async function getPitchSuspense( tripID: GetPitchPathParams["tripID"], pitchID: GetPitchPathParams["pitchID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -62,7 +62,7 @@ export async function getPitchSuspense( export function getPitchSuspenseQueryOptions( tripID: GetPitchPathParams["tripID"], pitchID: GetPitchPathParams["pitchID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPitchSuspenseQueryKey(tripID, pitchID); return queryOptions< @@ -74,16 +74,14 @@ export function getPitchSuspenseQueryOptions( enabled: !!(tripID && pitchID), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPitchSuspense(tripID, pitchID, config); }, }); } /** - * @description Returns a single pitch with a presigned URL for the audio file + * @description Returns a single pitch with presigned URLs for the audio file and associated images (medium_url for each image) * @summary Get a pitch by ID * {@link /api/v1/trips/:tripID/pitches/:pitchID} */ @@ -102,7 +100,7 @@ export function useGetPitchSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/pitches/useListPitches.ts b/frontend/api/pitches/useListPitches.ts index ca91db97..214e60de 100644 --- a/frontend/api/pitches/useListPitches.ts +++ b/frontend/api/pitches/useListPitches.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { ListPitchesQueryResponse, ListPitchesPathParams, @@ -13,17 +19,11 @@ import type { ListPitches404, ListPitches500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const listPitchesQueryKey = ( tripID: ListPitchesPathParams["tripID"], - params: ListPitchesQueryParams = {}, + params?: ListPitchesQueryParams, ) => [ { url: "/api/v1/trips/:tripID/pitches", params: { tripID: tripID } }, @@ -40,7 +40,7 @@ export type ListPitchesQueryKey = ReturnType; export async function listPitches( tripID: ListPitchesPathParams["tripID"], params?: ListPitchesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -60,7 +60,7 @@ export async function listPitches( export function listPitchesQueryOptions( tripID: ListPitchesPathParams["tripID"], params?: ListPitchesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = listPitchesQueryKey(tripID, params); return queryOptions< @@ -72,9 +72,7 @@ export function listPitchesQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return listPitches(tripID, params, config); }, }); @@ -102,7 +100,7 @@ export function useListPitches< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/pitches/useListPitchesSuspense.ts b/frontend/api/pitches/useListPitchesSuspense.ts index ce69bff3..38004d9d 100644 --- a/frontend/api/pitches/useListPitchesSuspense.ts +++ b/frontend/api/pitches/useListPitchesSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { ListPitchesQueryResponse, ListPitchesPathParams, @@ -13,17 +19,11 @@ import type { ListPitches404, ListPitches500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const listPitchesSuspenseQueryKey = ( tripID: ListPitchesPathParams["tripID"], - params: ListPitchesQueryParams = {}, + params?: ListPitchesQueryParams, ) => [ { url: "/api/v1/trips/:tripID/pitches", params: { tripID: tripID } }, @@ -42,7 +42,7 @@ export type ListPitchesSuspenseQueryKey = ReturnType< export async function listPitchesSuspense( tripID: ListPitchesPathParams["tripID"], params?: ListPitchesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -62,7 +62,7 @@ export async function listPitchesSuspense( export function listPitchesSuspenseQueryOptions( tripID: ListPitchesPathParams["tripID"], params?: ListPitchesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = listPitchesSuspenseQueryKey(tripID, params); return queryOptions< @@ -74,9 +74,7 @@ export function listPitchesSuspenseQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return listPitchesSuspense(tripID, params, config); }, }); @@ -102,7 +100,7 @@ export function useListPitchesSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/pitches/useUpdatePitch.ts b/frontend/api/pitches/useUpdatePitch.ts index ea9f9351..e1713c3e 100644 --- a/frontend/api/pitches/useUpdatePitch.ts +++ b/frontend/api/pitches/useUpdatePitch.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdatePitchMutationRequest, UpdatePitchMutationResponse, @@ -14,11 +19,6 @@ import type { UpdatePitch422, UpdatePitch500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updatePitchMutationKey = () => @@ -27,16 +27,16 @@ export const updatePitchMutationKey = () => export type UpdatePitchMutationKey = ReturnType; /** - * @description Updates pitch metadata (title, description, duration) + * @description Updates pitch metadata (title, description, duration).When image_ids is omitted from the request, existing image associations remain unchanged.When image_ids is an empty array, all image associations are removed.When image_ids is a non-empty array, the provided IDs are added to existing associations (additive, not replacement).The response includes images with presigned medium_url for each image. * @summary Update a pitch * {@link /api/v1/trips/:tripID/pitches/:pitchID} */ export async function updatePitch( tripID: UpdatePitchPathParams["tripID"], pitchID: UpdatePitchPathParams["pitchID"], - data: UpdatePitchMutationRequest, + data?: UpdatePitchMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -58,9 +58,9 @@ export async function updatePitch( return res.data; } -export function updatePitchMutationOptions( +export function updatePitchMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updatePitchMutationKey(); @@ -72,9 +72,9 @@ export function updatePitchMutationOptions( { tripID: UpdatePitchPathParams["tripID"]; pitchID: UpdatePitchPathParams["pitchID"]; - data: UpdatePitchMutationRequest; + data?: UpdatePitchMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pitchID, data }) => { @@ -84,7 +84,7 @@ export function updatePitchMutationOptions( } /** - * @description Updates pitch metadata (title, description, duration) + * @description Updates pitch metadata (title, description, duration).When image_ids is omitted from the request, existing image associations remain unchanged.When image_ids is an empty array, all image associations are removed.When image_ids is a non-empty array, the provided IDs are added to existing associations (additive, not replacement).The response includes images with presigned medium_url for each image. * @summary Update a pitch * {@link /api/v1/trips/:tripID/pitches/:pitchID} */ @@ -98,12 +98,12 @@ export function useUpdatePitch( { tripID: UpdatePitchPathParams["tripID"]; pitchID: UpdatePitchPathParams["pitchID"]; - data: UpdatePitchMutationRequest; + data?: UpdatePitchMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -119,7 +119,7 @@ export function useUpdatePitch( { tripID: UpdatePitchPathParams["tripID"]; pitchID: UpdatePitchPathParams["pitchID"]; - data: UpdatePitchMutationRequest; + data?: UpdatePitchMutationRequest; }, TContext >; @@ -132,7 +132,7 @@ export function useUpdatePitch( { tripID: UpdatePitchPathParams["tripID"]; pitchID: UpdatePitchPathParams["pitchID"]; - data: UpdatePitchMutationRequest; + data?: UpdatePitchMutationRequest; }, TContext >( @@ -150,7 +150,7 @@ export function useUpdatePitch( { tripID: UpdatePitchPathParams["tripID"]; pitchID: UpdatePitchPathParams["pitchID"]; - data: UpdatePitchMutationRequest; + data?: UpdatePitchMutationRequest; }, TContext >; diff --git a/frontend/api/places/useGetPlaceDetails.ts b/frontend/api/places/useGetPlaceDetails.ts index bc55e5c3..052d321d 100644 --- a/frontend/api/places/useGetPlaceDetails.ts +++ b/frontend/api/places/useGetPlaceDetails.ts @@ -4,18 +4,18 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { GetPlaceDetailsMutationRequest, GetPlaceDetailsMutationResponse, GetPlaceDetails400, GetPlaceDetails500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const getPlaceDetailsMutationKey = () => @@ -31,9 +31,9 @@ export type GetPlaceDetailsMutationKey = ReturnType< * {@link /api/v1/search/places/details} */ export async function getPlaceDetails( - data: GetPlaceDetailsMutationRequest, + data?: GetPlaceDetailsMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -53,17 +53,17 @@ export async function getPlaceDetails( return res.data; } -export function getPlaceDetailsMutationOptions( +export function getPlaceDetailsMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = getPlaceDetailsMutationKey(); return mutationOptions< GetPlaceDetailsMutationResponse, ResponseErrorConfig, - { data: GetPlaceDetailsMutationRequest }, - TContext + { data?: GetPlaceDetailsMutationRequest }, + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -82,11 +82,11 @@ export function useGetPlaceDetails( mutation?: UseMutationOptions< GetPlaceDetailsMutationResponse, ResponseErrorConfig, - { data: GetPlaceDetailsMutationRequest }, + { data?: GetPlaceDetailsMutationRequest }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -100,14 +100,14 @@ export function useGetPlaceDetails( ) as UseMutationOptions< GetPlaceDetailsMutationResponse, ResponseErrorConfig, - { data: GetPlaceDetailsMutationRequest }, + { data?: GetPlaceDetailsMutationRequest }, TContext >; return useMutation< GetPlaceDetailsMutationResponse, ResponseErrorConfig, - { data: GetPlaceDetailsMutationRequest }, + { data?: GetPlaceDetailsMutationRequest }, TContext >( { @@ -119,7 +119,7 @@ export function useGetPlaceDetails( ) as UseMutationResult< GetPlaceDetailsMutationResponse, ResponseErrorConfig, - { data: GetPlaceDetailsMutationRequest }, + { data?: GetPlaceDetailsMutationRequest }, TContext >; } diff --git a/frontend/api/places/useGoogleMapsHealth.ts b/frontend/api/places/useGoogleMapsHealth.ts index 59ac1137..481987d1 100644 --- a/frontend/api/places/useGoogleMapsHealth.ts +++ b/frontend/api/places/useGoogleMapsHealth.ts @@ -4,17 +4,17 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - GoogleMapsHealthQueryResponse, - GoogleMapsHealth500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, QueryObserverOptions, UseQueryResult, } from "@tanstack/react-query"; +import type { + GoogleMapsHealthQueryResponse, + GoogleMapsHealth500, +} from "../../types/types.gen.ts"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const googleMapsHealthQueryKey = () => @@ -30,7 +30,7 @@ export type GoogleMapsHealthQueryKey = ReturnType< * {@link /api/v1/search/places/health} */ export async function googleMapsHealth( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -43,7 +43,7 @@ export async function googleMapsHealth( } export function googleMapsHealthQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = googleMapsHealthQueryKey(); return queryOptions< @@ -54,9 +54,7 @@ export function googleMapsHealthQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return googleMapsHealth(config); }, }); @@ -82,7 +80,7 @@ export function useGoogleMapsHealth< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/places/useGoogleMapsHealthSuspense.ts b/frontend/api/places/useGoogleMapsHealthSuspense.ts index a16b96b6..16ad256e 100644 --- a/frontend/api/places/useGoogleMapsHealthSuspense.ts +++ b/frontend/api/places/useGoogleMapsHealthSuspense.ts @@ -4,17 +4,17 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - GoogleMapsHealthQueryResponse, - GoogleMapsHealth500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, UseSuspenseQueryOptions, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import type { + GoogleMapsHealthQueryResponse, + GoogleMapsHealth500, +} from "../../types/types.gen.ts"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const googleMapsHealthSuspenseQueryKey = () => @@ -30,7 +30,7 @@ export type GoogleMapsHealthSuspenseQueryKey = ReturnType< * {@link /api/v1/search/places/health} */ export async function googleMapsHealthSuspense( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -43,7 +43,7 @@ export async function googleMapsHealthSuspense( } export function googleMapsHealthSuspenseQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = googleMapsHealthSuspenseQueryKey(); return queryOptions< @@ -54,9 +54,7 @@ export function googleMapsHealthSuspenseQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return googleMapsHealthSuspense(config); }, }); @@ -80,7 +78,7 @@ export function useGoogleMapsHealthSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/places/useTypeaheadPlaces.ts b/frontend/api/places/useTypeaheadPlaces.ts index f95d1cd2..7c15dedd 100644 --- a/frontend/api/places/useTypeaheadPlaces.ts +++ b/frontend/api/places/useTypeaheadPlaces.ts @@ -4,19 +4,19 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - TypeaheadPlacesQueryResponse, - TypeaheadPlacesQueryParams, - TypeaheadPlaces400, - TypeaheadPlaces500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, QueryObserverOptions, UseQueryResult, } from "@tanstack/react-query"; +import type { + TypeaheadPlacesQueryResponse, + TypeaheadPlacesQueryParams, + TypeaheadPlaces400, + TypeaheadPlaces500, +} from "../../types/types.gen.ts"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const typeaheadPlacesQueryKey = (params: TypeaheadPlacesQueryParams) => @@ -36,7 +36,7 @@ export type TypeaheadPlacesQueryKey = ReturnType< */ export async function typeaheadPlaces( params: TypeaheadPlacesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -55,7 +55,7 @@ export async function typeaheadPlaces( export function typeaheadPlacesQueryOptions( params: TypeaheadPlacesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = typeaheadPlacesQueryKey(params); return queryOptions< @@ -67,9 +67,7 @@ export function typeaheadPlacesQueryOptions( enabled: !!params, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return typeaheadPlaces(params, config); }, }); @@ -96,7 +94,7 @@ export function useTypeaheadPlaces< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/places/useTypeaheadPlacesSuspense.ts b/frontend/api/places/useTypeaheadPlacesSuspense.ts index 510b48dc..72467a7c 100644 --- a/frontend/api/places/useTypeaheadPlacesSuspense.ts +++ b/frontend/api/places/useTypeaheadPlacesSuspense.ts @@ -4,19 +4,19 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - TypeaheadPlacesQueryResponse, - TypeaheadPlacesQueryParams, - TypeaheadPlaces400, - TypeaheadPlaces500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, UseSuspenseQueryOptions, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import type { + TypeaheadPlacesQueryResponse, + TypeaheadPlacesQueryParams, + TypeaheadPlaces400, + TypeaheadPlaces500, +} from "../../types/types.gen.ts"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const typeaheadPlacesSuspenseQueryKey = ( @@ -38,7 +38,7 @@ export type TypeaheadPlacesSuspenseQueryKey = ReturnType< */ export async function typeaheadPlacesSuspense( params: TypeaheadPlacesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -57,7 +57,7 @@ export async function typeaheadPlacesSuspense( export function typeaheadPlacesSuspenseQueryOptions( params: TypeaheadPlacesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = typeaheadPlacesSuspenseQueryKey(params); return queryOptions< @@ -69,9 +69,7 @@ export function typeaheadPlacesSuspenseQueryOptions( enabled: !!params, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return typeaheadPlacesSuspense(params, config); }, }); @@ -96,7 +94,7 @@ export function useTypeaheadPlacesSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useAddPollOption.ts b/frontend/api/polls/useAddPollOption.ts index 12cd6577..f0ab2a3a 100644 --- a/frontend/api/polls/useAddPollOption.ts +++ b/frontend/api/polls/useAddPollOption.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { AddPollOptionMutationRequest, AddPollOptionMutationResponse, @@ -17,11 +22,6 @@ import type { AddPollOption422, AddPollOption500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const addPollOptionMutationKey = () => @@ -41,7 +41,7 @@ export async function addPollOption( pollId: AddPollOptionPathParams["pollId"], data: AddPollOptionMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -69,9 +69,9 @@ export async function addPollOption( return res.data; } -export function addPollOptionMutationOptions( +export function addPollOptionMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = addPollOptionMutationKey(); @@ -91,7 +91,7 @@ export function addPollOptionMutationOptions( pollId: AddPollOptionPathParams["pollId"]; data: AddPollOptionMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, data }) => { @@ -126,7 +126,7 @@ export function useAddPollOption( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/polls/useAddRankPollOption.ts b/frontend/api/polls/useAddRankPollOption.ts index 9f618562..f0abc3a3 100644 --- a/frontend/api/polls/useAddRankPollOption.ts +++ b/frontend/api/polls/useAddRankPollOption.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { AddRankPollOptionMutationRequest, AddRankPollOptionMutationResponse, @@ -17,11 +22,6 @@ import type { AddRankPollOption422, AddRankPollOption500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const addRankPollOptionMutationKey = () => @@ -41,7 +41,7 @@ export async function addRankPollOption( pollId: AddRankPollOptionPathParams["pollId"], data: AddRankPollOptionMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -69,9 +69,9 @@ export async function addRankPollOption( return res.data; } -export function addRankPollOptionMutationOptions( +export function addRankPollOptionMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = addRankPollOptionMutationKey(); @@ -91,7 +91,7 @@ export function addRankPollOptionMutationOptions( pollId: AddRankPollOptionPathParams["pollId"]; data: AddRankPollOptionMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, data }) => { @@ -126,7 +126,7 @@ export function useAddRankPollOption( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/polls/useCastVote.ts b/frontend/api/polls/useCastVote.ts index e0cd8be9..36412c66 100644 --- a/frontend/api/polls/useCastVote.ts +++ b/frontend/api/polls/useCastVote.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CastVoteMutationRequest, CastVoteMutationResponse, @@ -16,11 +21,6 @@ import type { CastVote422, CastVote500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const castVoteMutationKey = () => @@ -36,9 +36,9 @@ export type CastVoteMutationKey = ReturnType; export async function castVote( tripID: CastVotePathParams["tripID"], pollId: CastVotePathParams["pollId"], - data: CastVoteMutationRequest, + data?: CastVoteMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -65,9 +65,9 @@ export async function castVote( return res.data; } -export function castVoteMutationOptions( +export function castVoteMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = castVoteMutationKey(); @@ -84,9 +84,9 @@ export function castVoteMutationOptions( { tripID: CastVotePathParams["tripID"]; pollId: CastVotePathParams["pollId"]; - data: CastVoteMutationRequest; + data?: CastVoteMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, data }) => { @@ -115,12 +115,12 @@ export function useCastVote( { tripID: CastVotePathParams["tripID"]; pollId: CastVotePathParams["pollId"]; - data: CastVoteMutationRequest; + data?: CastVoteMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -141,7 +141,7 @@ export function useCastVote( { tripID: CastVotePathParams["tripID"]; pollId: CastVotePathParams["pollId"]; - data: CastVoteMutationRequest; + data?: CastVoteMutationRequest; }, TContext >; @@ -159,7 +159,7 @@ export function useCastVote( { tripID: CastVotePathParams["tripID"]; pollId: CastVotePathParams["pollId"]; - data: CastVoteMutationRequest; + data?: CastVoteMutationRequest; }, TContext >( @@ -182,7 +182,7 @@ export function useCastVote( { tripID: CastVotePathParams["tripID"]; pollId: CastVotePathParams["pollId"]; - data: CastVoteMutationRequest; + data?: CastVoteMutationRequest; }, TContext >; diff --git a/frontend/api/polls/useCreatePoll.ts b/frontend/api/polls/useCreatePoll.ts index 72c06e07..ce828f12 100644 --- a/frontend/api/polls/useCreatePoll.ts +++ b/frontend/api/polls/useCreatePoll.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreatePollMutationRequest, CreatePollMutationResponse, @@ -15,11 +20,6 @@ import type { CreatePoll422, CreatePoll500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createPollMutationKey = () => @@ -36,7 +36,7 @@ export async function createPoll( tripID: CreatePollPathParams["tripID"], data: CreatePollMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -62,9 +62,9 @@ export async function createPoll( return res.data; } -export function createPollMutationOptions( +export function createPollMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createPollMutationKey(); @@ -78,7 +78,7 @@ export function createPollMutationOptions( | CreatePoll500 >, { tripID: CreatePollPathParams["tripID"]; data: CreatePollMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, data }) => { @@ -110,7 +110,7 @@ export function useCreatePoll( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/polls/useCreateRankPoll.ts b/frontend/api/polls/useCreateRankPoll.ts index d713590e..c2151763 100644 --- a/frontend/api/polls/useCreateRankPoll.ts +++ b/frontend/api/polls/useCreateRankPoll.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateRankPollMutationRequest, CreateRankPollMutationResponse, @@ -15,11 +20,6 @@ import type { CreateRankPoll422, CreateRankPoll500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createRankPollMutationKey = () => @@ -38,7 +38,7 @@ export async function createRankPoll( tripID: CreateRankPollPathParams["tripID"], data: CreateRankPollMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -64,9 +64,9 @@ export async function createRankPoll( return res.data; } -export function createRankPollMutationOptions( +export function createRankPollMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createRankPollMutationKey(); @@ -83,7 +83,7 @@ export function createRankPollMutationOptions( tripID: CreateRankPollPathParams["tripID"]; data: CreateRankPollMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, data }) => { @@ -115,7 +115,7 @@ export function useCreateRankPoll( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/polls/useDeletePoll.ts b/frontend/api/polls/useDeletePoll.ts index b6a3a872..81073548 100644 --- a/frontend/api/polls/useDeletePoll.ts +++ b/frontend/api/polls/useDeletePoll.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeletePollMutationResponse, DeletePollPathParams, @@ -14,11 +19,6 @@ import type { DeletePoll404, DeletePoll500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deletePollMutationKey = () => @@ -34,7 +34,7 @@ export type DeletePollMutationKey = ReturnType; export async function deletePoll( tripID: DeletePollPathParams["tripID"], pollId: DeletePollPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -56,8 +56,8 @@ export async function deletePoll( return res.data; } -export function deletePollMutationOptions( - config: Partial & { client?: Client } = {}, +export function deletePollMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deletePollMutationKey(); return mutationOptions< @@ -73,7 +73,7 @@ export function deletePollMutationOptions( tripID: DeletePollPathParams["tripID"]; pollId: DeletePollPathParams["pollId"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId }) => { @@ -104,7 +104,7 @@ export function useDeletePoll( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useDeletePollOption.ts b/frontend/api/polls/useDeletePollOption.ts index 609b8e5c..506baa19 100644 --- a/frontend/api/polls/useDeletePollOption.ts +++ b/frontend/api/polls/useDeletePollOption.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeletePollOptionMutationResponse, DeletePollOptionPathParams, @@ -15,11 +20,6 @@ import type { DeletePollOption409, DeletePollOption500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deletePollOptionMutationKey = () => @@ -40,7 +40,7 @@ export async function deletePollOption( tripID: DeletePollOptionPathParams["tripID"], pollId: DeletePollOptionPathParams["pollId"], optionId: DeletePollOptionPathParams["optionId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -63,8 +63,8 @@ export async function deletePollOption( return res.data; } -export function deletePollOptionMutationOptions( - config: Partial & { client?: Client } = {}, +export function deletePollOptionMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deletePollOptionMutationKey(); return mutationOptions< @@ -82,7 +82,7 @@ export function deletePollOptionMutationOptions( pollId: DeletePollOptionPathParams["pollId"]; optionId: DeletePollOptionPathParams["optionId"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, optionId }) => { @@ -115,7 +115,7 @@ export function useDeletePollOption( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useDeleteRankPoll.ts b/frontend/api/polls/useDeleteRankPoll.ts index dca845d4..33c78697 100644 --- a/frontend/api/polls/useDeleteRankPoll.ts +++ b/frontend/api/polls/useDeleteRankPoll.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteRankPollMutationResponse, DeleteRankPollPathParams, @@ -14,11 +19,6 @@ import type { DeleteRankPoll404, DeleteRankPoll500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteRankPollMutationKey = () => @@ -36,7 +36,7 @@ export type DeleteRankPollMutationKey = ReturnType< export async function deleteRankPoll( tripID: DeleteRankPollPathParams["tripID"], pollId: DeleteRankPollPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -58,8 +58,8 @@ export async function deleteRankPoll( return res.data; } -export function deleteRankPollMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteRankPollMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteRankPollMutationKey(); return mutationOptions< @@ -75,7 +75,7 @@ export function deleteRankPollMutationOptions( tripID: DeleteRankPollPathParams["tripID"]; pollId: DeleteRankPollPathParams["pollId"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId }) => { @@ -106,7 +106,7 @@ export function useDeleteRankPoll( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useDeleteRankPollOption.ts b/frontend/api/polls/useDeleteRankPollOption.ts index f0c96832..6d528e1d 100644 --- a/frontend/api/polls/useDeleteRankPollOption.ts +++ b/frontend/api/polls/useDeleteRankPollOption.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteRankPollOptionMutationResponse, DeleteRankPollOptionPathParams, @@ -15,11 +20,6 @@ import type { DeleteRankPollOption409, DeleteRankPollOption500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteRankPollOptionMutationKey = () => @@ -40,7 +40,7 @@ export async function deleteRankPollOption( tripID: DeleteRankPollOptionPathParams["tripID"], pollId: DeleteRankPollOptionPathParams["pollId"], optionId: DeleteRankPollOptionPathParams["optionId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -63,8 +63,8 @@ export async function deleteRankPollOption( return res.data; } -export function deleteRankPollOptionMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteRankPollOptionMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteRankPollOptionMutationKey(); return mutationOptions< @@ -82,7 +82,7 @@ export function deleteRankPollOptionMutationOptions( pollId: DeleteRankPollOptionPathParams["pollId"]; optionId: DeleteRankPollOptionPathParams["optionId"]; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, optionId }) => { @@ -115,7 +115,7 @@ export function useDeleteRankPollOption( }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetPoll.ts b/frontend/api/polls/useGetPoll.ts index a3f3b1cd..d8b35b91 100644 --- a/frontend/api/polls/useGetPoll.ts +++ b/frontend/api/polls/useGetPoll.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetPollQueryResponse, GetPollPathParams, @@ -14,12 +20,6 @@ import type { GetPoll404, GetPoll500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getPollQueryKey = ( @@ -43,7 +43,7 @@ export type GetPollQueryKey = ReturnType; export async function getPoll( tripID: GetPollPathParams["tripID"], pollId: GetPollPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -64,7 +64,7 @@ export async function getPoll( export function getPollQueryOptions( tripID: GetPollPathParams["tripID"], pollId: GetPollPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPollQueryKey(tripID, pollId); return queryOptions< @@ -78,9 +78,7 @@ export function getPollQueryOptions( enabled: !!(tripID && pollId), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPoll(tripID, pollId, config); }, }); @@ -110,7 +108,7 @@ export function useGetPoll< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetPollSuspense.ts b/frontend/api/polls/useGetPollSuspense.ts index 041162eb..8af42ba6 100644 --- a/frontend/api/polls/useGetPollSuspense.ts +++ b/frontend/api/polls/useGetPollSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetPollQueryResponse, GetPollPathParams, @@ -14,12 +20,6 @@ import type { GetPoll404, GetPoll500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getPollSuspenseQueryKey = ( @@ -45,7 +45,7 @@ export type GetPollSuspenseQueryKey = ReturnType< export async function getPollSuspense( tripID: GetPollPathParams["tripID"], pollId: GetPollPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -66,7 +66,7 @@ export async function getPollSuspense( export function getPollSuspenseQueryOptions( tripID: GetPollPathParams["tripID"], pollId: GetPollPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPollSuspenseQueryKey(tripID, pollId); return queryOptions< @@ -80,9 +80,7 @@ export function getPollSuspenseQueryOptions( enabled: !!(tripID && pollId), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPollSuspense(tripID, pollId, config); }, }); @@ -110,7 +108,7 @@ export function useGetPollSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetPollsByTripID.ts b/frontend/api/polls/useGetPollsByTripID.ts index 208a0e6a..00418b1a 100644 --- a/frontend/api/polls/useGetPollsByTripID.ts +++ b/frontend/api/polls/useGetPollsByTripID.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetPollsByTripIDQueryResponse, GetPollsByTripIDPathParams, @@ -14,17 +20,11 @@ import type { GetPollsByTripID403, GetPollsByTripID500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getPollsByTripIDQueryKey = ( tripID: GetPollsByTripIDPathParams["tripID"], - params: GetPollsByTripIDQueryParams = {}, + params?: GetPollsByTripIDQueryParams, ) => [ { url: "/api/v1/trips/:tripID/vote-polls", params: { tripID: tripID } }, @@ -43,7 +43,7 @@ export type GetPollsByTripIDQueryKey = ReturnType< export async function getPollsByTripID( tripID: GetPollsByTripIDPathParams["tripID"], params?: GetPollsByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -68,7 +68,7 @@ export async function getPollsByTripID( export function getPollsByTripIDQueryOptions( tripID: GetPollsByTripIDPathParams["tripID"], params?: GetPollsByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPollsByTripIDQueryKey(tripID, params); return queryOptions< @@ -85,9 +85,7 @@ export function getPollsByTripIDQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPollsByTripID(tripID, params, config); }, }); @@ -120,7 +118,7 @@ export function useGetPollsByTripID< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetPollsByTripIDSuspense.ts b/frontend/api/polls/useGetPollsByTripIDSuspense.ts index 9e0e029b..4b9e1890 100644 --- a/frontend/api/polls/useGetPollsByTripIDSuspense.ts +++ b/frontend/api/polls/useGetPollsByTripIDSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetPollsByTripIDQueryResponse, GetPollsByTripIDPathParams, @@ -14,17 +20,11 @@ import type { GetPollsByTripID403, GetPollsByTripID500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getPollsByTripIDSuspenseQueryKey = ( tripID: GetPollsByTripIDPathParams["tripID"], - params: GetPollsByTripIDQueryParams = {}, + params?: GetPollsByTripIDQueryParams, ) => [ { url: "/api/v1/trips/:tripID/vote-polls", params: { tripID: tripID } }, @@ -43,7 +43,7 @@ export type GetPollsByTripIDSuspenseQueryKey = ReturnType< export async function getPollsByTripIDSuspense( tripID: GetPollsByTripIDPathParams["tripID"], params?: GetPollsByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -68,7 +68,7 @@ export async function getPollsByTripIDSuspense( export function getPollsByTripIDSuspenseQueryOptions( tripID: GetPollsByTripIDPathParams["tripID"], params?: GetPollsByTripIDQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getPollsByTripIDSuspenseQueryKey(tripID, params); return queryOptions< @@ -85,9 +85,7 @@ export function getPollsByTripIDSuspenseQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getPollsByTripIDSuspense(tripID, params, config); }, }); @@ -118,7 +116,7 @@ export function useGetPollsByTripIDSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetRankPollResults.ts b/frontend/api/polls/useGetRankPollResults.ts index a0a0d252..3575760e 100644 --- a/frontend/api/polls/useGetRankPollResults.ts +++ b/frontend/api/polls/useGetRankPollResults.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetRankPollResultsQueryResponse, GetRankPollResultsPathParams, @@ -14,12 +20,6 @@ import type { GetRankPollResults404, GetRankPollResults500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getRankPollResultsQueryKey = ( @@ -45,7 +45,7 @@ export type GetRankPollResultsQueryKey = ReturnType< export async function getRankPollResults( tripID: GetRankPollResultsPathParams["tripID"], pollId: GetRankPollResultsPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getRankPollResults( export function getRankPollResultsQueryOptions( tripID: GetRankPollResultsPathParams["tripID"], pollId: GetRankPollResultsPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getRankPollResultsQueryKey(tripID, pollId); return queryOptions< @@ -88,9 +88,7 @@ export function getRankPollResultsQueryOptions( enabled: !!(tripID && pollId), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getRankPollResults(tripID, pollId, config); }, }); @@ -124,7 +122,7 @@ export function useGetRankPollResults< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetRankPollResultsSuspense.ts b/frontend/api/polls/useGetRankPollResultsSuspense.ts index 1cbfc521..08c08f77 100644 --- a/frontend/api/polls/useGetRankPollResultsSuspense.ts +++ b/frontend/api/polls/useGetRankPollResultsSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetRankPollResultsQueryResponse, GetRankPollResultsPathParams, @@ -14,12 +20,6 @@ import type { GetRankPollResults404, GetRankPollResults500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getRankPollResultsSuspenseQueryKey = ( @@ -45,7 +45,7 @@ export type GetRankPollResultsSuspenseQueryKey = ReturnType< export async function getRankPollResultsSuspense( tripID: GetRankPollResultsPathParams["tripID"], pollId: GetRankPollResultsPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getRankPollResultsSuspense( export function getRankPollResultsSuspenseQueryOptions( tripID: GetRankPollResultsPathParams["tripID"], pollId: GetRankPollResultsPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getRankPollResultsSuspenseQueryKey(tripID, pollId); return queryOptions< @@ -88,9 +88,7 @@ export function getRankPollResultsSuspenseQueryOptions( enabled: !!(tripID && pollId), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getRankPollResultsSuspense(tripID, pollId, config); }, }); @@ -122,7 +120,7 @@ export function useGetRankPollResultsSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetRankPollVoters.ts b/frontend/api/polls/useGetRankPollVoters.ts index e86a1bfc..ff6eb82a 100644 --- a/frontend/api/polls/useGetRankPollVoters.ts +++ b/frontend/api/polls/useGetRankPollVoters.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetRankPollVotersQueryResponse, GetRankPollVotersPathParams, @@ -14,12 +20,6 @@ import type { GetRankPollVoters404, GetRankPollVoters500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getRankPollVotersQueryKey = ( @@ -45,7 +45,7 @@ export type GetRankPollVotersQueryKey = ReturnType< export async function getRankPollVoters( tripID: GetRankPollVotersPathParams["tripID"], pollId: GetRankPollVotersPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getRankPollVoters( export function getRankPollVotersQueryOptions( tripID: GetRankPollVotersPathParams["tripID"], pollId: GetRankPollVotersPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getRankPollVotersQueryKey(tripID, pollId); return queryOptions< @@ -88,9 +88,7 @@ export function getRankPollVotersQueryOptions( enabled: !!(tripID && pollId), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getRankPollVoters(tripID, pollId, config); }, }); @@ -124,7 +122,7 @@ export function useGetRankPollVoters< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useGetRankPollVotersSuspense.ts b/frontend/api/polls/useGetRankPollVotersSuspense.ts index 2b6d8b38..4bbae5c0 100644 --- a/frontend/api/polls/useGetRankPollVotersSuspense.ts +++ b/frontend/api/polls/useGetRankPollVotersSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetRankPollVotersQueryResponse, GetRankPollVotersPathParams, @@ -14,12 +20,6 @@ import type { GetRankPollVoters404, GetRankPollVoters500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getRankPollVotersSuspenseQueryKey = ( @@ -45,7 +45,7 @@ export type GetRankPollVotersSuspenseQueryKey = ReturnType< export async function getRankPollVotersSuspense( tripID: GetRankPollVotersPathParams["tripID"], pollId: GetRankPollVotersPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function getRankPollVotersSuspense( export function getRankPollVotersSuspenseQueryOptions( tripID: GetRankPollVotersPathParams["tripID"], pollId: GetRankPollVotersPathParams["pollId"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getRankPollVotersSuspenseQueryKey(tripID, pollId); return queryOptions< @@ -88,9 +88,7 @@ export function getRankPollVotersSuspenseQueryOptions( enabled: !!(tripID && pollId), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getRankPollVotersSuspense(tripID, pollId, config); }, }); @@ -122,7 +120,7 @@ export function useGetRankPollVotersSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/polls/useSubmitRanking.ts b/frontend/api/polls/useSubmitRanking.ts index 50b7a5f9..2d7926cf 100644 --- a/frontend/api/polls/useSubmitRanking.ts +++ b/frontend/api/polls/useSubmitRanking.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { SubmitRankingMutationRequest, SubmitRankingMutationResponse, @@ -16,11 +21,6 @@ import type { SubmitRanking422, SubmitRanking500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const submitRankingMutationKey = () => @@ -40,7 +40,7 @@ export async function submitRanking( pollId: SubmitRankingPathParams["pollId"], data: SubmitRankingMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -67,9 +67,9 @@ export async function submitRanking( return res.data; } -export function submitRankingMutationOptions( +export function submitRankingMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = submitRankingMutationKey(); @@ -88,7 +88,7 @@ export function submitRankingMutationOptions( pollId: SubmitRankingPathParams["pollId"]; data: SubmitRankingMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, data }) => { @@ -122,7 +122,7 @@ export function useSubmitRanking( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/polls/useUpdatePoll.ts b/frontend/api/polls/useUpdatePoll.ts index d10ab465..de7a0884 100644 --- a/frontend/api/polls/useUpdatePoll.ts +++ b/frontend/api/polls/useUpdatePoll.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdatePollMutationRequest, UpdatePollMutationResponse, @@ -16,11 +21,6 @@ import type { UpdatePoll422, UpdatePoll500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updatePollMutationKey = () => @@ -36,9 +36,9 @@ export type UpdatePollMutationKey = ReturnType; export async function updatePoll( tripID: UpdatePollPathParams["tripID"], pollId: UpdatePollPathParams["pollId"], - data: UpdatePollMutationRequest, + data?: UpdatePollMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -65,9 +65,9 @@ export async function updatePoll( return res.data; } -export function updatePollMutationOptions( +export function updatePollMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updatePollMutationKey(); @@ -84,9 +84,9 @@ export function updatePollMutationOptions( { tripID: UpdatePollPathParams["tripID"]; pollId: UpdatePollPathParams["pollId"]; - data: UpdatePollMutationRequest; + data?: UpdatePollMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, data }) => { @@ -115,12 +115,12 @@ export function useUpdatePoll( { tripID: UpdatePollPathParams["tripID"]; pollId: UpdatePollPathParams["pollId"]; - data: UpdatePollMutationRequest; + data?: UpdatePollMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -141,7 +141,7 @@ export function useUpdatePoll( { tripID: UpdatePollPathParams["tripID"]; pollId: UpdatePollPathParams["pollId"]; - data: UpdatePollMutationRequest; + data?: UpdatePollMutationRequest; }, TContext >; @@ -159,7 +159,7 @@ export function useUpdatePoll( { tripID: UpdatePollPathParams["tripID"]; pollId: UpdatePollPathParams["pollId"]; - data: UpdatePollMutationRequest; + data?: UpdatePollMutationRequest; }, TContext >( @@ -182,7 +182,7 @@ export function useUpdatePoll( { tripID: UpdatePollPathParams["tripID"]; pollId: UpdatePollPathParams["pollId"]; - data: UpdatePollMutationRequest; + data?: UpdatePollMutationRequest; }, TContext >; diff --git a/frontend/api/polls/useUpdateRankPoll.ts b/frontend/api/polls/useUpdateRankPoll.ts index 0c7a291f..5c1bcc5e 100644 --- a/frontend/api/polls/useUpdateRankPoll.ts +++ b/frontend/api/polls/useUpdateRankPoll.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdateRankPollMutationRequest, UpdateRankPollMutationResponse, @@ -16,11 +21,6 @@ import type { UpdateRankPoll422, UpdateRankPoll500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updateRankPollMutationKey = () => @@ -38,9 +38,9 @@ export type UpdateRankPollMutationKey = ReturnType< export async function updateRankPoll( tripID: UpdateRankPollPathParams["tripID"], pollId: UpdateRankPollPathParams["pollId"], - data: UpdateRankPollMutationRequest, + data?: UpdateRankPollMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -67,9 +67,9 @@ export async function updateRankPoll( return res.data; } -export function updateRankPollMutationOptions( +export function updateRankPollMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updateRankPollMutationKey(); @@ -86,9 +86,9 @@ export function updateRankPollMutationOptions( { tripID: UpdateRankPollPathParams["tripID"]; pollId: UpdateRankPollPathParams["pollId"]; - data: UpdateRankPollMutationRequest; + data?: UpdateRankPollMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, pollId, data }) => { @@ -117,12 +117,12 @@ export function useUpdateRankPoll( { tripID: UpdateRankPollPathParams["tripID"]; pollId: UpdateRankPollPathParams["pollId"]; - data: UpdateRankPollMutationRequest; + data?: UpdateRankPollMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -146,7 +146,7 @@ export function useUpdateRankPoll( { tripID: UpdateRankPollPathParams["tripID"]; pollId: UpdateRankPollPathParams["pollId"]; - data: UpdateRankPollMutationRequest; + data?: UpdateRankPollMutationRequest; }, TContext >; @@ -164,7 +164,7 @@ export function useUpdateRankPoll( { tripID: UpdateRankPollPathParams["tripID"]; pollId: UpdateRankPollPathParams["pollId"]; - data: UpdateRankPollMutationRequest; + data?: UpdateRankPollMutationRequest; }, TContext >( @@ -187,7 +187,7 @@ export function useUpdateRankPoll( { tripID: UpdateRankPollPathParams["tripID"]; pollId: UpdateRankPollPathParams["pollId"]; - data: UpdateRankPollMutationRequest; + data?: UpdateRankPollMutationRequest; }, TContext >; diff --git a/frontend/api/search/useSearchActivities.ts b/frontend/api/search/useSearchActivities.ts index 769fa90c..2b650e49 100644 --- a/frontend/api/search/useSearchActivities.ts +++ b/frontend/api/search/useSearchActivities.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { SearchActivitiesQueryResponse, SearchActivitiesPathParams, @@ -15,12 +21,6 @@ import type { SearchActivities422, SearchActivities500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const searchActivitiesQueryKey = ( @@ -47,7 +47,7 @@ export type SearchActivitiesQueryKey = ReturnType< export async function searchActivities( tripID: SearchActivitiesPathParams["tripID"], params: SearchActivitiesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -73,7 +73,7 @@ export async function searchActivities( export function searchActivitiesQueryOptions( tripID: SearchActivitiesPathParams["tripID"], params: SearchActivitiesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = searchActivitiesQueryKey(tripID, params); return queryOptions< @@ -91,9 +91,7 @@ export function searchActivitiesQueryOptions( enabled: !!(tripID && params), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return searchActivities(tripID, params, config); }, }); @@ -127,7 +125,7 @@ export function useSearchActivities< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/search/useSearchActivitiesSuspense.ts b/frontend/api/search/useSearchActivitiesSuspense.ts index 3d6b96f5..98db1ffd 100644 --- a/frontend/api/search/useSearchActivitiesSuspense.ts +++ b/frontend/api/search/useSearchActivitiesSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { SearchActivitiesQueryResponse, SearchActivitiesPathParams, @@ -15,12 +21,6 @@ import type { SearchActivities422, SearchActivities500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const searchActivitiesSuspenseQueryKey = ( @@ -47,7 +47,7 @@ export type SearchActivitiesSuspenseQueryKey = ReturnType< export async function searchActivitiesSuspense( tripID: SearchActivitiesPathParams["tripID"], params: SearchActivitiesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -73,7 +73,7 @@ export async function searchActivitiesSuspense( export function searchActivitiesSuspenseQueryOptions( tripID: SearchActivitiesPathParams["tripID"], params: SearchActivitiesQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = searchActivitiesSuspenseQueryKey(tripID, params); return queryOptions< @@ -91,9 +91,7 @@ export function searchActivitiesSuspenseQueryOptions( enabled: !!(tripID && params), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return searchActivitiesSuspense(tripID, params, config); }, }); @@ -125,7 +123,7 @@ export function useSearchActivitiesSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/search/useSearchTripMembers.ts b/frontend/api/search/useSearchTripMembers.ts index 544f16fa..ce2f988e 100644 --- a/frontend/api/search/useSearchTripMembers.ts +++ b/frontend/api/search/useSearchTripMembers.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { SearchTripMembersQueryResponse, SearchTripMembersPathParams, @@ -15,12 +21,6 @@ import type { SearchTripMembers422, SearchTripMembers500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const searchTripMembersQueryKey = ( @@ -44,7 +44,7 @@ export type SearchTripMembersQueryKey = ReturnType< export async function searchTripMembers( tripID: SearchTripMembersPathParams["tripID"], params: SearchTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function searchTripMembers( export function searchTripMembersQueryOptions( tripID: SearchTripMembersPathParams["tripID"], params: SearchTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = searchTripMembersQueryKey(tripID, params); return queryOptions< @@ -88,9 +88,7 @@ export function searchTripMembersQueryOptions( enabled: !!(tripID && params), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return searchTripMembers(tripID, params, config); }, }); @@ -124,7 +122,7 @@ export function useSearchTripMembers< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/search/useSearchTripMembersSuspense.ts b/frontend/api/search/useSearchTripMembersSuspense.ts index 62638aa7..4e686a60 100644 --- a/frontend/api/search/useSearchTripMembersSuspense.ts +++ b/frontend/api/search/useSearchTripMembersSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { SearchTripMembersQueryResponse, SearchTripMembersPathParams, @@ -15,12 +21,6 @@ import type { SearchTripMembers422, SearchTripMembers500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const searchTripMembersSuspenseQueryKey = ( @@ -44,7 +44,7 @@ export type SearchTripMembersSuspenseQueryKey = ReturnType< export async function searchTripMembersSuspense( tripID: SearchTripMembersPathParams["tripID"], params: SearchTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -70,7 +70,7 @@ export async function searchTripMembersSuspense( export function searchTripMembersSuspenseQueryOptions( tripID: SearchTripMembersPathParams["tripID"], params: SearchTripMembersQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = searchTripMembersSuspenseQueryKey(tripID, params); return queryOptions< @@ -88,9 +88,7 @@ export function searchTripMembersSuspenseQueryOptions( enabled: !!(tripID && params), queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return searchTripMembersSuspense(tripID, params, config); }, }); @@ -122,7 +120,7 @@ export function useSearchTripMembersSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/search/useSearchTrips.ts b/frontend/api/search/useSearchTrips.ts index 11b4ba6d..662e46cb 100644 --- a/frontend/api/search/useSearchTrips.ts +++ b/frontend/api/search/useSearchTrips.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { SearchTripsQueryResponse, SearchTripsQueryParams, @@ -13,12 +19,6 @@ import type { SearchTrips422, SearchTrips500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const searchTripsQueryKey = (params: SearchTripsQueryParams) => @@ -33,7 +33,7 @@ export type SearchTripsQueryKey = ReturnType; */ export async function searchTrips( params: SearchTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -49,7 +49,7 @@ export async function searchTrips( export function searchTripsQueryOptions( params: SearchTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = searchTripsQueryKey(params); return queryOptions< @@ -63,9 +63,7 @@ export function searchTripsQueryOptions( enabled: !!params, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return searchTrips(params, config); }, }); @@ -94,7 +92,7 @@ export function useSearchTrips< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/search/useSearchTripsSuspense.ts b/frontend/api/search/useSearchTripsSuspense.ts index db657124..a4271445 100644 --- a/frontend/api/search/useSearchTripsSuspense.ts +++ b/frontend/api/search/useSearchTripsSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { SearchTripsQueryResponse, SearchTripsQueryParams, @@ -13,12 +19,6 @@ import type { SearchTrips422, SearchTrips500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const searchTripsSuspenseQueryKey = (params: SearchTripsQueryParams) => @@ -35,7 +35,7 @@ export type SearchTripsSuspenseQueryKey = ReturnType< */ export async function searchTripsSuspense( params: SearchTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -51,7 +51,7 @@ export async function searchTripsSuspense( export function searchTripsSuspenseQueryOptions( params: SearchTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = searchTripsSuspenseQueryKey(params); return queryOptions< @@ -65,9 +65,7 @@ export function searchTripsSuspenseQueryOptions( enabled: !!params, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return searchTripsSuspense(params, config); }, }); @@ -94,7 +92,7 @@ export function useSearchTripsSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/trips/useCreateTrip.ts b/frontend/api/trips/useCreateTrip.ts index c2508b87..79fe7d84 100644 --- a/frontend/api/trips/useCreateTrip.ts +++ b/frontend/api/trips/useCreateTrip.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateTripMutationRequest, CreateTripMutationResponse, @@ -13,11 +18,6 @@ import type { CreateTrip422, CreateTrip500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createTripMutationKey = () => [{ url: "/api/v1/trips" }] as const; @@ -32,7 +32,7 @@ export type CreateTripMutationKey = ReturnType; export async function createTrip( data: CreateTripMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -54,9 +54,9 @@ export async function createTrip( return res.data; } -export function createTripMutationOptions( +export function createTripMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createTripMutationKey(); @@ -66,7 +66,7 @@ export function createTripMutationOptions( CreateTrip400 | CreateTrip401 | CreateTrip422 | CreateTrip500 >, { data: CreateTripMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -91,7 +91,7 @@ export function useCreateTrip( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/trips/useCreateTripInvite.ts b/frontend/api/trips/useCreateTripInvite.ts index a470eb7e..d2885d96 100644 --- a/frontend/api/trips/useCreateTripInvite.ts +++ b/frontend/api/trips/useCreateTripInvite.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateTripInviteMutationRequest, CreateTripInviteMutationResponse, @@ -15,11 +20,6 @@ import type { CreateTripInvite422, CreateTripInvite500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createTripInviteMutationKey = () => @@ -36,9 +36,9 @@ export type CreateTripInviteMutationKey = ReturnType< */ export async function createTripInvite( tripID: CreateTripInvitePathParams["tripID"], - data: CreateTripInviteMutationRequest, + data?: CreateTripInviteMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -64,9 +64,9 @@ export async function createTripInvite( return res.data; } -export function createTripInviteMutationOptions( +export function createTripInviteMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createTripInviteMutationKey(); @@ -81,9 +81,9 @@ export function createTripInviteMutationOptions( >, { tripID: CreateTripInvitePathParams["tripID"]; - data: CreateTripInviteMutationRequest; + data?: CreateTripInviteMutationRequest; }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, data }) => { @@ -110,12 +110,12 @@ export function useCreateTripInvite( >, { tripID: CreateTripInvitePathParams["tripID"]; - data: CreateTripInviteMutationRequest; + data?: CreateTripInviteMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -137,7 +137,7 @@ export function useCreateTripInvite( >, { tripID: CreateTripInvitePathParams["tripID"]; - data: CreateTripInviteMutationRequest; + data?: CreateTripInviteMutationRequest; }, TContext >; @@ -153,7 +153,7 @@ export function useCreateTripInvite( >, { tripID: CreateTripInvitePathParams["tripID"]; - data: CreateTripInviteMutationRequest; + data?: CreateTripInviteMutationRequest; }, TContext >( @@ -174,7 +174,7 @@ export function useCreateTripInvite( >, { tripID: CreateTripInvitePathParams["tripID"]; - data: CreateTripInviteMutationRequest; + data?: CreateTripInviteMutationRequest; }, TContext >; diff --git a/frontend/api/trips/useDeleteTrip.ts b/frontend/api/trips/useDeleteTrip.ts index 31d4b278..51bcfc53 100644 --- a/frontend/api/trips/useDeleteTrip.ts +++ b/frontend/api/trips/useDeleteTrip.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteTripMutationResponse, DeleteTripPathParams, @@ -13,11 +18,6 @@ import type { DeleteTrip404, DeleteTrip500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteTripMutationKey = () => @@ -32,7 +32,7 @@ export type DeleteTripMutationKey = ReturnType; */ export async function deleteTrip( tripID: DeleteTripPathParams["tripID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -46,8 +46,8 @@ export async function deleteTrip( return res.data; } -export function deleteTripMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteTripMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteTripMutationKey(); return mutationOptions< @@ -56,7 +56,7 @@ export function deleteTripMutationOptions( DeleteTrip400 | DeleteTrip401 | DeleteTrip404 | DeleteTrip500 >, { tripID: DeleteTripPathParams["tripID"] }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID }) => { @@ -80,7 +80,7 @@ export function useDeleteTrip( { tripID: DeleteTripPathParams["tripID"] }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/trips/useGetAllTrips.ts b/frontend/api/trips/useGetAllTrips.ts index cb00b7c9..49257ec8 100644 --- a/frontend/api/trips/useGetAllTrips.ts +++ b/frontend/api/trips/useGetAllTrips.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetAllTripsQueryResponse, GetAllTripsQueryParams, @@ -12,15 +18,9 @@ import type { GetAllTrips401, GetAllTrips500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; -export const getAllTripsQueryKey = (params: GetAllTripsQueryParams = {}) => +export const getAllTripsQueryKey = (params?: GetAllTripsQueryParams) => [{ url: "/api/v1/trips" }, ...(params ? [params] : [])] as const; export type GetAllTripsQueryKey = ReturnType; @@ -32,7 +32,7 @@ export type GetAllTripsQueryKey = ReturnType; */ export async function getAllTrips( params?: GetAllTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -46,7 +46,7 @@ export async function getAllTrips( export function getAllTripsQueryOptions( params?: GetAllTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getAllTripsQueryKey(params); return queryOptions< @@ -57,9 +57,7 @@ export function getAllTripsQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getAllTrips(params, config); }, }); @@ -86,7 +84,7 @@ export function useGetAllTrips< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/trips/useGetAllTripsSuspense.ts b/frontend/api/trips/useGetAllTripsSuspense.ts index f944aaf5..5bc0b673 100644 --- a/frontend/api/trips/useGetAllTripsSuspense.ts +++ b/frontend/api/trips/useGetAllTripsSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetAllTripsQueryResponse, GetAllTripsQueryParams, @@ -12,17 +18,10 @@ import type { GetAllTrips401, GetAllTrips500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -export const getAllTripsSuspenseQueryKey = ( - params: GetAllTripsQueryParams = {}, -) => [{ url: "/api/v1/trips" }, ...(params ? [params] : [])] as const; +export const getAllTripsSuspenseQueryKey = (params?: GetAllTripsQueryParams) => + [{ url: "/api/v1/trips" }, ...(params ? [params] : [])] as const; export type GetAllTripsSuspenseQueryKey = ReturnType< typeof getAllTripsSuspenseQueryKey @@ -35,7 +34,7 @@ export type GetAllTripsSuspenseQueryKey = ReturnType< */ export async function getAllTripsSuspense( params?: GetAllTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -49,7 +48,7 @@ export async function getAllTripsSuspense( export function getAllTripsSuspenseQueryOptions( params?: GetAllTripsQueryParams, - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getAllTripsSuspenseQueryKey(params); return queryOptions< @@ -60,9 +59,7 @@ export function getAllTripsSuspenseQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getAllTripsSuspense(params, config); }, }); @@ -87,7 +84,7 @@ export function useGetAllTripsSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/trips/useGetTrip.ts b/frontend/api/trips/useGetTrip.ts index f7e0c7f7..b6a9f8ee 100644 --- a/frontend/api/trips/useGetTrip.ts +++ b/frontend/api/trips/useGetTrip.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetTripQueryResponse, GetTripPathParams, @@ -12,12 +18,6 @@ import type { GetTrip404, GetTrip500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getTripQueryKey = (tripID: GetTripPathParams["tripID"]) => @@ -32,7 +32,7 @@ export type GetTripQueryKey = ReturnType; */ export async function getTrip( tripID: GetTripPathParams["tripID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -46,7 +46,7 @@ export async function getTrip( export function getTripQueryOptions( tripID: GetTripPathParams["tripID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getTripQueryKey(tripID); return queryOptions< @@ -58,9 +58,7 @@ export function getTripQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getTrip(tripID, config); }, }); @@ -87,7 +85,7 @@ export function useGetTrip< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/trips/useGetTripSuspense.ts b/frontend/api/trips/useGetTripSuspense.ts index c1d32eb1..28734f53 100644 --- a/frontend/api/trips/useGetTripSuspense.ts +++ b/frontend/api/trips/useGetTripSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetTripQueryResponse, GetTripPathParams, @@ -12,12 +18,6 @@ import type { GetTrip404, GetTrip500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getTripSuspenseQueryKey = (tripID: GetTripPathParams["tripID"]) => @@ -34,7 +34,7 @@ export type GetTripSuspenseQueryKey = ReturnType< */ export async function getTripSuspense( tripID: GetTripPathParams["tripID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -48,7 +48,7 @@ export async function getTripSuspense( export function getTripSuspenseQueryOptions( tripID: GetTripPathParams["tripID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getTripSuspenseQueryKey(tripID); return queryOptions< @@ -60,9 +60,7 @@ export function getTripSuspenseQueryOptions( enabled: !!tripID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getTripSuspense(tripID, config); }, }); @@ -87,7 +85,7 @@ export function useGetTripSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/trips/useUpdateTrip.ts b/frontend/api/trips/useUpdateTrip.ts index e61fa004..46ff50e9 100644 --- a/frontend/api/trips/useUpdateTrip.ts +++ b/frontend/api/trips/useUpdateTrip.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdateTripMutationRequest, UpdateTripMutationResponse, @@ -15,11 +20,6 @@ import type { UpdateTrip422, UpdateTrip500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updateTripMutationKey = () => @@ -34,9 +34,9 @@ export type UpdateTripMutationKey = ReturnType; */ export async function updateTrip( tripID: UpdateTripPathParams["tripID"], - data: UpdateTripMutationRequest, + data?: UpdateTripMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -62,9 +62,9 @@ export async function updateTrip( return res.data; } -export function updateTripMutationOptions( +export function updateTripMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updateTripMutationKey(); @@ -77,8 +77,11 @@ export function updateTripMutationOptions( | UpdateTrip422 | UpdateTrip500 >, - { tripID: UpdateTripPathParams["tripID"]; data: UpdateTripMutationRequest }, - TContext + { + tripID: UpdateTripPathParams["tripID"]; + data?: UpdateTripMutationRequest; + }, + typeof mutationKey >({ mutationKey, mutationFn: async ({ tripID, data }) => { @@ -105,12 +108,12 @@ export function useUpdateTrip( >, { tripID: UpdateTripPathParams["tripID"]; - data: UpdateTripMutationRequest; + data?: UpdateTripMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -127,7 +130,10 @@ export function useUpdateTrip( | UpdateTrip422 | UpdateTrip500 >, - { tripID: UpdateTripPathParams["tripID"]; data: UpdateTripMutationRequest }, + { + tripID: UpdateTripPathParams["tripID"]; + data?: UpdateTripMutationRequest; + }, TContext >; @@ -140,7 +146,10 @@ export function useUpdateTrip( | UpdateTrip422 | UpdateTrip500 >, - { tripID: UpdateTripPathParams["tripID"]; data: UpdateTripMutationRequest }, + { + tripID: UpdateTripPathParams["tripID"]; + data?: UpdateTripMutationRequest; + }, TContext >( { @@ -158,7 +167,10 @@ export function useUpdateTrip( | UpdateTrip422 | UpdateTrip500 >, - { tripID: UpdateTripPathParams["tripID"]; data: UpdateTripMutationRequest }, + { + tripID: UpdateTripPathParams["tripID"]; + data?: UpdateTripMutationRequest; + }, TContext >; } diff --git a/frontend/api/users/useCreateUser.ts b/frontend/api/users/useCreateUser.ts index 177884f1..d0fa0531 100644 --- a/frontend/api/users/useCreateUser.ts +++ b/frontend/api/users/useCreateUser.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { CreateUserMutationRequest, CreateUserMutationResponse, @@ -12,11 +17,6 @@ import type { CreateUser422, CreateUser500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const createUserMutationKey = () => [{ url: "/api/v1/users" }] as const; @@ -31,7 +31,7 @@ export type CreateUserMutationKey = ReturnType; export async function createUser( data: CreateUserMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -51,9 +51,9 @@ export async function createUser( return res.data; } -export function createUserMutationOptions( +export function createUserMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = createUserMutationKey(); @@ -61,7 +61,7 @@ export function createUserMutationOptions( CreateUserMutationResponse, ResponseErrorConfig, { data: CreateUserMutationRequest }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ data }) => { @@ -84,7 +84,7 @@ export function useCreateUser( TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { diff --git a/frontend/api/users/useDeleteUser.ts b/frontend/api/users/useDeleteUser.ts index f8a689ad..05dba7e3 100644 --- a/frontend/api/users/useDeleteUser.ts +++ b/frontend/api/users/useDeleteUser.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { DeleteUserMutationResponse, DeleteUserPathParams, @@ -12,11 +17,6 @@ import type { DeleteUser404, DeleteUser500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const deleteUserMutationKey = () => @@ -31,7 +31,7 @@ export type DeleteUserMutationKey = ReturnType; */ export async function deleteUser( userID: DeleteUserPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -43,15 +43,15 @@ export async function deleteUser( return res.data; } -export function deleteUserMutationOptions( - config: Partial & { client?: Client } = {}, +export function deleteUserMutationOptions( + config: Partial & { client?: typeof fetch } = {}, ) { const mutationKey = deleteUserMutationKey(); return mutationOptions< DeleteUserMutationResponse, ResponseErrorConfig, { userID: DeleteUserPathParams["userID"] }, - TContext + typeof mutationKey >({ mutationKey, mutationFn: async ({ userID }) => { @@ -73,7 +73,7 @@ export function useDeleteUser( { userID: DeleteUserPathParams["userID"] }, TContext > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { mutation = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/users/useGetCurrentUser.ts b/frontend/api/users/useGetCurrentUser.ts index 94ef111e..3fb78b80 100644 --- a/frontend/api/users/useGetCurrentUser.ts +++ b/frontend/api/users/useGetCurrentUser.ts @@ -4,19 +4,19 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - GetCurrentUserQueryResponse, - GetCurrentUser401, - GetCurrentUser404, - GetCurrentUser500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, QueryObserverOptions, UseQueryResult, } from "@tanstack/react-query"; +import type { + GetCurrentUserQueryResponse, + GetCurrentUser401, + GetCurrentUser404, + GetCurrentUser500, +} from "../../types/types.gen.ts"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getCurrentUserQueryKey = () => @@ -30,7 +30,7 @@ export type GetCurrentUserQueryKey = ReturnType; * {@link /api/v1/users/me} */ export async function getCurrentUser( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -45,7 +45,7 @@ export async function getCurrentUser( } export function getCurrentUserQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getCurrentUserQueryKey(); return queryOptions< @@ -58,9 +58,7 @@ export function getCurrentUserQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getCurrentUser(config); }, }); @@ -88,7 +86,7 @@ export function useGetCurrentUser< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/users/useGetCurrentUserSuspense.ts b/frontend/api/users/useGetCurrentUserSuspense.ts index 8aa33c39..0bcd352a 100644 --- a/frontend/api/users/useGetCurrentUserSuspense.ts +++ b/frontend/api/users/useGetCurrentUserSuspense.ts @@ -4,19 +4,19 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; -import type { - GetCurrentUserQueryResponse, - GetCurrentUser401, - GetCurrentUser404, - GetCurrentUser500, -} from "../../types/types.gen.ts"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; import type { QueryKey, QueryClient, UseSuspenseQueryOptions, UseSuspenseQueryResult, } from "@tanstack/react-query"; +import type { + GetCurrentUserQueryResponse, + GetCurrentUser401, + GetCurrentUser404, + GetCurrentUser500, +} from "../../types/types.gen.ts"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getCurrentUserSuspenseQueryKey = () => @@ -32,7 +32,7 @@ export type GetCurrentUserSuspenseQueryKey = ReturnType< * {@link /api/v1/users/me} */ export async function getCurrentUserSuspense( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -47,7 +47,7 @@ export async function getCurrentUserSuspense( } export function getCurrentUserSuspenseQueryOptions( - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getCurrentUserSuspenseQueryKey(); return queryOptions< @@ -60,9 +60,7 @@ export function getCurrentUserSuspenseQueryOptions( >({ queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getCurrentUserSuspense(config); }, }); @@ -88,7 +86,7 @@ export function useGetCurrentUserSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/users/useGetUser.ts b/frontend/api/users/useGetUser.ts index 5dcba594..f45994e2 100644 --- a/frontend/api/users/useGetUser.ts +++ b/frontend/api/users/useGetUser.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + QueryObserverOptions, + UseQueryResult, +} from "@tanstack/react-query"; import type { GetUserQueryResponse, GetUserPathParams, @@ -12,12 +18,6 @@ import type { GetUser404, GetUser500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - QueryObserverOptions, - UseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useQuery } from "@tanstack/react-query"; export const getUserQueryKey = (userID: GetUserPathParams["userID"]) => @@ -32,7 +32,7 @@ export type GetUserQueryKey = ReturnType; */ export async function getUser( userID: GetUserPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -46,7 +46,7 @@ export async function getUser( export function getUserQueryOptions( userID: GetUserPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getUserQueryKey(userID); return queryOptions< @@ -58,9 +58,7 @@ export function getUserQueryOptions( enabled: !!userID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getUser(userID, config); }, }); @@ -87,7 +85,7 @@ export function useGetUser< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/users/useGetUserSuspense.ts b/frontend/api/users/useGetUserSuspense.ts index 5b28d47d..ad0b6b4c 100644 --- a/frontend/api/users/useGetUserSuspense.ts +++ b/frontend/api/users/useGetUserSuspense.ts @@ -4,7 +4,13 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + QueryKey, + QueryClient, + UseSuspenseQueryOptions, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; import type { GetUserQueryResponse, GetUserPathParams, @@ -12,12 +18,6 @@ import type { GetUser404, GetUser500, } from "../../types/types.gen.ts"; -import type { - QueryKey, - QueryClient, - UseSuspenseQueryOptions, - UseSuspenseQueryResult, -} from "@tanstack/react-query"; import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; export const getUserSuspenseQueryKey = (userID: GetUserPathParams["userID"]) => @@ -34,7 +34,7 @@ export type GetUserSuspenseQueryKey = ReturnType< */ export async function getUserSuspense( userID: GetUserPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -48,7 +48,7 @@ export async function getUserSuspense( export function getUserSuspenseQueryOptions( userID: GetUserPathParams["userID"], - config: Partial & { client?: Client } = {}, + config: Partial & { client?: typeof fetch } = {}, ) { const queryKey = getUserSuspenseQueryKey(userID); return queryOptions< @@ -60,9 +60,7 @@ export function getUserSuspenseQueryOptions( enabled: !!userID, queryKey, queryFn: async ({ signal }) => { - if (!config.signal) { - config.signal = signal; - } + config.signal = signal; return getUserSuspense(userID, config); }, }); @@ -87,7 +85,7 @@ export function useGetUserSuspense< TQueryKey > > & { client?: QueryClient }; - client?: Partial & { client?: Client }; + client?: Partial & { client?: typeof fetch }; } = {}, ) { const { query: queryConfig = {}, client: config = {} } = options ?? {}; diff --git a/frontend/api/users/useUpdateUser.ts b/frontend/api/users/useUpdateUser.ts index 9750da99..f1fd48b8 100644 --- a/frontend/api/users/useUpdateUser.ts +++ b/frontend/api/users/useUpdateUser.ts @@ -4,7 +4,12 @@ */ import fetch from "../client"; -import type { Client, RequestConfig, ResponseErrorConfig } from "../client"; +import type { RequestConfig, ResponseErrorConfig } from "../client"; +import type { + UseMutationOptions, + UseMutationResult, + QueryClient, +} from "@tanstack/react-query"; import type { UpdateUserMutationRequest, UpdateUserMutationResponse, @@ -14,11 +19,6 @@ import type { UpdateUser422, UpdateUser500, } from "../../types/types.gen.ts"; -import type { - UseMutationOptions, - UseMutationResult, - QueryClient, -} from "@tanstack/react-query"; import { mutationOptions, useMutation } from "@tanstack/react-query"; export const updateUserMutationKey = () => @@ -33,9 +33,9 @@ export type UpdateUserMutationKey = ReturnType; */ export async function updateUser( userID: UpdateUserPathParams["userID"], - data: UpdateUserMutationRequest, + data?: UpdateUserMutationRequest, config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const { client: request = fetch, ...requestConfig } = config; @@ -57,9 +57,9 @@ export async function updateUser( return res.data; } -export function updateUserMutationOptions( +export function updateUserMutationOptions( config: Partial> & { - client?: Client; + client?: typeof fetch; } = {}, ) { const mutationKey = updateUserMutationKey(); @@ -68,8 +68,11 @@ export function updateUserMutationOptions( ResponseErrorConfig< UpdateUser400 | UpdateUser404 | UpdateUser422 | UpdateUser500 >, - { userID: UpdateUserPathParams["userID"]; data: UpdateUserMutationRequest }, - TContext + { + userID: UpdateUserPathParams["userID"]; + data?: UpdateUserMutationRequest; + }, + typeof mutationKey >({ mutationKey, mutationFn: async ({ userID, data }) => { @@ -92,12 +95,12 @@ export function useUpdateUser( >, { userID: UpdateUserPathParams["userID"]; - data: UpdateUserMutationRequest; + data?: UpdateUserMutationRequest; }, TContext > & { client?: QueryClient }; client?: Partial> & { - client?: Client; + client?: typeof fetch; }; } = {}, ) { @@ -110,7 +113,10 @@ export function useUpdateUser( ResponseErrorConfig< UpdateUser400 | UpdateUser404 | UpdateUser422 | UpdateUser500 >, - { userID: UpdateUserPathParams["userID"]; data: UpdateUserMutationRequest }, + { + userID: UpdateUserPathParams["userID"]; + data?: UpdateUserMutationRequest; + }, TContext >; @@ -119,7 +125,10 @@ export function useUpdateUser( ResponseErrorConfig< UpdateUser400 | UpdateUser404 | UpdateUser422 | UpdateUser500 >, - { userID: UpdateUserPathParams["userID"]; data: UpdateUserMutationRequest }, + { + userID: UpdateUserPathParams["userID"]; + data?: UpdateUserMutationRequest; + }, TContext >( { @@ -133,7 +142,10 @@ export function useUpdateUser( ResponseErrorConfig< UpdateUser400 | UpdateUser404 | UpdateUser422 | UpdateUser500 >, - { userID: UpdateUserPathParams["userID"]; data: UpdateUserMutationRequest }, + { + userID: UpdateUserPathParams["userID"]; + data?: UpdateUserMutationRequest; + }, TContext >; } diff --git a/frontend/app/(app)/trips/[id]/components/tabs/tab-bar.tsx b/frontend/app/(app)/trips/[id]/components/tabs/tab-bar.tsx new file mode 100644 index 00000000..cfd8b0a9 --- /dev/null +++ b/frontend/app/(app)/trips/[id]/components/tabs/tab-bar.tsx @@ -0,0 +1,111 @@ +import { Box, Text } from "@/design-system"; +import SkeletonRect from "@/design-system/components/skeleton/rectangle"; +import { ColorPalette } from "@/design-system/tokens/color"; +import type { ModelsCategoryAPIResponse } from "@/types/types.gen"; +import { getCategoryIcon } from "@/utilities/category-icons"; +import { Settings2 } from "lucide-react-native"; +import React from "react"; +import { Pressable, ScrollView } from "react-native"; + +const DEFAULT_LABELS = ["Housing", "Transportation", "Activities", "Polls", "Itinerary"]; +const CHAR_WIDTH = 8; +const PILL_PADDING = 52; // icon(14) + gap(6) + paddingHorizontal(12*2) + buffer(8) + +const SKELETON_WIDTHS = DEFAULT_LABELS.map( + (label) => label.length * CHAR_WIDTH + PILL_PADDING, +); + +interface TabBarProps { + categories: ModelsCategoryAPIResponse[]; + activeTab: string; + onTabPress: (name: string) => void; + onEditPress: () => void; + loading?: boolean; +} + +export default function TabBar({ + categories, + activeTab, + onTabPress, + onEditPress, + loading = false, +}: TabBarProps) { + const visibleCategories = categories.filter((c) => !c.is_hidden); + + return ( + + + + {loading + ? SKELETON_WIDTHS.map((w, i) => ( + + )) + : visibleCategories.map((category) => { + const name = category.name ?? ""; + const label = category.label ?? name; + const isActive = name === activeTab; + const TabIcon = getCategoryIcon(name); + const iconColor = isActive + ? ColorPalette.textPrimary + : ColorPalette.textSecondary; + + return ( + onTabPress(name)}> + + {React.createElement(TabIcon, { + size: 14, + color: iconColor, + })} + + {label} + + + + ); + })} + + + + + + {React.createElement(Settings2, { + size: 11, + color: ColorPalette.iconSecondary, + })} + + + + ); +} \ No newline at end of file diff --git a/frontend/app/(app)/trips/[id]/index.tsx b/frontend/app/(app)/trips/[id]/index.tsx index 3bda2152..19110a83 100644 --- a/frontend/app/(app)/trips/[id]/index.tsx +++ b/frontend/app/(app)/trips/[id]/index.tsx @@ -1,3 +1,4 @@ +import { useGetCategoriesByTripID } from "@/api/categories/useGetCategoriesByTripID"; import { useCreateTripInvite } from "@/api/trips/useCreateTripInvite"; import { Box, Button, Screen, Text, useToast } from "@/design-system"; import * as Linking from "expo-linking"; @@ -5,6 +6,7 @@ import { router, useLocalSearchParams } from "expo-router"; import { useRef, useState } from "react"; import { ActivityIndicator, Share } from "react-native"; import CreateFAB from "./components/create-fab"; +import TabBar from "./components/tabs/tab-bar"; import CreatePollSheet, { CreatePollSheetMethods, } from "./polls/components/create-poll-sheet"; @@ -18,6 +20,12 @@ export default function Trip() { const createPollSheetRef = useRef(null); const toast = useToast(); + const { data: categoryData, isLoading: categoriesLoading } = + useGetCategoriesByTripID(tripID!); + const categories = categoryData?.categories ?? []; + const [selectedTab, setSelectedTab] = useState(null); + const activeTab = selectedTab ?? categories.find((c) => !c.is_hidden)?.name ?? ""; + const handleInvite = async () => { try { // TODO: update data field for actual flow @@ -68,6 +76,18 @@ export default function Trip() { + + { + // TODO: open edit tabs modal + }} + loading={categoriesLoading} + /> + + VIEW @@ -146,4 +166,4 @@ export default function Trip() { ); -} +} \ No newline at end of file diff --git a/frontend/app/(app)/trips/[id]/polls/components/step-review.tsx b/frontend/app/(app)/trips/[id]/polls/components/step-review.tsx index 24662999..22299196 100644 --- a/frontend/app/(app)/trips/[id]/polls/components/step-review.tsx +++ b/frontend/app/(app)/trips/[id]/polls/components/step-review.tsx @@ -1,68 +1,10 @@ import { Box, Text } from "@/design-system"; import { ColorPalette } from "@/design-system/tokens/color"; -import { - BedDouble, - Bike, - Car, - Compass, - Flame, - Gem, - Globe, - Landmark, - Mountain, - Music, - ShoppingBag, - Star, - Sun, - Ticket, - UtensilsCrossed, - type LucideIcon, -} from "lucide-react-native"; +import { getCategoryIcon } from "@/utilities/category-icons"; +import { toPascalCase } from "@/utilities/string"; import React from "react"; import { PollType } from "./step-poll-type"; -const CATEGORY_ICONS: Record = { - attraction: Landmark, - entertainment: Ticket, - food: UtensilsCrossed, - lodging: BedDouble, - transportation: Car, -}; - -const RANDOM_ICON_POOL: LucideIcon[] = [ - Compass, - Mountain, - Globe, - Sun, - Music, - ShoppingBag, - Gem, - Star, - Bike, - Flame, -]; - -function hashStr(s: string): number { - let h = 0; - for (let i = 0; i < s.length; i++) - h = (Math.imul(31, h) + s.charCodeAt(i)) | 0; - return Math.abs(h); -} - -function getCategoryIcon(name: string): LucideIcon { - return ( - CATEGORY_ICONS[name.toLowerCase()] ?? - RANDOM_ICON_POOL[hashStr(name) % RANDOM_ICON_POOL.length]! - ); -} - -function toPascalCase(str: string) { - return str - .split(/\s+/) - .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()) - .join(" "); -} - const POLL_TYPE_LABELS: Record = { single: "Single Choice", multi: "Multiple Choice", @@ -211,4 +153,4 @@ export default function StepReview({ ); -} +} \ No newline at end of file diff --git a/frontend/app/(app)/trips/[id]/polls/components/step-settings.tsx b/frontend/app/(app)/trips/[id]/polls/components/step-settings.tsx index 3cc09ab1..5a0c0d2c 100644 --- a/frontend/app/(app)/trips/[id]/polls/components/step-settings.tsx +++ b/frontend/app/(app)/trips/[id]/polls/components/step-settings.tsx @@ -10,69 +10,11 @@ import { Toggle, } from "@/design-system"; import { ColorPalette } from "@/design-system/tokens/color"; -import { - BedDouble, - Bike, - Car, - Compass, - Flame, - Gem, - Globe, - Landmark, - LucideIcon, - MoreHorizontal, - Mountain, - Music, - ShoppingBag, - Star, - Sun, - Ticket, - UtensilsCrossed, -} from "lucide-react-native"; +import { getCategoryIcon } from "@/utilities/category-icons"; +import { MoreHorizontal } from "lucide-react-native"; import { useState } from "react"; import { Pressable } from "react-native"; -const CATEGORY_ICONS: Record = { - attraction: Landmark, - entertainment: Ticket, - food: UtensilsCrossed, - lodging: BedDouble, - transportation: Car, -}; - -const RANDOM_ICON_POOL: LucideIcon[] = [ - Compass, - Mountain, - Globe, - Sun, - Music, - ShoppingBag, - Gem, - Star, - Bike, - Flame, -]; - -function hashStr(s: string): number { - let h = 0; - for (let i = 0; i < s.length; i++) - h = (Math.imul(31, h) + s.charCodeAt(i)) | 0; - return Math.abs(h); -} - -function getCategoryIcon(rawName: string): LucideIcon { - return ( - CATEGORY_ICONS[rawName.toLowerCase()] ?? - RANDOM_ICON_POOL[hashStr(rawName) % RANDOM_ICON_POOL.length]! - ); -} - -const toPascalCase = (str: string) => - str - .split(/\s+/) - .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()) - .join(" "); - interface StepSettingsProps { tripID: string; categories: string[]; @@ -157,16 +99,16 @@ export default function StepSettings({ {visibleCategories.map((cat) => { - const rawName = cat.name ?? ""; - const label = toPascalCase(rawName); - const icon = getCategoryIcon(rawName); + const name = cat.name ?? ""; + const label = cat.label ?? name; + const icon = getCategoryIcon(name); return ( toggleCategory(rawName)} + selected={categories.includes(name)} + onPress={() => toggleCategory(name)} /> ); })} @@ -345,4 +287,4 @@ export default function StepSettings({ /> ); -} +} \ No newline at end of file diff --git a/frontend/schemas/modelsCategoryAPIResponse.json b/frontend/schemas/modelsCategoryAPIResponse.json index 645b57d2..ba21dba1 100644 --- a/frontend/schemas/modelsCategoryAPIResponse.json +++ b/frontend/schemas/modelsCategoryAPIResponse.json @@ -3,11 +3,11 @@ "properties": { "created_at": { "type": "string" }, "icon": { "type": "string" }, - "is_hidden": { - "description": "only present for admins", - "type": "boolean" - }, + "is_default": { "type": "boolean" }, + "is_hidden": { "type": "boolean" }, + "label": { "type": "string" }, "name": { "type": "string" }, + "position": { "type": "integer" }, "trip_id": { "type": "string" }, "updated_at": { "type": "string" } }, diff --git a/frontend/schemas/modelsCategoryListResponse.json b/frontend/schemas/modelsCategoryListResponse.json index 9e3b1abb..f4d85d59 100644 --- a/frontend/schemas/modelsCategoryListResponse.json +++ b/frontend/schemas/modelsCategoryListResponse.json @@ -8,11 +8,11 @@ "properties": { "created_at": { "type": "string" }, "icon": { "type": "string" }, - "is_hidden": { - "description": "only present for admins", - "type": "boolean" - }, + "is_default": { "type": "boolean" }, + "is_hidden": { "type": "boolean" }, + "label": { "type": "string" }, "name": { "type": "string" }, + "position": { "type": "integer" }, "trip_id": { "type": "string" }, "updated_at": { "type": "string" } }, diff --git a/frontend/schemas/modelsCreateCategoryRequest.json b/frontend/schemas/modelsCreateCategoryRequest.json new file mode 100644 index 00000000..05986800 --- /dev/null +++ b/frontend/schemas/modelsCreateCategoryRequest.json @@ -0,0 +1,11 @@ +{ + "type": "object", + "required": ["label", "name", "trip_id"], + "properties": { + "icon": { "type": "string", "maxLength": 255 }, + "label": { "type": "string", "maxLength": 255, "minLength": 1 }, + "name": { "type": "string", "maxLength": 255, "minLength": 1 }, + "trip_id": { "type": "string" } + }, + "x-readme-ref-name": "models.CreateCategoryRequest" +} diff --git a/frontend/schemas/modelsCreatePitchRequest.json b/frontend/schemas/modelsCreatePitchRequest.json index fd9ed8eb..60075afa 100644 --- a/frontend/schemas/modelsCreatePitchRequest.json +++ b/frontend/schemas/modelsCreatePitchRequest.json @@ -5,6 +5,11 @@ "content_length": { "type": "integer", "minimum": 1 }, "content_type": { "type": "string", "minLength": 1 }, "description": { "type": "string" }, + "image_ids": { + "type": "array", + "maxItems": 5, + "items": { "type": "string" } + }, "title": { "type": "string", "minLength": 1 } }, "x-readme-ref-name": "models.CreatePitchRequest" diff --git a/frontend/schemas/modelsCreatePitchResponse.json b/frontend/schemas/modelsCreatePitchResponse.json index 459d5ed2..34d1cc57 100644 --- a/frontend/schemas/modelsCreatePitchResponse.json +++ b/frontend/schemas/modelsCreatePitchResponse.json @@ -10,6 +10,17 @@ "description": { "type": "string" }, "duration": { "type": "integer" }, "id": { "type": "string" }, + "images": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "medium_url": { "type": "string" } + }, + "x-readme-ref-name": "models.PitchImageInfo" + } + }, "title": { "type": "string" }, "trip_id": { "type": "string" }, "updated_at": { "type": "string" }, diff --git a/frontend/schemas/modelsLinkType.json b/frontend/schemas/modelsLinkType.json new file mode 100644 index 00000000..a6bc2f97 --- /dev/null +++ b/frontend/schemas/modelsLinkType.json @@ -0,0 +1,12 @@ +{ + "type": "string", + "enum": ["airbnb", "booking_com", "tiktok", "instagram", "generic"], + "x-enum-varnames": [ + "LinkTypeAirbnb", + "LinkTypeBookingCom", + "LinkTypeTikTok", + "LinkTypeInstagram", + "LinkTypeGeneric" + ], + "x-readme-ref-name": "models.LinkType" +} diff --git a/frontend/schemas/modelsParseLinkRequest.json b/frontend/schemas/modelsParseLinkRequest.json new file mode 100644 index 00000000..5ec8b096 --- /dev/null +++ b/frontend/schemas/modelsParseLinkRequest.json @@ -0,0 +1,6 @@ +{ + "type": "object", + "required": ["url"], + "properties": { "url": { "type": "string" } }, + "x-readme-ref-name": "models.ParseLinkRequest" +} diff --git a/frontend/schemas/modelsParsedActivityData.json b/frontend/schemas/modelsParsedActivityData.json new file mode 100644 index 00000000..a756088a --- /dev/null +++ b/frontend/schemas/modelsParsedActivityData.json @@ -0,0 +1,24 @@ +{ + "type": "object", + "properties": { + "category_suggestions": { "type": "array", "items": { "type": "string" } }, + "description": { "type": "string" }, + "media_url": { "type": "string" }, + "name": { "type": "string" }, + "source_type": { + "type": "string", + "enum": ["airbnb", "booking_com", "tiktok", "instagram", "generic"], + "x-enum-varnames": [ + "LinkTypeAirbnb", + "LinkTypeBookingCom", + "LinkTypeTikTok", + "LinkTypeInstagram", + "LinkTypeGeneric" + ], + "x-readme-ref-name": "models.LinkType" + }, + "source_url": { "type": "string" }, + "thumbnail_url": { "type": "string" } + }, + "x-readme-ref-name": "models.ParsedActivityData" +} diff --git a/frontend/schemas/modelsPitchAPIResponse.json b/frontend/schemas/modelsPitchAPIResponse.json index 642d52f8..8c0a1453 100644 --- a/frontend/schemas/modelsPitchAPIResponse.json +++ b/frontend/schemas/modelsPitchAPIResponse.json @@ -6,6 +6,17 @@ "description": { "type": "string" }, "duration": { "type": "integer" }, "id": { "type": "string" }, + "images": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "medium_url": { "type": "string" } + }, + "x-readme-ref-name": "models.PitchImageInfo" + } + }, "title": { "type": "string" }, "trip_id": { "type": "string" }, "updated_at": { "type": "string" }, diff --git a/frontend/schemas/modelsPitchCursorPageResult.json b/frontend/schemas/modelsPitchCursorPageResult.json index 193a8d05..3c5d51e0 100644 --- a/frontend/schemas/modelsPitchCursorPageResult.json +++ b/frontend/schemas/modelsPitchCursorPageResult.json @@ -11,6 +11,17 @@ "description": { "type": "string" }, "duration": { "type": "integer" }, "id": { "type": "string" }, + "images": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "medium_url": { "type": "string" } + }, + "x-readme-ref-name": "models.PitchImageInfo" + } + }, "title": { "type": "string" }, "trip_id": { "type": "string" }, "updated_at": { "type": "string" }, diff --git a/frontend/schemas/modelsPitchImageInfo.json b/frontend/schemas/modelsPitchImageInfo.json new file mode 100644 index 00000000..e4e0a9a4 --- /dev/null +++ b/frontend/schemas/modelsPitchImageInfo.json @@ -0,0 +1,8 @@ +{ + "type": "object", + "properties": { + "id": { "type": "string" }, + "medium_url": { "type": "string" } + }, + "x-readme-ref-name": "models.PitchImageInfo" +} diff --git a/frontend/schemas/modelsUpdatePitchRequest.json b/frontend/schemas/modelsUpdatePitchRequest.json index 5c76d7c8..52da7b10 100644 --- a/frontend/schemas/modelsUpdatePitchRequest.json +++ b/frontend/schemas/modelsUpdatePitchRequest.json @@ -3,6 +3,12 @@ "properties": { "description": { "type": "string" }, "duration": { "type": "integer", "minimum": 0 }, + "image_ids": { + "description": "ImageIDs, when non-nil, fully replaces the pitch's image associations.\nPass an empty slice to remove all images; omit the field to leave images unchanged.", + "type": "array", + "maxItems": 5, + "items": { "type": "string" } + }, "title": { "type": "string", "minLength": 1 } }, "x-readme-ref-name": "models.UpdatePitchRequest" diff --git a/frontend/schemas/realtimeEvent.json b/frontend/schemas/realtimeEvent.json new file mode 100644 index 00000000..f4fecfad --- /dev/null +++ b/frontend/schemas/realtimeEvent.json @@ -0,0 +1,14 @@ +{ + "type": "object", + "properties": { + "actor_id": { "type": "string" }, + "actor_name": { "type": "string" }, + "data": { "type": "object" }, + "entity_id": { "type": "string" }, + "id": { "type": "string" }, + "timestamp": { "type": "string" }, + "topic": { "type": "string" }, + "trip_id": { "type": "string" } + }, + "x-readme-ref-name": "realtime.Event" +} diff --git a/frontend/schemas/realtimeUnreadCountResponse.json b/frontend/schemas/realtimeUnreadCountResponse.json new file mode 100644 index 00000000..ad2ee431 --- /dev/null +++ b/frontend/schemas/realtimeUnreadCountResponse.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "properties": { "unread_count": { "type": "integer" } }, + "x-readme-ref-name": "realtime.UnreadCountResponse" +} diff --git a/frontend/types/schema.gen.ts b/frontend/types/schema.gen.ts index 7322ff30..a5a0b223 100644 --- a/frontend/types/schema.gen.ts +++ b/frontend/types/schema.gen.ts @@ -4,40 +4,6 @@ */ import type { - AddCategoryToActivity200, - AddCategoryToActivity400, - AddCategoryToActivity401, - AddCategoryToActivity403, - AddCategoryToActivity404, - AddCategoryToActivity422, - AddCategoryToActivity500, - AddCategoryToActivityMutationResponse, - AddCategoryToActivityPathParams, - AddMember201, - AddMember400, - AddMember401, - AddMember422, - AddMember500, - AddMemberMutationRequest, - AddMemberMutationResponse, - CheckS3Health200, - CheckS3Health503, - CheckS3HealthQueryResponse, - ConfirmUpload200, - ConfirmUpload400, - ConfirmUpload404, - ConfirmUpload422, - ConfirmUpload500, - ConfirmUploadMutationRequest, - ConfirmUploadMutationResponse, - CreateComment201, - CreateComment400, - CreateComment401, - CreateComment404, - CreateComment422, - CreateComment500, - CreateCommentMutationRequest, - CreateCommentMutationResponse, ErrsAPIError, ModelsDateRange, ModelsActivity, @@ -63,9 +29,11 @@ import type { ModelsConfirmUploadRequest, ModelsConfirmUploadResponse, ModelsCreateActivityRequest, + ModelsCreateCategoryRequest, ModelsCreateCommentRequest, ModelsCreateMembershipRequest, ModelsCreatePitchRequest, + ModelsPitchImageInfo, ModelsPitchAPIResponse, ModelsCreatePitchResponse, ModelsOptionType, @@ -78,6 +46,7 @@ import type { ModelsDayTime, ModelsGetFileResponse, ModelsGetFileAllSizesResponse, + ModelsLinkType, ModelsMatchedSubstring, ModelsMembership, ModelsMembershipAPIResponse, @@ -88,6 +57,8 @@ import type { ModelsOpeningHours, ModelsOptionWithScore, ModelsPaginatedCommentsResponse, + ModelsParseLinkRequest, + ModelsParsedActivityData, ModelsPitchCursorPageResult, ModelsPlaceDetailsRequest, ModelsPlaceGeometry, @@ -126,13 +97,24 @@ import type { ModelsUploadURLRequest, ModelsUploadURLResponse, ModelsUser, + RealtimeEvent, + RealtimeUnreadCountResponse, + CreateComment201, + CreateComment400, + CreateComment401, + CreateComment404, + CreateComment422, + CreateComment500, + CreateCommentMutationRequest, + CreateCommentMutationResponse, + DeleteCommentPathParams, DeleteComment204, DeleteComment400, DeleteComment401, DeleteComment404, DeleteComment500, DeleteCommentMutationResponse, - DeleteCommentPathParams, + UpdateCommentPathParams, UpdateComment200, UpdateComment400, UpdateComment401, @@ -141,31 +123,47 @@ import type { UpdateComment500, UpdateCommentMutationRequest, UpdateCommentMutationResponse, - UpdateCommentPathParams, + ConfirmUpload200, + ConfirmUpload400, + ConfirmUpload404, + ConfirmUpload422, + ConfirmUpload500, + ConfirmUploadMutationRequest, + ConfirmUploadMutationResponse, + CheckS3Health200, + CheckS3Health503, + CheckS3HealthQueryResponse, CreateUploadURLs201, CreateUploadURLs400, CreateUploadURLs422, CreateUploadURLs500, CreateUploadURLsMutationRequest, CreateUploadURLsMutationResponse, + GetFileAllSizesPathParams, GetFileAllSizes200, GetFileAllSizes400, GetFileAllSizes404, GetFileAllSizes500, - GetFileAllSizesPathParams, GetFileAllSizesQueryResponse, + DeleteImagePathParams, DeleteImage204, DeleteImage400, DeleteImage404, DeleteImage500, DeleteImageMutationResponse, - DeleteImagePathParams, + GetFilePathParams, GetFile200, GetFile400, GetFile404, GetFile500, - GetFilePathParams, GetFileQueryResponse, + AddMember201, + AddMember400, + AddMember401, + AddMember422, + AddMember500, + AddMemberMutationRequest, + AddMemberMutationResponse, SendNotification200, SendNotification400, SendNotification422, @@ -186,47 +184,47 @@ import type { GoogleMapsHealth200, GoogleMapsHealth500, GoogleMapsHealthQueryResponse, + TypeaheadPlacesQueryParams, TypeaheadPlaces200, TypeaheadPlaces400, TypeaheadPlaces500, - TypeaheadPlacesQueryParams, TypeaheadPlacesQueryResponse, + SearchTripsQueryParams, SearchTrips200, SearchTrips400, SearchTrips401, SearchTrips422, SearchTrips500, - SearchTripsQueryParams, SearchTripsQueryResponse, + SearchActivitiesPathParams, + SearchActivitiesQueryParams, SearchActivities200, SearchActivities400, SearchActivities401, SearchActivities404, SearchActivities422, SearchActivities500, - SearchActivitiesPathParams, - SearchActivitiesQueryParams, SearchActivitiesQueryResponse, + SearchTripMembersPathParams, + SearchTripMembersQueryParams, SearchTripMembers200, SearchTripMembers400, SearchTripMembers401, SearchTripMembers404, SearchTripMembers422, SearchTripMembers500, - SearchTripMembersPathParams, - SearchTripMembersQueryParams, SearchTripMembersQueryResponse, + JoinTripByInvitePathParams, JoinTripByInvite201, JoinTripByInvite400, JoinTripByInvite401, JoinTripByInvite500, JoinTripByInviteMutationResponse, - JoinTripByInvitePathParams, + GetAllTripsQueryParams, GetAllTrips200, GetAllTrips400, GetAllTrips401, GetAllTrips500, - GetAllTripsQueryParams, GetAllTripsQueryResponse, CreateTrip201, CreateTrip400, @@ -235,19 +233,20 @@ import type { CreateTrip500, CreateTripMutationRequest, CreateTripMutationResponse, + GetTripPathParams, GetTrip200, GetTrip400, GetTrip404, GetTrip500, - GetTripPathParams, GetTripQueryResponse, + DeleteTripPathParams, DeleteTrip204, DeleteTrip400, DeleteTrip401, DeleteTrip404, DeleteTrip500, DeleteTripMutationResponse, - DeleteTripPathParams, + UpdateTripPathParams, UpdateTrip200, UpdateTrip400, UpdateTrip401, @@ -256,16 +255,16 @@ import type { UpdateTrip500, UpdateTripMutationRequest, UpdateTripMutationResponse, - UpdateTripPathParams, + GetActivitiesByTripIDPathParams, + GetActivitiesByTripIDQueryParams, GetActivitiesByTripID200, GetActivitiesByTripID400, GetActivitiesByTripID401, GetActivitiesByTripID403, GetActivitiesByTripID404, GetActivitiesByTripID500, - GetActivitiesByTripIDPathParams, - GetActivitiesByTripIDQueryParams, GetActivitiesByTripIDQueryResponse, + CreateActivityPathParams, CreateActivity201, CreateActivity400, CreateActivity401, @@ -275,15 +274,24 @@ import type { CreateActivity500, CreateActivityMutationRequest, CreateActivityMutationResponse, - CreateActivityPathParams, + ParseActivityLinkPathParams, + ParseActivityLink200, + ParseActivityLink400, + ParseActivityLink401, + ParseActivityLink403, + ParseActivityLink422, + ParseActivityLink500, + ParseActivityLinkMutationRequest, + ParseActivityLinkMutationResponse, + GetActivityPathParams, GetActivity200, GetActivity400, GetActivity401, GetActivity403, GetActivity404, GetActivity500, - GetActivityPathParams, GetActivityQueryResponse, + UpdateActivityPathParams, UpdateActivity200, UpdateActivity400, UpdateActivity401, @@ -293,7 +301,7 @@ import type { UpdateActivity500, UpdateActivityMutationRequest, UpdateActivityMutationResponse, - UpdateActivityPathParams, + DeleteActivityPathParams, DeleteActivity204, DeleteActivity400, DeleteActivity401, @@ -301,16 +309,25 @@ import type { DeleteActivity404, DeleteActivity500, DeleteActivityMutationResponse, - DeleteActivityPathParams, + GetActivityCategoriesPathParams, + GetActivityCategoriesQueryParams, GetActivityCategories200, GetActivityCategories400, GetActivityCategories401, GetActivityCategories403, GetActivityCategories404, GetActivityCategories500, - GetActivityCategoriesPathParams, - GetActivityCategoriesQueryParams, GetActivityCategoriesQueryResponse, + AddCategoryToActivityPathParams, + AddCategoryToActivity200, + AddCategoryToActivity400, + AddCategoryToActivity401, + AddCategoryToActivity403, + AddCategoryToActivity404, + AddCategoryToActivity422, + AddCategoryToActivity500, + AddCategoryToActivityMutationResponse, + RemoveCategoryFromActivityPathParams, RemoveCategoryFromActivity204, RemoveCategoryFromActivity400, RemoveCategoryFromActivity401, @@ -319,7 +336,7 @@ import type { RemoveCategoryFromActivity422, RemoveCategoryFromActivity500, RemoveCategoryFromActivityMutationResponse, - RemoveCategoryFromActivityPathParams, + PostApiV1TripsTripidActivitiesActivityidRsvpPathParams, PostApiV1TripsTripidActivitiesActivityidRsvp200, PostApiV1TripsTripidActivitiesActivityidRsvp400, PostApiV1TripsTripidActivitiesActivityidRsvp401, @@ -329,7 +346,8 @@ import type { PostApiV1TripsTripidActivitiesActivityidRsvp500, PostApiV1TripsTripidActivitiesActivityidRsvpMutationRequest, PostApiV1TripsTripidActivitiesActivityidRsvpMutationResponse, - PostApiV1TripsTripidActivitiesActivityidRsvpPathParams, + GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams, + GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, GetApiV1TripsTripidActivitiesActivityidRsvps200, GetApiV1TripsTripidActivitiesActivityidRsvps400, GetApiV1TripsTripidActivitiesActivityidRsvps401, @@ -337,17 +355,52 @@ import type { GetApiV1TripsTripidActivitiesActivityidRsvps404, GetApiV1TripsTripidActivitiesActivityidRsvps422, GetApiV1TripsTripidActivitiesActivityidRsvps500, - GetApiV1TripsTripidActivitiesActivityidRsvpsPathParams, - GetApiV1TripsTripidActivitiesActivityidRsvpsQueryParams, GetApiV1TripsTripidActivitiesActivityidRsvpsQueryResponse, + GetTripActivityFeedPathParams, + GetTripActivityFeed200, + GetTripActivityFeed400, + GetTripActivityFeed401, + GetTripActivityFeed500, + GetTripActivityFeedQueryResponse, + GetUnreadActivityCountPathParams, + GetUnreadActivityCount200, + GetUnreadActivityCount400, + GetUnreadActivityCount401, + GetUnreadActivityCount500, + GetUnreadActivityCountQueryResponse, + MarkActivityEventReadPathParams, + MarkActivityEventRead204, + MarkActivityEventRead400, + MarkActivityEventRead401, + MarkActivityEventRead500, + MarkActivityEventReadMutationResponse, + GetCategoriesByTripIDPathParams, + GetCategoriesByTripIDQueryParams, GetCategoriesByTripID200, GetCategoriesByTripID400, GetCategoriesByTripID401, GetCategoriesByTripID403, GetCategoriesByTripID404, GetCategoriesByTripID500, - GetCategoriesByTripIDPathParams, GetCategoriesByTripIDQueryResponse, + CreateCategoryPathParams, + CreateCategory201, + CreateCategory400, + CreateCategory401, + CreateCategory403, + CreateCategory404, + CreateCategory500, + CreateCategoryMutationRequest, + CreateCategoryMutationResponse, + DeleteCategoryPathParams, + DeleteCategory204, + DeleteCategory400, + DeleteCategory401, + DeleteCategory403, + DeleteCategory404, + DeleteCategory500, + DeleteCategoryMutationResponse, + HideCategoryPathParams, HideCategory204, HideCategory400, HideCategory401, @@ -355,7 +408,7 @@ import type { HideCategory404, HideCategory500, HideCategoryMutationResponse, - HideCategoryPathParams, + ShowCategoryPathParams, ShowCategory204, ShowCategory400, ShowCategory401, @@ -363,7 +416,7 @@ import type { ShowCategory404, ShowCategory500, ShowCategoryMutationResponse, - ShowCategoryPathParams, + CreateTripInvitePathParams, CreateTripInvite201, CreateTripInvite400, CreateTripInvite401, @@ -372,29 +425,29 @@ import type { CreateTripInvite500, CreateTripInviteMutationRequest, CreateTripInviteMutationResponse, - CreateTripInvitePathParams, + GetTripMembersPathParams, + GetTripMembersQueryParams, GetTripMembers200, GetTripMembers400, GetTripMembers401, GetTripMembers404, GetTripMembers500, - GetTripMembersPathParams, - GetTripMembersQueryParams, GetTripMembersQueryResponse, + GetMembershipPathParams, GetMembership200, GetMembership400, GetMembership401, GetMembership404, GetMembership500, - GetMembershipPathParams, GetMembershipQueryResponse, + RemoveMemberPathParams, RemoveMember204, RemoveMember400, RemoveMember401, RemoveMember404, RemoveMember500, RemoveMemberMutationResponse, - RemoveMemberPathParams, + UpdateMembershipPathParams, UpdateMembership200, UpdateMembership400, UpdateMembership401, @@ -403,28 +456,28 @@ import type { UpdateMembership500, UpdateMembershipMutationRequest, UpdateMembershipMutationResponse, - UpdateMembershipPathParams, + DemoteFromAdminPathParams, DemoteFromAdmin200, DemoteFromAdmin400, DemoteFromAdmin401, DemoteFromAdmin404, DemoteFromAdmin500, DemoteFromAdminMutationResponse, - DemoteFromAdminPathParams, + PromoteToAdminPathParams, PromoteToAdmin200, PromoteToAdmin400, PromoteToAdmin401, PromoteToAdmin404, PromoteToAdmin500, PromoteToAdminMutationResponse, - PromoteToAdminPathParams, + ListPitchesPathParams, + ListPitchesQueryParams, ListPitches200, ListPitches400, ListPitches404, ListPitches500, - ListPitchesPathParams, - ListPitchesQueryParams, ListPitchesQueryResponse, + CreatePitchPathParams, CreatePitch201, CreatePitch400, CreatePitch404, @@ -432,19 +485,19 @@ import type { CreatePitch500, CreatePitchMutationRequest, CreatePitchMutationResponse, - CreatePitchPathParams, + GetPitchPathParams, GetPitch200, GetPitch400, GetPitch404, GetPitch500, - GetPitchPathParams, GetPitchQueryResponse, + DeletePitchPathParams, DeletePitch204, DeletePitch400, DeletePitch404, DeletePitch500, DeletePitchMutationResponse, - DeletePitchPathParams, + UpdatePitchPathParams, UpdatePitch200, UpdatePitch400, UpdatePitch404, @@ -452,7 +505,7 @@ import type { UpdatePitch500, UpdatePitchMutationRequest, UpdatePitchMutationResponse, - UpdatePitchPathParams, + CreateRankPollPathParams, CreateRankPoll201, CreateRankPoll400, CreateRankPoll401, @@ -461,15 +514,15 @@ import type { CreateRankPoll500, CreateRankPollMutationRequest, CreateRankPollMutationResponse, - CreateRankPollPathParams, + GetRankPollResultsPathParams, GetRankPollResults200, GetRankPollResults400, GetRankPollResults401, GetRankPollResults403, GetRankPollResults404, GetRankPollResults500, - GetRankPollResultsPathParams, GetRankPollResultsQueryResponse, + DeleteRankPollPathParams, DeleteRankPoll200, DeleteRankPoll400, DeleteRankPoll401, @@ -477,7 +530,7 @@ import type { DeleteRankPoll404, DeleteRankPoll500, DeleteRankPollMutationResponse, - DeleteRankPollPathParams, + UpdateRankPollPathParams, UpdateRankPoll200, UpdateRankPoll400, UpdateRankPoll401, @@ -487,7 +540,7 @@ import type { UpdateRankPoll500, UpdateRankPollMutationRequest, UpdateRankPollMutationResponse, - UpdateRankPollPathParams, + AddRankPollOptionPathParams, AddRankPollOption201, AddRankPollOption400, AddRankPollOption401, @@ -498,7 +551,7 @@ import type { AddRankPollOption500, AddRankPollOptionMutationRequest, AddRankPollOptionMutationResponse, - AddRankPollOptionPathParams, + DeleteRankPollOptionPathParams, DeleteRankPollOption200, DeleteRankPollOption400, DeleteRankPollOption401, @@ -507,7 +560,7 @@ import type { DeleteRankPollOption409, DeleteRankPollOption500, DeleteRankPollOptionMutationResponse, - DeleteRankPollOptionPathParams, + SubmitRankingPathParams, SubmitRanking200, SubmitRanking400, SubmitRanking401, @@ -517,23 +570,23 @@ import type { SubmitRanking500, SubmitRankingMutationRequest, SubmitRankingMutationResponse, - SubmitRankingPathParams, + GetRankPollVotersPathParams, GetRankPollVoters200, GetRankPollVoters400, GetRankPollVoters401, GetRankPollVoters403, GetRankPollVoters404, GetRankPollVoters500, - GetRankPollVotersPathParams, GetRankPollVotersQueryResponse, + GetPollsByTripIDPathParams, + GetPollsByTripIDQueryParams, GetPollsByTripID200, GetPollsByTripID400, GetPollsByTripID401, GetPollsByTripID403, GetPollsByTripID500, - GetPollsByTripIDPathParams, - GetPollsByTripIDQueryParams, GetPollsByTripIDQueryResponse, + CreatePollPathParams, CreatePoll201, CreatePoll400, CreatePoll401, @@ -542,15 +595,15 @@ import type { CreatePoll500, CreatePollMutationRequest, CreatePollMutationResponse, - CreatePollPathParams, + GetPollPathParams, GetPoll200, GetPoll400, GetPoll401, GetPoll403, GetPoll404, GetPoll500, - GetPollPathParams, GetPollQueryResponse, + DeletePollPathParams, DeletePoll200, DeletePoll400, DeletePoll401, @@ -558,7 +611,7 @@ import type { DeletePoll404, DeletePoll500, DeletePollMutationResponse, - DeletePollPathParams, + UpdatePollPathParams, UpdatePoll200, UpdatePoll400, UpdatePoll401, @@ -568,7 +621,7 @@ import type { UpdatePoll500, UpdatePollMutationRequest, UpdatePollMutationResponse, - UpdatePollPathParams, + AddPollOptionPathParams, AddPollOption201, AddPollOption400, AddPollOption401, @@ -579,7 +632,7 @@ import type { AddPollOption500, AddPollOptionMutationRequest, AddPollOptionMutationResponse, - AddPollOptionPathParams, + DeletePollOptionPathParams, DeletePollOption200, DeletePollOption400, DeletePollOption401, @@ -588,7 +641,7 @@ import type { DeletePollOption409, DeletePollOption500, DeletePollOptionMutationResponse, - DeletePollOptionPathParams, + CastVotePathParams, CastVote200, CastVote400, CastVote401, @@ -598,15 +651,14 @@ import type { CastVote500, CastVoteMutationRequest, CastVoteMutationResponse, - CastVotePathParams, + GetPaginatedCommentsPathParams, + GetPaginatedCommentsQueryParams, GetPaginatedComments200, GetPaginatedComments400, GetPaginatedComments401, GetPaginatedComments404, GetPaginatedComments422, GetPaginatedComments500, - GetPaginatedCommentsPathParams, - GetPaginatedCommentsQueryParams, GetPaginatedCommentsQueryResponse, CreateUser201, CreateUser400, @@ -619,18 +671,19 @@ import type { GetCurrentUser404, GetCurrentUser500, GetCurrentUserQueryResponse, + GetUserPathParams, GetUser200, GetUser400, GetUser404, GetUser500, - GetUserPathParams, GetUserQueryResponse, + DeleteUserPathParams, DeleteUser204, DeleteUser400, DeleteUser404, DeleteUser500, DeleteUserMutationResponse, - DeleteUserPathParams, + UpdateUserPathParams, UpdateUser200, UpdateUser400, UpdateUser404, @@ -638,7 +691,6 @@ import type { UpdateUser500, UpdateUserMutationRequest, UpdateUserMutationResponse, - UpdateUserPathParams, Healthcheck200, Healthcheck500, HealthcheckQueryResponse, @@ -781,8 +833,11 @@ export const modelsCastVoteRequestSchema = z.object({ export const modelsCategoryAPIResponseSchema = z.object({ created_at: z.optional(z.string()), icon: z.optional(z.string()), - is_hidden: z.optional(z.boolean().describe("only present for admins")), + is_default: z.optional(z.boolean()), + is_hidden: z.optional(z.boolean()), + label: z.optional(z.string()), name: z.optional(z.string()), + position: z.optional(z.int()), trip_id: z.optional(z.string()), updated_at: z.optional(z.string()), }) as unknown as z.ZodType; @@ -866,6 +921,13 @@ export const modelsCreateActivityRequestSchema = z.object({ trip_id: z.optional(z.string()), }) as unknown as z.ZodType; +export const modelsCreateCategoryRequestSchema = z.object({ + icon: z.optional(z.string().max(255)), + label: z.string().min(1).max(255), + name: z.string().min(1).max(255), + trip_id: z.string(), +}) as unknown as z.ZodType; + export const modelsCreateCommentRequestSchema = z.object({ content: z.string().min(1), entity_id: z.string(), @@ -887,15 +949,24 @@ export const modelsCreatePitchRequestSchema = z.object({ content_length: z.int().min(1), content_type: z.string().min(1), description: z.optional(z.string()), + image_ids: z.optional(z.array(z.string()).max(5)), title: z.string().min(1), }) as unknown as z.ZodType; +export const modelsPitchImageInfoSchema = z.object({ + id: z.optional(z.string()), + medium_url: z.optional(z.string()), +}) as unknown as z.ZodType; + export const modelsPitchAPIResponseSchema = z.object({ audio_url: z.optional(z.string()), created_at: z.optional(z.string()), description: z.optional(z.string()), duration: z.optional(z.int()), id: z.optional(z.string()), + get images() { + return z.array(modelsPitchImageInfoSchema).optional(); + }, title: z.optional(z.string()), trip_id: z.optional(z.string()), updated_at: z.optional(z.string()), @@ -983,6 +1054,14 @@ export const modelsGetFileAllSizesResponseSchema = z.object({ imageId: z.optional(z.string()), }) as unknown as z.ZodType; +export const modelsLinkTypeSchema = z.enum([ + "airbnb", + "booking_com", + "tiktok", + "instagram", + "generic", +]) as unknown as z.ZodType; + export const modelsMatchedSubstringSchema = z.object({ length: z.optional(z.int()), offset: z.optional(z.int()), @@ -1072,6 +1151,22 @@ export const modelsPaginatedCommentsResponseSchema = z.object({ next_cursor: z.optional(z.string()), }) as unknown as z.ZodType; +export const modelsParseLinkRequestSchema = z.object({ + url: z.string(), +}) as unknown as z.ZodType; + +export const modelsParsedActivityDataSchema = z.object({ + category_suggestions: z.optional(z.array(z.string())), + description: z.optional(z.string()), + media_url: z.optional(z.string()), + name: z.optional(z.string()), + get source_type() { + return modelsLinkTypeSchema.optional(); + }, + source_url: z.optional(z.string()), + thumbnail_url: z.optional(z.string()), +}) as unknown as z.ZodType; + export const modelsPitchCursorPageResultSchema = z.object({ get items() { return z.array(modelsPitchAPIResponseSchema).optional(); @@ -1440,6 +1535,14 @@ export const modelsUpdateMembershipRequestSchema = z.object({ export const modelsUpdatePitchRequestSchema = z.object({ description: z.optional(z.string()), duration: z.optional(z.int().min(0)), + image_ids: z.optional( + z + .array(z.string()) + .max(5) + .describe( + "ImageIDs, when non-nil, fully replaces the pitch's image associations.\nPass an empty slice to remove all images; omit the field to leave images unchanged.", + ), + ), title: z.optional(z.string().min(1)), }) as unknown as z.ZodType; @@ -1497,6 +1600,21 @@ export const modelsUserSchema = z.object({ username: z.optional(z.string()), }) as unknown as z.ZodType; +export const realtimeEventSchema = z.object({ + actor_id: z.optional(z.string()), + actor_name: z.optional(z.string()), + data: z.optional(z.object({})), + entity_id: z.optional(z.string()), + id: z.optional(z.string()), + timestamp: z.optional(z.string()), + topic: z.optional(z.string()), + trip_id: z.optional(z.string()), +}) as unknown as z.ZodType; + +export const realtimeUnreadCountResponseSchema = z.object({ + unread_count: z.optional(z.int()), +}) as unknown as z.ZodType; + /** * @description Created */ @@ -2645,6 +2763,63 @@ export const createActivityMutationResponseSchema = z.lazy( () => createActivity201Schema, ) as unknown as z.ZodType; +export const parseActivityLinkPathParamsSchema = z.object({ + tripID: z.string().describe("Trip ID"), +}) as unknown as z.ZodType; + +/** + * @description OK + */ +export const parseActivityLink200Schema = z.lazy( + () => modelsParsedActivityDataSchema, +) as unknown as z.ZodType; + +/** + * @description Bad Request + */ +export const parseActivityLink400Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unauthorized + */ +export const parseActivityLink401Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Forbidden + */ +export const parseActivityLink403Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unprocessable Entity + */ +export const parseActivityLink422Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Internal Server Error + */ +export const parseActivityLink500Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description URL to parse + */ +export const parseActivityLinkMutationRequestSchema = z.lazy( + () => modelsParseLinkRequestSchema, +) as unknown as z.ZodType; + +export const parseActivityLinkMutationResponseSchema = z.lazy( + () => parseActivityLink200Schema, +) as unknown as z.ZodType; + export const getActivityPathParamsSchema = z.object({ tripID: z.string().describe("Trip ID"), activityID: z.string().describe("Activity ID"), @@ -3136,10 +3311,126 @@ export const getApiV1TripsTripidActivitiesActivityidRsvpsQueryResponseSchema = () => getApiV1TripsTripidActivitiesActivityidRsvps200Schema, ) as unknown as z.ZodType; +export const getTripActivityFeedPathParamsSchema = z.object({ + tripID: z.string().describe("Trip ID (UUID)"), +}) as unknown as z.ZodType; + +/** + * @description OK + */ +export const getTripActivityFeed200Schema = z.array( + z.lazy(() => realtimeEventSchema), +) as unknown as z.ZodType; + +/** + * @description Invalid trip ID + */ +export const getTripActivityFeed400Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unauthorized + */ +export const getTripActivityFeed401Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Internal Server Error + */ +export const getTripActivityFeed500Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +export const getTripActivityFeedQueryResponseSchema = z.lazy( + () => getTripActivityFeed200Schema, +) as unknown as z.ZodType; + +export const getUnreadActivityCountPathParamsSchema = z.object({ + tripID: z.string().describe("Trip ID (UUID)"), +}) as unknown as z.ZodType; + +/** + * @description OK + */ +export const getUnreadActivityCount200Schema = z.lazy( + () => realtimeUnreadCountResponseSchema, +) as unknown as z.ZodType; + +/** + * @description Invalid trip ID + */ +export const getUnreadActivityCount400Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unauthorized + */ +export const getUnreadActivityCount401Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Internal Server Error + */ +export const getUnreadActivityCount500Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +export const getUnreadActivityCountQueryResponseSchema = z.lazy( + () => getUnreadActivityCount200Schema, +) as unknown as z.ZodType; + +export const markActivityEventReadPathParamsSchema = z.object({ + tripID: z.string().describe("Trip ID"), + eventID: z.string().describe("Event ID"), +}) as unknown as z.ZodType; + +/** + * @description No Content + */ +export const markActivityEventRead204Schema = + z.any() as unknown as z.ZodType; + +/** + * @description Bad Request + */ +export const markActivityEventRead400Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unauthorized + */ +export const markActivityEventRead401Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Internal Server Error + */ +export const markActivityEventRead500Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +export const markActivityEventReadMutationResponseSchema = z.lazy( + () => markActivityEventRead204Schema, +) as unknown as z.ZodType; + export const getCategoriesByTripIDPathParamsSchema = z.object({ tripID: z.string().describe("Trip ID"), }) as unknown as z.ZodType; +export const getCategoriesByTripIDQueryParamsSchema = z + .object({ + include_hidden: z.optional( + z.boolean().describe("Include hidden categories (admin only)"), + ), + }) + .optional() as unknown as z.ZodType; + /** * @description OK */ @@ -3186,6 +3477,113 @@ export const getCategoriesByTripIDQueryResponseSchema = z.lazy( () => getCategoriesByTripID200Schema, ) as unknown as z.ZodType; +export const createCategoryPathParamsSchema = z.object({ + tripID: z.string().describe("Trip ID"), +}) as unknown as z.ZodType; + +/** + * @description Created + */ +export const createCategory201Schema = z.lazy( + () => modelsCategoryAPIResponseSchema, +) as unknown as z.ZodType; + +/** + * @description Bad Request + */ +export const createCategory400Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unauthorized + */ +export const createCategory401Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Forbidden + */ +export const createCategory403Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Not Found + */ +export const createCategory404Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Internal Server Error + */ +export const createCategory500Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Category details + */ +export const createCategoryMutationRequestSchema = z.lazy( + () => modelsCreateCategoryRequestSchema, +) as unknown as z.ZodType; + +export const createCategoryMutationResponseSchema = z.lazy( + () => createCategory201Schema, +) as unknown as z.ZodType; + +export const deleteCategoryPathParamsSchema = z.object({ + tripID: z.string().describe("Trip ID"), + name: z.string().describe("Category name"), +}) as unknown as z.ZodType; + +/** + * @description No Content + */ +export const deleteCategory204Schema = + z.any() as unknown as z.ZodType; + +/** + * @description Bad Request + */ +export const deleteCategory400Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Unauthorized + */ +export const deleteCategory401Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Forbidden + */ +export const deleteCategory403Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Not Found + */ +export const deleteCategory404Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +/** + * @description Internal Server Error + */ +export const deleteCategory500Schema = z.lazy( + () => errsAPIErrorSchema, +) as unknown as z.ZodType; + +export const deleteCategoryMutationResponseSchema = z.lazy( + () => deleteCategory204Schema, +) as unknown as z.ZodType; + export const hideCategoryPathParamsSchema = z.object({ tripID: z.string().describe("Trip ID"), name: z.string().describe("Category name"), diff --git a/frontend/types/types.gen.ts b/frontend/types/types.gen.ts index 91153b4e..c732b8bd 100644 --- a/frontend/types/types.gen.ts +++ b/frontend/types/types.gen.ts @@ -324,14 +324,25 @@ export type ModelsCategoryAPIResponse = { */ icon?: string; /** - * @description only present for admins + * @type boolean | undefined + */ + is_default?: boolean; + /** * @type boolean | undefined */ is_hidden?: boolean; + /** + * @type string | undefined + */ + label?: string; /** * @type string | undefined */ name?: string; + /** + * @type integer | undefined + */ + position?: number; /** * @type string | undefined */ @@ -535,6 +546,30 @@ export type ModelsCreateActivityRequest = { trip_id?: string; }; +export type ModelsCreateCategoryRequest = { + /** + * @maxLength 255 + * @type string | undefined + */ + icon?: string; + /** + * @minLength 1 + * @maxLength 255 + * @type string + */ + label: string; + /** + * @minLength 1 + * @maxLength 255 + * @type string + */ + name: string; + /** + * @type string + */ + trip_id: string; +}; + export type ModelsCreateCommentRequest = { /** * @minLength 1 @@ -592,6 +627,10 @@ export type ModelsCreatePitchRequest = { * @type string | undefined */ description?: string; + /** + * @type array | undefined + */ + image_ids?: string[]; /** * @minLength 1 * @type string @@ -599,6 +638,17 @@ export type ModelsCreatePitchRequest = { title: string; }; +export type ModelsPitchImageInfo = { + /** + * @type string | undefined + */ + id?: string; + /** + * @type string | undefined + */ + medium_url?: string; +}; + export type ModelsPitchAPIResponse = { /** * @type string | undefined @@ -620,6 +670,10 @@ export type ModelsPitchAPIResponse = { * @type string | undefined */ id?: string; + /** + * @type array | undefined + */ + images?: ModelsPitchImageInfo[]; /** * @type string | undefined */ @@ -808,6 +862,19 @@ export type ModelsGetFileAllSizesResponse = { imageId?: string; }; +export const modelsLinkType = { + LinkTypeAirbnb: "airbnb", + LinkTypeBookingCom: "booking_com", + LinkTypeTikTok: "tiktok", + LinkTypeInstagram: "instagram", + LinkTypeGeneric: "generic", +} as const; + +export type ModelsLinkTypeEnumKey = + (typeof modelsLinkType)[keyof typeof modelsLinkType]; + +export type ModelsLinkType = ModelsLinkTypeEnumKey; + export type ModelsMatchedSubstring = { /** * @type integer | undefined @@ -1022,6 +1089,44 @@ export type ModelsPaginatedCommentsResponse = { next_cursor?: string; }; +export type ModelsParseLinkRequest = { + /** + * @type string + */ + url: string; +}; + +export type ModelsParsedActivityData = { + /** + * @type array | undefined + */ + category_suggestions?: string[]; + /** + * @type string | undefined + */ + description?: string; + /** + * @type string | undefined + */ + media_url?: string; + /** + * @type string | undefined + */ + name?: string; + /** + * @type string | undefined + */ + source_type?: ModelsLinkType; + /** + * @type string | undefined + */ + source_url?: string; + /** + * @type string | undefined + */ + thumbnail_url?: string; +}; + export type ModelsPitchCursorPageResult = { /** * @type array | undefined @@ -1817,6 +1922,11 @@ export type ModelsUpdatePitchRequest = { * @type integer | undefined */ duration?: number; + /** + * @description ImageIDs, when non-nil, fully replaces the pitch\'s image associations.\nPass an empty slice to remove all images; omit the field to leave images unchanged. + * @type array | undefined + */ + image_ids?: string[]; /** * @minLength 1 * @type string | undefined @@ -1977,6 +2087,48 @@ export type ModelsUser = { username?: string; }; +export type RealtimeEvent = { + /** + * @type string | undefined + */ + actor_id?: string; + /** + * @type string | undefined + */ + actor_name?: string; + /** + * @type object | undefined + */ + data?: object; + /** + * @type string | undefined + */ + entity_id?: string; + /** + * @type string | undefined + */ + id?: string; + /** + * @type string | undefined + */ + timestamp?: string; + /** + * @type string | undefined + */ + topic?: string; + /** + * @type string | undefined + */ + trip_id?: string; +}; + +export type RealtimeUnreadCountResponse = { + /** + * @type integer | undefined + */ + unread_count?: number; +}; + /** * @description Created */ @@ -3103,6 +3255,63 @@ export type CreateActivityMutation = { | CreateActivity500; }; +export type ParseActivityLinkPathParams = { + /** + * @description Trip ID + * @type string + */ + tripID: string; +}; + +/** + * @description OK + */ +export type ParseActivityLink200 = ModelsParsedActivityData; + +/** + * @description Bad Request + */ +export type ParseActivityLink400 = ErrsAPIError; + +/** + * @description Unauthorized + */ +export type ParseActivityLink401 = ErrsAPIError; + +/** + * @description Forbidden + */ +export type ParseActivityLink403 = ErrsAPIError; + +/** + * @description Unprocessable Entity + */ +export type ParseActivityLink422 = ErrsAPIError; + +/** + * @description Internal Server Error + */ +export type ParseActivityLink500 = ErrsAPIError; + +/** + * @description URL to parse + */ +export type ParseActivityLinkMutationRequest = ModelsParseLinkRequest; + +export type ParseActivityLinkMutationResponse = ParseActivityLink200; + +export type ParseActivityLinkMutation = { + Response: ParseActivityLink200; + Request: ParseActivityLinkMutationRequest; + PathParams: ParseActivityLinkPathParams; + Errors: + | ParseActivityLink400 + | ParseActivityLink401 + | ParseActivityLink403 + | ParseActivityLink422 + | ParseActivityLink500; +}; + export type GetActivityPathParams = { /** * @description Trip ID @@ -3642,6 +3851,128 @@ export type GetApiV1TripsTripidActivitiesActivityidRsvpsQuery = { | GetApiV1TripsTripidActivitiesActivityidRsvps500; }; +export type GetTripActivityFeedPathParams = { + /** + * @description Trip ID (UUID) + * @type string + */ + tripID: string; +}; + +/** + * @description OK + */ +export type GetTripActivityFeed200 = RealtimeEvent[]; + +/** + * @description Invalid trip ID + */ +export type GetTripActivityFeed400 = ErrsAPIError; + +/** + * @description Unauthorized + */ +export type GetTripActivityFeed401 = ErrsAPIError; + +/** + * @description Internal Server Error + */ +export type GetTripActivityFeed500 = ErrsAPIError; + +export type GetTripActivityFeedQueryResponse = GetTripActivityFeed200; + +export type GetTripActivityFeedQuery = { + Response: GetTripActivityFeed200; + PathParams: GetTripActivityFeedPathParams; + Errors: + | GetTripActivityFeed400 + | GetTripActivityFeed401 + | GetTripActivityFeed500; +}; + +export type GetUnreadActivityCountPathParams = { + /** + * @description Trip ID (UUID) + * @type string + */ + tripID: string; +}; + +/** + * @description OK + */ +export type GetUnreadActivityCount200 = RealtimeUnreadCountResponse; + +/** + * @description Invalid trip ID + */ +export type GetUnreadActivityCount400 = ErrsAPIError; + +/** + * @description Unauthorized + */ +export type GetUnreadActivityCount401 = ErrsAPIError; + +/** + * @description Internal Server Error + */ +export type GetUnreadActivityCount500 = ErrsAPIError; + +export type GetUnreadActivityCountQueryResponse = GetUnreadActivityCount200; + +export type GetUnreadActivityCountQuery = { + Response: GetUnreadActivityCount200; + PathParams: GetUnreadActivityCountPathParams; + Errors: + | GetUnreadActivityCount400 + | GetUnreadActivityCount401 + | GetUnreadActivityCount500; +}; + +export type MarkActivityEventReadPathParams = { + /** + * @description Trip ID + * @type string + */ + tripID: string; + /** + * @description Event ID + * @type string + */ + eventID: string; +}; + +/** + * @description No Content + */ +export type MarkActivityEventRead204 = any; + +/** + * @description Bad Request + */ +export type MarkActivityEventRead400 = ErrsAPIError; + +/** + * @description Unauthorized + */ +export type MarkActivityEventRead401 = ErrsAPIError; + +/** + * @description Internal Server Error + */ +export type MarkActivityEventRead500 = ErrsAPIError; + +export type MarkActivityEventReadMutationResponse = MarkActivityEventRead204; + +export type MarkActivityEventReadMutation = { + Response: MarkActivityEventRead204; + PathParams: MarkActivityEventReadPathParams; + Errors: + | MarkActivityEventRead400 + | MarkActivityEventRead401 + | MarkActivityEventRead500; +}; + export type GetCategoriesByTripIDPathParams = { /** * @description Trip ID @@ -3650,6 +3981,14 @@ export type GetCategoriesByTripIDPathParams = { tripID: string; }; +export type GetCategoriesByTripIDQueryParams = { + /** + * @description Include hidden categories (admin only) + * @type boolean | undefined + */ + include_hidden?: boolean; +}; + /** * @description OK */ @@ -3685,6 +4024,7 @@ export type GetCategoriesByTripIDQueryResponse = GetCategoriesByTripID200; export type GetCategoriesByTripIDQuery = { Response: GetCategoriesByTripID200; PathParams: GetCategoriesByTripIDPathParams; + QueryParams: GetCategoriesByTripIDQueryParams; Errors: | GetCategoriesByTripID400 | GetCategoriesByTripID401 @@ -3693,6 +4033,119 @@ export type GetCategoriesByTripIDQuery = { | GetCategoriesByTripID500; }; +export type CreateCategoryPathParams = { + /** + * @description Trip ID + * @type string + */ + tripID: string; +}; + +/** + * @description Created + */ +export type CreateCategory201 = ModelsCategoryAPIResponse; + +/** + * @description Bad Request + */ +export type CreateCategory400 = ErrsAPIError; + +/** + * @description Unauthorized + */ +export type CreateCategory401 = ErrsAPIError; + +/** + * @description Forbidden + */ +export type CreateCategory403 = ErrsAPIError; + +/** + * @description Not Found + */ +export type CreateCategory404 = ErrsAPIError; + +/** + * @description Internal Server Error + */ +export type CreateCategory500 = ErrsAPIError; + +/** + * @description Category details + */ +export type CreateCategoryMutationRequest = ModelsCreateCategoryRequest; + +export type CreateCategoryMutationResponse = CreateCategory201; + +export type CreateCategoryMutation = { + Response: CreateCategory201; + Request: CreateCategoryMutationRequest; + PathParams: CreateCategoryPathParams; + Errors: + | CreateCategory400 + | CreateCategory401 + | CreateCategory403 + | CreateCategory404 + | CreateCategory500; +}; + +export type DeleteCategoryPathParams = { + /** + * @description Trip ID + * @type string + */ + tripID: string; + /** + * @description Category name + * @type string + */ + name: string; +}; + +/** + * @description No Content + */ +export type DeleteCategory204 = any; + +/** + * @description Bad Request + */ +export type DeleteCategory400 = ErrsAPIError; + +/** + * @description Unauthorized + */ +export type DeleteCategory401 = ErrsAPIError; + +/** + * @description Forbidden + */ +export type DeleteCategory403 = ErrsAPIError; + +/** + * @description Not Found + */ +export type DeleteCategory404 = ErrsAPIError; + +/** + * @description Internal Server Error + */ +export type DeleteCategory500 = ErrsAPIError; + +export type DeleteCategoryMutationResponse = DeleteCategory204; + +export type DeleteCategoryMutation = { + Response: DeleteCategory204; + PathParams: DeleteCategoryPathParams; + Errors: + | DeleteCategory400 + | DeleteCategory401 + | DeleteCategory403 + | DeleteCategory404 + | DeleteCategory500; +}; + export type HideCategoryPathParams = { /** * @description Trip ID diff --git a/frontend/utilities/category-icons.ts b/frontend/utilities/category-icons.ts new file mode 100644 index 00000000..cbc1b677 --- /dev/null +++ b/frontend/utilities/category-icons.ts @@ -0,0 +1,51 @@ +import { + BarChart2, + BedDouble, + Bike, + CalendarDays, + Car, + Compass, + Flame, + Gem, + Globe, + Mountain, + Music, + ShoppingBag, + Star, + Sun, + type LucideIcon, +} from "lucide-react-native"; + +const CATEGORY_ICONS: Record = { + housing: BedDouble, + transportation: Car, + activities: Compass, + polls: BarChart2, + itinerary: CalendarDays, +}; + +const RANDOM_ICON_POOL: LucideIcon[] = [ + Mountain, + Globe, + Sun, + Music, + ShoppingBag, + Gem, + Star, + Bike, + Flame, +]; + +function hashStr(s: string): number { + let h = 0; + for (let i = 0; i < s.length; i++) + h = (Math.imul(31, h) + s.charCodeAt(i)) | 0; + return Math.abs(h); +} + +export function getCategoryIcon(name: string): LucideIcon { + return ( + CATEGORY_ICONS[name.toLowerCase()] ?? + RANDOM_ICON_POOL[hashStr(name) % RANDOM_ICON_POOL.length]! + ); +} \ No newline at end of file diff --git a/frontend/utilities/string.ts b/frontend/utilities/string.ts new file mode 100644 index 00000000..f78587e9 --- /dev/null +++ b/frontend/utilities/string.ts @@ -0,0 +1,6 @@ +export function toPascalCase(str: string): string { + return str + .split(/\s+/) + .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()) + .join(" "); +} \ No newline at end of file