Compare commits
11 Commits
loewy/add-
...
84d3a0252d
| Author | SHA1 | Date | |
|---|---|---|---|
| 84d3a0252d | |||
|
|
1de4a97cb6 | ||
| 130314546c | |||
| b88f172355 | |||
| 639fc88b0b | |||
| 20f50368c9 | |||
| 8367c2d0cd | |||
| b0c62f6e80 | |||
| bc1ff66467 | |||
| ae37a3d9d9 | |||
|
|
114b21400e |
189
src/index.tsx
189
src/index.tsx
@@ -205,6 +205,11 @@ export enum ClientUploadStatusEnum {
|
||||
UploadEnabled = "UPLOAD_ENABLED",
|
||||
}
|
||||
|
||||
export type ClusterAssignmentInput = {
|
||||
clusterId: Scalars["Int"]["input"];
|
||||
userId?: InputMaybe<Scalars["Int"]["input"]>;
|
||||
};
|
||||
|
||||
export type CommentGql = {
|
||||
__typename?: "CommentGQL";
|
||||
id: Scalars["Int"]["output"];
|
||||
@@ -224,6 +229,11 @@ export type CreateBucketSetInput = {
|
||||
keyName: Scalars["String"]["input"];
|
||||
};
|
||||
|
||||
export type CreateCustomerPortalSessionResultGql = {
|
||||
__typename?: "CreateCustomerPortalSessionResultGQL";
|
||||
portalUrl: Scalars["String"]["output"];
|
||||
};
|
||||
|
||||
export type CreateSubscriptionResultGql = {
|
||||
__typename?: "CreateSubscriptionResultGQL";
|
||||
checkoutUrl: Scalars["String"]["output"];
|
||||
@@ -2177,6 +2187,12 @@ export type FilterInput =
|
||||
videoId: Array<Scalars["Int"]["input"]>;
|
||||
};
|
||||
|
||||
export type FinalizePlayerAssignmentsInput = {
|
||||
clusterAssignments?: Array<ClusterAssignmentInput>;
|
||||
shotMoves?: Array<ShotMoveInput>;
|
||||
videoId: Scalars["Int"]["input"];
|
||||
};
|
||||
|
||||
export type FloatOrdering = {
|
||||
descending?: Scalars["Boolean"]["input"];
|
||||
startingAt?: InputMaybe<Scalars["Float"]["input"]>;
|
||||
@@ -2373,6 +2389,7 @@ export type Mutation = {
|
||||
commentOnVideo: Scalars["Boolean"]["output"];
|
||||
createBucketSet: BucketSetGql;
|
||||
createChallenge: Challenge;
|
||||
createCustomerPortalSession: CreateCustomerPortalSessionResultGql;
|
||||
createRuleSet: RuleSet;
|
||||
createSubscription: CreateSubscriptionResultGql;
|
||||
createUploadStream: CreateUploadStreamReturn;
|
||||
@@ -2388,6 +2405,7 @@ export type Mutation = {
|
||||
editUploadStream: Scalars["Boolean"]["output"];
|
||||
editUser: UserGql;
|
||||
ensureStripeCustomerExists: UserGql;
|
||||
finalizePlayerAssignments: Array<PlayerClusterGql>;
|
||||
findPrerecordTableLayout?: Maybe<HomographyInfoGql>;
|
||||
followUser: UserGql;
|
||||
getHlsInitUploadLink: GetUploadLinkReturn;
|
||||
@@ -2511,6 +2529,10 @@ export type MutationEditUserArgs = {
|
||||
input: EditUserInputGql;
|
||||
};
|
||||
|
||||
export type MutationFinalizePlayerAssignmentsArgs = {
|
||||
input: FinalizePlayerAssignmentsInput;
|
||||
};
|
||||
|
||||
export type MutationFindPrerecordTableLayoutArgs = {
|
||||
b64Image: Scalars["String"]["input"];
|
||||
videoId: Scalars["Int"]["input"];
|
||||
@@ -2673,6 +2695,29 @@ export type PageInfoGql = {
|
||||
hasNextPage: Scalars["Boolean"]["output"];
|
||||
};
|
||||
|
||||
export type PlayerClusterGql = {
|
||||
__typename?: "PlayerClusterGQL";
|
||||
clusterId: Scalars["Int"]["output"];
|
||||
confirmed: Scalars["Boolean"]["output"];
|
||||
nShots: Scalars["Int"]["output"];
|
||||
shots: Array<PlayerClusterShotGql>;
|
||||
userId?: Maybe<Scalars["Int"]["output"]>;
|
||||
videoId: Scalars["Int"]["output"];
|
||||
};
|
||||
|
||||
export type PlayerClusterShotGql = {
|
||||
__typename?: "PlayerClusterShotGQL";
|
||||
bboxX1: Scalars["Int"]["output"];
|
||||
bboxX2: Scalars["Int"]["output"];
|
||||
bboxY1: Scalars["Int"]["output"];
|
||||
bboxY2: Scalars["Int"]["output"];
|
||||
confidence: Scalars["Float"]["output"];
|
||||
cropUrl?: Maybe<Scalars["String"]["output"]>;
|
||||
fullFrameUrl?: Maybe<Scalars["String"]["output"]>;
|
||||
isConfirmed: Scalars["Boolean"]["output"];
|
||||
shotId: Scalars["Int"]["output"];
|
||||
};
|
||||
|
||||
export enum PocketEnum {
|
||||
Corner = "CORNER",
|
||||
Side = "SIDE",
|
||||
@@ -2783,6 +2828,7 @@ export type Query = {
|
||||
notifications: NotificationConnection;
|
||||
ruleSets: Array<RuleSet>;
|
||||
unreadNotificationCount: Scalars["Int"]["output"];
|
||||
videoPlayerClusters: Array<PlayerClusterGql>;
|
||||
waitFor: Scalars["Float"]["output"];
|
||||
};
|
||||
|
||||
@@ -2949,6 +2995,10 @@ export type QueryNotificationsArgs = {
|
||||
offset?: Scalars["Int"]["input"];
|
||||
};
|
||||
|
||||
export type QueryVideoPlayerClustersArgs = {
|
||||
videoId: Scalars["Int"]["input"];
|
||||
};
|
||||
|
||||
export type QueryWaitForArgs = {
|
||||
duration: Scalars["Float"]["input"];
|
||||
};
|
||||
@@ -3166,6 +3216,11 @@ export type ShotGql = {
|
||||
videoId: Scalars["Int"]["output"];
|
||||
};
|
||||
|
||||
export type ShotMoveInput = {
|
||||
newClusterId: Scalars["Int"]["input"];
|
||||
shotId: Scalars["Int"]["input"];
|
||||
};
|
||||
|
||||
export type ShotsOrderingComponent =
|
||||
| {
|
||||
difficulty: FloatOrdering;
|
||||
@@ -3264,6 +3319,7 @@ export type StripeProductGql = {
|
||||
export type StripeSubscriptionOptionsGql = {
|
||||
__typename?: "StripeSubscriptionOptionsGQL";
|
||||
products: Array<StripeProductGql>;
|
||||
trialPeriodDays?: Maybe<Scalars["Int"]["output"]>;
|
||||
};
|
||||
|
||||
export enum StripeSubscriptionStatusEnum {
|
||||
@@ -4097,15 +4153,11 @@ export type GetFeedQuery = {
|
||||
id: number;
|
||||
name?: string | null;
|
||||
screenshotUri?: string | null;
|
||||
totalShotsMade: number;
|
||||
totalShots: number;
|
||||
makePercentage: number;
|
||||
averageTimeBetweenShots?: number | null;
|
||||
averageDifficulty?: number | null;
|
||||
createdAt?: any | null;
|
||||
updatedAt?: any | null;
|
||||
startTime?: any | null;
|
||||
endTime?: any | null;
|
||||
private: boolean;
|
||||
elapsedTime?: number | null;
|
||||
tableSize: number;
|
||||
@@ -4120,26 +4172,13 @@ export type GetFeedQuery = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
isCompleted: boolean;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
} | null;
|
||||
tags: Array<{
|
||||
__typename?: "VideoTag";
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
tags: Array<{ __typename?: "VideoTag"; name: string }>;
|
||||
currentProcessing?: {
|
||||
__typename?: "VideoProcessingGQL";
|
||||
id: number;
|
||||
status: ProcessingStatusEnum;
|
||||
errors: Array<{
|
||||
__typename?: "VideoProcessingErrorGQL";
|
||||
message: string;
|
||||
}>;
|
||||
statuses: Array<{
|
||||
__typename?: "VideoProcessingStatusGQL";
|
||||
status: ProcessingStatusEnum;
|
||||
}>;
|
||||
} | null;
|
||||
reactions: Array<{
|
||||
__typename?: "ReactionGQL";
|
||||
@@ -4199,15 +4238,11 @@ export type VideoCardFieldsFragment = {
|
||||
id: number;
|
||||
name?: string | null;
|
||||
screenshotUri?: string | null;
|
||||
totalShotsMade: number;
|
||||
totalShots: number;
|
||||
makePercentage: number;
|
||||
averageTimeBetweenShots?: number | null;
|
||||
averageDifficulty?: number | null;
|
||||
createdAt?: any | null;
|
||||
updatedAt?: any | null;
|
||||
startTime?: any | null;
|
||||
endTime?: any | null;
|
||||
private: boolean;
|
||||
elapsedTime?: number | null;
|
||||
tableSize: number;
|
||||
@@ -4222,23 +4257,13 @@ export type VideoCardFieldsFragment = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
isCompleted: boolean;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
} | null;
|
||||
tags: Array<{
|
||||
__typename?: "VideoTag";
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
tags: Array<{ __typename?: "VideoTag"; name: string }>;
|
||||
currentProcessing?: {
|
||||
__typename?: "VideoProcessingGQL";
|
||||
id: number;
|
||||
status: ProcessingStatusEnum;
|
||||
errors: Array<{ __typename?: "VideoProcessingErrorGQL"; message: string }>;
|
||||
statuses: Array<{
|
||||
__typename?: "VideoProcessingStatusGQL";
|
||||
status: ProcessingStatusEnum;
|
||||
}>;
|
||||
} | null;
|
||||
reactions: Array<{
|
||||
__typename?: "ReactionGQL";
|
||||
@@ -4312,15 +4337,11 @@ export type GetVideoFeedQuery = {
|
||||
id: number;
|
||||
name?: string | null;
|
||||
screenshotUri?: string | null;
|
||||
totalShotsMade: number;
|
||||
totalShots: number;
|
||||
makePercentage: number;
|
||||
averageTimeBetweenShots?: number | null;
|
||||
averageDifficulty?: number | null;
|
||||
createdAt?: any | null;
|
||||
updatedAt?: any | null;
|
||||
startTime?: any | null;
|
||||
endTime?: any | null;
|
||||
private: boolean;
|
||||
elapsedTime?: number | null;
|
||||
tableSize: number;
|
||||
@@ -4335,26 +4356,13 @@ export type GetVideoFeedQuery = {
|
||||
__typename?: "UploadStreamGQL";
|
||||
id: string;
|
||||
lastIntendedSegmentBound?: number | null;
|
||||
isCompleted: boolean;
|
||||
streamSegmentType: StreamSegmentTypeEnum;
|
||||
} | null;
|
||||
tags: Array<{
|
||||
__typename?: "VideoTag";
|
||||
name: string;
|
||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||
}>;
|
||||
tags: Array<{ __typename?: "VideoTag"; name: string }>;
|
||||
currentProcessing?: {
|
||||
__typename?: "VideoProcessingGQL";
|
||||
id: number;
|
||||
status: ProcessingStatusEnum;
|
||||
errors: Array<{
|
||||
__typename?: "VideoProcessingErrorGQL";
|
||||
message: string;
|
||||
}>;
|
||||
statuses: Array<{
|
||||
__typename?: "VideoProcessingStatusGQL";
|
||||
status: ProcessingStatusEnum;
|
||||
}>;
|
||||
} | null;
|
||||
reactions: Array<{
|
||||
__typename?: "ReactionGQL";
|
||||
@@ -4749,6 +4757,18 @@ export type CreateSubscriptionMutation = {
|
||||
};
|
||||
};
|
||||
|
||||
export type CreateCustomerPortalSessionMutationVariables = Exact<{
|
||||
[key: string]: never;
|
||||
}>;
|
||||
|
||||
export type CreateCustomerPortalSessionMutation = {
|
||||
__typename?: "Mutation";
|
||||
createCustomerPortalSession: {
|
||||
__typename?: "CreateCustomerPortalSessionResultGQL";
|
||||
portalUrl: string;
|
||||
};
|
||||
};
|
||||
|
||||
export type GetAvailableSubscriptionOptionsQueryVariables = Exact<{
|
||||
[key: string]: never;
|
||||
}>;
|
||||
@@ -4757,6 +4777,7 @@ export type GetAvailableSubscriptionOptionsQuery = {
|
||||
__typename?: "Query";
|
||||
getAvailableSubscriptionOptions: {
|
||||
__typename?: "StripeSubscriptionOptionsGQL";
|
||||
trialPeriodDays?: number | null;
|
||||
products: Array<{
|
||||
__typename?: "StripeProductGQL";
|
||||
id: string;
|
||||
@@ -6519,41 +6540,26 @@ export const VideoCardFieldsFragmentDoc = gql`
|
||||
}
|
||||
name
|
||||
screenshotUri
|
||||
totalShotsMade
|
||||
totalShots
|
||||
makePercentage
|
||||
averageTimeBetweenShots
|
||||
averageDifficulty
|
||||
createdAt
|
||||
updatedAt
|
||||
startTime
|
||||
endTime
|
||||
private
|
||||
elapsedTime
|
||||
screenshotUri
|
||||
stream {
|
||||
id
|
||||
lastIntendedSegmentBound
|
||||
isCompleted
|
||||
streamSegmentType
|
||||
}
|
||||
tableSize
|
||||
pocketSize
|
||||
tags {
|
||||
tagClasses {
|
||||
name
|
||||
}
|
||||
name
|
||||
}
|
||||
currentProcessing {
|
||||
id
|
||||
errors {
|
||||
message
|
||||
}
|
||||
status
|
||||
statuses {
|
||||
status
|
||||
}
|
||||
}
|
||||
reactions {
|
||||
videoId
|
||||
@@ -9652,9 +9658,60 @@ export type CreateSubscriptionMutationOptions = Apollo.BaseMutationOptions<
|
||||
CreateSubscriptionMutation,
|
||||
CreateSubscriptionMutationVariables
|
||||
>;
|
||||
export const CreateCustomerPortalSessionDocument = gql`
|
||||
mutation CreateCustomerPortalSession {
|
||||
createCustomerPortalSession {
|
||||
portalUrl
|
||||
}
|
||||
}
|
||||
`;
|
||||
export type CreateCustomerPortalSessionMutationFn = Apollo.MutationFunction<
|
||||
CreateCustomerPortalSessionMutation,
|
||||
CreateCustomerPortalSessionMutationVariables
|
||||
>;
|
||||
|
||||
/**
|
||||
* __useCreateCustomerPortalSessionMutation__
|
||||
*
|
||||
* To run a mutation, you first call `useCreateCustomerPortalSessionMutation` within a React component and pass it any options that fit your needs.
|
||||
* When your component renders, `useCreateCustomerPortalSessionMutation` returns a tuple that includes:
|
||||
* - A mutate function that you can call at any time to execute the mutation
|
||||
* - An object with fields that represent the current status of the mutation's execution
|
||||
*
|
||||
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
|
||||
*
|
||||
* @example
|
||||
* const [createCustomerPortalSessionMutation, { data, loading, error }] = useCreateCustomerPortalSessionMutation({
|
||||
* variables: {
|
||||
* },
|
||||
* });
|
||||
*/
|
||||
export function useCreateCustomerPortalSessionMutation(
|
||||
baseOptions?: Apollo.MutationHookOptions<
|
||||
CreateCustomerPortalSessionMutation,
|
||||
CreateCustomerPortalSessionMutationVariables
|
||||
>,
|
||||
) {
|
||||
const options = { ...defaultOptions, ...baseOptions };
|
||||
return Apollo.useMutation<
|
||||
CreateCustomerPortalSessionMutation,
|
||||
CreateCustomerPortalSessionMutationVariables
|
||||
>(CreateCustomerPortalSessionDocument, options);
|
||||
}
|
||||
export type CreateCustomerPortalSessionMutationHookResult = ReturnType<
|
||||
typeof useCreateCustomerPortalSessionMutation
|
||||
>;
|
||||
export type CreateCustomerPortalSessionMutationResult =
|
||||
Apollo.MutationResult<CreateCustomerPortalSessionMutation>;
|
||||
export type CreateCustomerPortalSessionMutationOptions =
|
||||
Apollo.BaseMutationOptions<
|
||||
CreateCustomerPortalSessionMutation,
|
||||
CreateCustomerPortalSessionMutationVariables
|
||||
>;
|
||||
export const GetAvailableSubscriptionOptionsDocument = gql`
|
||||
query GetAvailableSubscriptionOptions {
|
||||
getAvailableSubscriptionOptions {
|
||||
trialPeriodDays
|
||||
products {
|
||||
id
|
||||
name
|
||||
|
||||
@@ -31,41 +31,26 @@ fragment VideoCardFields on VideoGQL {
|
||||
}
|
||||
name
|
||||
screenshotUri
|
||||
totalShotsMade
|
||||
totalShots
|
||||
makePercentage
|
||||
averageTimeBetweenShots
|
||||
averageDifficulty
|
||||
createdAt
|
||||
updatedAt
|
||||
startTime
|
||||
endTime
|
||||
private
|
||||
elapsedTime
|
||||
screenshotUri
|
||||
stream {
|
||||
id
|
||||
lastIntendedSegmentBound
|
||||
isCompleted
|
||||
streamSegmentType
|
||||
}
|
||||
tableSize
|
||||
pocketSize
|
||||
tags {
|
||||
tagClasses {
|
||||
name
|
||||
}
|
||||
name
|
||||
}
|
||||
currentProcessing {
|
||||
id
|
||||
errors {
|
||||
message
|
||||
}
|
||||
status
|
||||
statuses {
|
||||
status
|
||||
}
|
||||
}
|
||||
reactions {
|
||||
videoId
|
||||
|
||||
@@ -20,8 +20,15 @@ mutation CreateSubscription($priceId: String!) {
|
||||
}
|
||||
}
|
||||
|
||||
mutation CreateCustomerPortalSession {
|
||||
createCustomerPortalSession {
|
||||
portalUrl
|
||||
}
|
||||
}
|
||||
|
||||
query GetAvailableSubscriptionOptions {
|
||||
getAvailableSubscriptionOptions {
|
||||
trialPeriodDays
|
||||
products {
|
||||
id
|
||||
name
|
||||
|
||||
@@ -28,7 +28,7 @@ type Query {
|
||||
getLongestRunsLeaderboard(
|
||||
interval: TimeInterval = null
|
||||
when: DateTime = null
|
||||
limit: Int! = 100
|
||||
limit: Int! = 50
|
||||
requiredTags: [String!] = null
|
||||
): RunLeaderboardGQL!
|
||||
getMakesLeaderboard(
|
||||
@@ -49,6 +49,7 @@ type Query {
|
||||
limit: Int! = 500
|
||||
countRespectsLimit: Boolean! = false
|
||||
): GetRunsResult!
|
||||
videoPlayerClusters(videoId: Int!): [PlayerClusterGQL!]!
|
||||
getShotAnnotationTypes(errorTypes: Boolean = false): [ShotAnnotationTypeGQL!]!
|
||||
getTableState(
|
||||
b64Image: String!
|
||||
@@ -860,6 +861,27 @@ input DatetimeOrdering {
|
||||
startingAt: DateTime = null
|
||||
}
|
||||
|
||||
type PlayerClusterGQL {
|
||||
videoId: Int!
|
||||
clusterId: Int!
|
||||
nShots: Int!
|
||||
userId: Int
|
||||
confirmed: Boolean!
|
||||
shots: [PlayerClusterShotGQL!]!
|
||||
}
|
||||
|
||||
type PlayerClusterShotGQL {
|
||||
shotId: Int!
|
||||
bboxX1: Int!
|
||||
bboxY1: Int!
|
||||
bboxX2: Int!
|
||||
bboxY2: Int!
|
||||
confidence: Float!
|
||||
isConfirmed: Boolean!
|
||||
cropUrl: String
|
||||
fullFrameUrl: String
|
||||
}
|
||||
|
||||
type TableStateGQL {
|
||||
identifierToPosition: [[Float!]!]!
|
||||
homography: HomographyInfoGQL
|
||||
@@ -940,6 +962,7 @@ type UserRelationship {
|
||||
|
||||
type StripeSubscriptionOptionsGQL {
|
||||
products: [StripeProductGQL!]!
|
||||
trialPeriodDays: Int
|
||||
}
|
||||
|
||||
type StripeProductGQL {
|
||||
@@ -1093,6 +1116,9 @@ type Mutation {
|
||||
markAllNotificationsAsRead: Boolean!
|
||||
markNotificationsAsRead(notificationIds: [Int!]!): Boolean!
|
||||
deleteNotification(notificationId: Int!): Boolean!
|
||||
finalizePlayerAssignments(
|
||||
input: FinalizePlayerAssignmentsInput!
|
||||
): [PlayerClusterGQL!]!
|
||||
addAnnotationToShot(
|
||||
shotId: Int!
|
||||
annotationName: String!
|
||||
@@ -1117,6 +1143,7 @@ type Mutation {
|
||||
ensureStripeCustomerExists: UserGQL!
|
||||
deleteUser: Boolean!
|
||||
createSubscription(priceId: String!): CreateSubscriptionResultGQL!
|
||||
createCustomerPortalSession: CreateCustomerPortalSessionResultGQL!
|
||||
cancelSubscription: UserSubscriptionStatusGQL!
|
||||
grantManualEntitlement(
|
||||
userId: Int!
|
||||
@@ -1163,6 +1190,22 @@ enum ReportReasonEnum {
|
||||
OTHER
|
||||
}
|
||||
|
||||
input FinalizePlayerAssignmentsInput {
|
||||
videoId: Int!
|
||||
clusterAssignments: [ClusterAssignmentInput!]! = []
|
||||
shotMoves: [ShotMoveInput!]! = []
|
||||
}
|
||||
|
||||
input ClusterAssignmentInput {
|
||||
clusterId: Int!
|
||||
userId: Int = null
|
||||
}
|
||||
|
||||
input ShotMoveInput {
|
||||
shotId: Int!
|
||||
newClusterId: Int!
|
||||
}
|
||||
|
||||
type AddShotAnnotationReturn {
|
||||
value: SuccessfulAddAddShotAnnotationErrors!
|
||||
}
|
||||
@@ -1256,6 +1299,10 @@ type CreateSubscriptionResultGQL {
|
||||
sessionId: String!
|
||||
}
|
||||
|
||||
type CreateCustomerPortalSessionResultGQL {
|
||||
portalUrl: String!
|
||||
}
|
||||
|
||||
enum CancellationReasonEnum {
|
||||
DONT_PLAY_ENOUGH
|
||||
TOO_EXPENSIVE
|
||||
|
||||
Reference in New Issue
Block a user