diff --git a/src/index.tsx b/src/index.tsx index 5b6ff37..827d0b8 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -5344,43 +5344,6 @@ export type GetMyDrillRunsQuery = { }>; }; -export type GetLiveStreamsQueryVariables = Exact<{ - limit?: Scalars["Int"]["input"]; -}>; - -export type GetLiveStreamsQuery = { - __typename?: "Query"; - getFeedVideos: { - __typename?: "VideoHistoryGQL"; - videos: Array<{ - __typename?: "VideoGQL"; - id: number; - name?: string | null; - startTime?: any | null; - createdAt?: any | null; - screenshotUri?: string | null; - elapsedTime?: number | null; - owner?: { - __typename?: "UserGQL"; - id: number; - username: string; - profileImageUri?: string | null; - } | null; - stream?: { - __typename?: "UploadStreamGQL"; - id: string; - isCompleted: boolean; - lastSegmentUploadedAt?: any | null; - } | null; - }>; - pageInfo: { - __typename?: "PageInfoGQL"; - hasNextPage: boolean; - endCursor?: string | null; - }; - }; -}; - export type GetVideoMakePercentageIntervalsQueryVariables = Exact<{ videoId: Scalars["ID"]["input"]; intervalDuration: Scalars["Int"]["input"]; @@ -6722,11 +6685,11 @@ export type ReactToVideoMutation = { reactToVideo: boolean; }; -export type GetRecordedStreamsQueryVariables = Exact<{ +export type GetShotLabVideosQueryVariables = Exact<{ limit?: Scalars["Int"]["input"]; }>; -export type GetRecordedStreamsQuery = { +export type GetShotLabVideosQuery = { __typename?: "Query"; getFeedVideos: { __typename?: "VideoHistoryGQL"; @@ -6744,6 +6707,12 @@ export type GetRecordedStreamsQuery = { username: string; profileImageUri?: string | null; } | null; + stream?: { + __typename?: "UploadStreamGQL"; + id: string; + isCompleted: boolean; + lastSegmentUploadedAt?: any | null; + } | null; }>; }; }; @@ -12148,105 +12117,6 @@ export type GetMyDrillRunsQueryResult = Apollo.QueryResult< GetMyDrillRunsQuery, GetMyDrillRunsQueryVariables >; -export const GetLiveStreamsDocument = gql` - query GetLiveStreams($limit: Int! = 25) { - getFeedVideos( - limit: $limit - filters: { isStreamCompleted: false, requireCursorCompletion: false } - includePrivate: MINE - feedInput: { allUsers: true } - ) { - videos { - id - name - startTime - createdAt - screenshotUri - elapsedTime - owner { - id - username - profileImageUri - } - stream { - id - isCompleted - lastSegmentUploadedAt - } - } - pageInfo { - hasNextPage - endCursor - } - } - } -`; - -/** - * __useGetLiveStreamsQuery__ - * - * To run a query within a React component, call `useGetLiveStreamsQuery` and pass it any options that fit your needs. - * When your component renders, `useGetLiveStreamsQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useGetLiveStreamsQuery({ - * variables: { - * limit: // value for 'limit' - * }, - * }); - */ -export function useGetLiveStreamsQuery( - baseOptions?: Apollo.QueryHookOptions< - GetLiveStreamsQuery, - GetLiveStreamsQueryVariables - >, -) { - const options = { ...defaultOptions, ...baseOptions }; - return Apollo.useQuery( - GetLiveStreamsDocument, - options, - ); -} -export function useGetLiveStreamsLazyQuery( - baseOptions?: Apollo.LazyQueryHookOptions< - GetLiveStreamsQuery, - GetLiveStreamsQueryVariables - >, -) { - const options = { ...defaultOptions, ...baseOptions }; - return Apollo.useLazyQuery( - GetLiveStreamsDocument, - options, - ); -} -export function useGetLiveStreamsSuspenseQuery( - baseOptions?: Apollo.SuspenseQueryHookOptions< - GetLiveStreamsQuery, - GetLiveStreamsQueryVariables - >, -) { - const options = { ...defaultOptions, ...baseOptions }; - return Apollo.useSuspenseQuery< - GetLiveStreamsQuery, - GetLiveStreamsQueryVariables - >(GetLiveStreamsDocument, options); -} -export type GetLiveStreamsQueryHookResult = ReturnType< - typeof useGetLiveStreamsQuery ->; -export type GetLiveStreamsLazyQueryHookResult = ReturnType< - typeof useGetLiveStreamsLazyQuery ->; -export type GetLiveStreamsSuspenseQueryHookResult = ReturnType< - typeof useGetLiveStreamsSuspenseQuery ->; -export type GetLiveStreamsQueryResult = Apollo.QueryResult< - GetLiveStreamsQuery, - GetLiveStreamsQueryVariables ->; export const GetVideoMakePercentageIntervalsDocument = gql` query GetVideoMakePercentageIntervals( $videoId: ID! @@ -14545,11 +14415,10 @@ export type ReactToVideoMutationOptions = Apollo.BaseMutationOptions< ReactToVideoMutation, ReactToVideoMutationVariables >; -export const GetRecordedStreamsDocument = gql` - query GetRecordedStreams($limit: Int! = 25) { +export const GetShotLabVideosDocument = gql` + query GetShotLabVideos($limit: Int! = 25) { getFeedVideos( limit: $limit - filters: { isStreamCompleted: true, excludeVideosWithNoShots: true } includePrivate: MINE feedInput: { allUsers: true } ) { @@ -14565,75 +14434,80 @@ export const GetRecordedStreamsDocument = gql` username profileImageUri } + stream { + id + isCompleted + lastSegmentUploadedAt + } } } } `; /** - * __useGetRecordedStreamsQuery__ + * __useGetShotLabVideosQuery__ * - * To run a query within a React component, call `useGetRecordedStreamsQuery` and pass it any options that fit your needs. - * When your component renders, `useGetRecordedStreamsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * To run a query within a React component, call `useGetShotLabVideosQuery` and pass it any options that fit your needs. + * When your component renders, `useGetShotLabVideosQuery` returns an object from Apollo Client that contains loading, error, and data properties * you can use to render your UI. * * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; * * @example - * const { data, loading, error } = useGetRecordedStreamsQuery({ + * const { data, loading, error } = useGetShotLabVideosQuery({ * variables: { * limit: // value for 'limit' * }, * }); */ -export function useGetRecordedStreamsQuery( +export function useGetShotLabVideosQuery( baseOptions?: Apollo.QueryHookOptions< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables + GetShotLabVideosQuery, + GetShotLabVideosQueryVariables >, ) { const options = { ...defaultOptions, ...baseOptions }; - return Apollo.useQuery< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables - >(GetRecordedStreamsDocument, options); + return Apollo.useQuery( + GetShotLabVideosDocument, + options, + ); } -export function useGetRecordedStreamsLazyQuery( +export function useGetShotLabVideosLazyQuery( baseOptions?: Apollo.LazyQueryHookOptions< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables + GetShotLabVideosQuery, + GetShotLabVideosQueryVariables >, ) { const options = { ...defaultOptions, ...baseOptions }; return Apollo.useLazyQuery< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables - >(GetRecordedStreamsDocument, options); + GetShotLabVideosQuery, + GetShotLabVideosQueryVariables + >(GetShotLabVideosDocument, options); } -export function useGetRecordedStreamsSuspenseQuery( +export function useGetShotLabVideosSuspenseQuery( baseOptions?: Apollo.SuspenseQueryHookOptions< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables + GetShotLabVideosQuery, + GetShotLabVideosQueryVariables >, ) { const options = { ...defaultOptions, ...baseOptions }; return Apollo.useSuspenseQuery< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables - >(GetRecordedStreamsDocument, options); + GetShotLabVideosQuery, + GetShotLabVideosQueryVariables + >(GetShotLabVideosDocument, options); } -export type GetRecordedStreamsQueryHookResult = ReturnType< - typeof useGetRecordedStreamsQuery +export type GetShotLabVideosQueryHookResult = ReturnType< + typeof useGetShotLabVideosQuery >; -export type GetRecordedStreamsLazyQueryHookResult = ReturnType< - typeof useGetRecordedStreamsLazyQuery +export type GetShotLabVideosLazyQueryHookResult = ReturnType< + typeof useGetShotLabVideosLazyQuery >; -export type GetRecordedStreamsSuspenseQueryHookResult = ReturnType< - typeof useGetRecordedStreamsSuspenseQuery +export type GetShotLabVideosSuspenseQueryHookResult = ReturnType< + typeof useGetShotLabVideosSuspenseQuery >; -export type GetRecordedStreamsQueryResult = Apollo.QueryResult< - GetRecordedStreamsQuery, - GetRecordedStreamsQueryVariables +export type GetShotLabVideosQueryResult = Apollo.QueryResult< + GetShotLabVideosQuery, + GetShotLabVideosQueryVariables >; export const GetRecordedStreamShotsDocument = gql` query GetRecordedStreamShots($videoId: Int!, $limit: Int! = 200) { diff --git a/src/operations/live_streams.gql b/src/operations/live_streams.gql deleted file mode 100644 index 45e4167..0000000 --- a/src/operations/live_streams.gql +++ /dev/null @@ -1,34 +0,0 @@ -# Lightweight listing of live (in-progress) streams for pickers like the -# Shot Lab "follow a live stream" flow. Selects only what a picker card -# needs; intentionally avoids the heavy VideoCardFields fragment. -query GetLiveStreams($limit: Int! = 25) { - getFeedVideos( - limit: $limit - filters: { isStreamCompleted: false, requireCursorCompletion: false } - includePrivate: MINE - feedInput: { allUsers: true } - ) { - videos { - id - name - startTime - createdAt - screenshotUri - elapsedTime - owner { - id - username - profileImageUri - } - stream { - id - isCompleted - lastSegmentUploadedAt - } - } - pageInfo { - hasNextPage - endCursor - } - } -} diff --git a/src/operations/recorded_shots.gql b/src/operations/recorded_shots.gql index 2ae77bf..2b518cb 100644 --- a/src/operations/recorded_shots.gql +++ b/src/operations/recorded_shots.gql @@ -1,8 +1,10 @@ -# Lightweight two-step picker data for loading a recorded shot into Shot Lab. -query GetRecordedStreams($limit: Int! = 25) { +# Lightweight two-step picker data for Shot Lab's video-first source: recent +# videos (completed or still uploading — no completion gate, so an in-progress +# recording with no shots yet still appears), then that video's shots. The +# stream fields let the client hint at "actively updating" without gating. +query GetShotLabVideos($limit: Int! = 25) { getFeedVideos( limit: $limit - filters: { isStreamCompleted: true, excludeVideosWithNoShots: true } includePrivate: MINE feedInput: { allUsers: true } ) { @@ -18,6 +20,11 @@ query GetRecordedStreams($limit: Int! = 25) { username profileImageUri } + stream { + id + isCompleted + lastSegmentUploadedAt + } } } }