Compare commits
14 Commits
19bdf69830
...
dean/drill
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb5217e070 | ||
| bfaed33c89 | |||
|
|
1ce3aaed1b | ||
| 1bd03f2bbe | |||
|
|
4a1c41aae1 | ||
|
|
4122284bbd | ||
| b30dbd01f5 | |||
| 6d13dc3eb1 | |||
| e3524cab97 | |||
| 20a70fad2a | |||
|
|
35c7c23ba9 | ||
|
|
40c4b82a59 | ||
| 9ebe2e61df | |||
| dc02fd8387 |
137
src/index.tsx
137
src/index.tsx
@@ -260,6 +260,15 @@ export type ClusterAssignmentInput = {
|
|||||||
userId?: InputMaybe<Scalars["Int"]["input"]>;
|
userId?: InputMaybe<Scalars["Int"]["input"]>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type CohortStatsGql = {
|
||||||
|
__typename?: "CohortStatsGQL";
|
||||||
|
activated7d: Scalars["Int"]["output"];
|
||||||
|
activatedNotPaid7d: Scalars["Int"]["output"];
|
||||||
|
paid7d: Scalars["Int"]["output"];
|
||||||
|
signups: Scalars["Int"]["output"];
|
||||||
|
weekStart: Scalars["Date"]["output"];
|
||||||
|
};
|
||||||
|
|
||||||
export type CommentGql = {
|
export type CommentGql = {
|
||||||
__typename?: "CommentGQL";
|
__typename?: "CommentGQL";
|
||||||
id: Scalars["Int"]["output"];
|
id: Scalars["Int"]["output"];
|
||||||
@@ -384,6 +393,16 @@ export type DoesNotOwnShotErrOtherErrorNeedsNote =
|
|||||||
| DoesNotOwnShotErr
|
| DoesNotOwnShotErr
|
||||||
| OtherErrorNeedsNote;
|
| OtherErrorNeedsNote;
|
||||||
|
|
||||||
|
export type DrillResultGql = {
|
||||||
|
__typename?: "DrillResultGQL";
|
||||||
|
attemptCount: Scalars["Int"]["output"];
|
||||||
|
drillTag: Scalars["String"]["output"];
|
||||||
|
isPersonalBest: Scalars["Boolean"]["output"];
|
||||||
|
longestRun: Scalars["Int"]["output"];
|
||||||
|
longestRunId?: Maybe<Scalars["Int"]["output"]>;
|
||||||
|
prRank: Scalars["Int"]["output"];
|
||||||
|
};
|
||||||
|
|
||||||
export type DrillRunLeaderboardGql = {
|
export type DrillRunLeaderboardGql = {
|
||||||
__typename?: "DrillRunLeaderboardGQL";
|
__typename?: "DrillRunLeaderboardGQL";
|
||||||
entries: Array<RunGql>;
|
entries: Array<RunGql>;
|
||||||
@@ -3993,6 +4012,7 @@ export type UsageStatsDailyGql = {
|
|||||||
|
|
||||||
export type UsageStatsGql = {
|
export type UsageStatsGql = {
|
||||||
__typename?: "UsageStatsGQL";
|
__typename?: "UsageStatsGQL";
|
||||||
|
cohorts: Array<CohortStatsGql>;
|
||||||
daily: Array<UsageStatsDailyGql>;
|
daily: Array<UsageStatsDailyGql>;
|
||||||
funnel: FunnelStatsGql;
|
funnel: FunnelStatsGql;
|
||||||
processingLast24h: Array<ProcessingStatusCountGql>;
|
processingLast24h: Array<ProcessingStatusCountGql>;
|
||||||
@@ -4145,6 +4165,7 @@ export type VideoGql = {
|
|||||||
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
|
createdAt?: Maybe<Scalars["DateTime"]["output"]>;
|
||||||
currentHomography?: Maybe<HomographyInfoGql>;
|
currentHomography?: Maybe<HomographyInfoGql>;
|
||||||
currentProcessing?: Maybe<VideoProcessingGql>;
|
currentProcessing?: Maybe<VideoProcessingGql>;
|
||||||
|
drillResult?: Maybe<DrillResultGql>;
|
||||||
elapsedTime?: Maybe<Scalars["Float"]["output"]>;
|
elapsedTime?: Maybe<Scalars["Float"]["output"]>;
|
||||||
endTime?: Maybe<Scalars["DateTime"]["output"]>;
|
endTime?: Maybe<Scalars["DateTime"]["output"]>;
|
||||||
framesPerSecond: Scalars["Float"]["output"];
|
framesPerSecond: Scalars["Float"]["output"];
|
||||||
@@ -4774,6 +4795,7 @@ export type GetFeedQuery = {
|
|||||||
__typename?: "UploadStreamGQL";
|
__typename?: "UploadStreamGQL";
|
||||||
id: string;
|
id: string;
|
||||||
lastIntendedSegmentBound?: number | null;
|
lastIntendedSegmentBound?: number | null;
|
||||||
|
uploadCompletionCursor: number;
|
||||||
streamSegmentType: StreamSegmentTypeEnum;
|
streamSegmentType: StreamSegmentTypeEnum;
|
||||||
isCompleted: boolean;
|
isCompleted: boolean;
|
||||||
lastSegmentUploadedAt?: any | null;
|
lastSegmentUploadedAt?: any | null;
|
||||||
@@ -4784,6 +4806,15 @@ export type GetFeedQuery = {
|
|||||||
name: string;
|
name: string;
|
||||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
drillResult?: {
|
||||||
|
__typename?: "DrillResultGQL";
|
||||||
|
drillTag: string;
|
||||||
|
longestRun: number;
|
||||||
|
longestRunId?: number | null;
|
||||||
|
prRank: number;
|
||||||
|
isPersonalBest: boolean;
|
||||||
|
attemptCount: number;
|
||||||
|
} | null;
|
||||||
playerSummaries: Array<{
|
playerSummaries: Array<{
|
||||||
__typename?: "PlayerSummaryGQL";
|
__typename?: "PlayerSummaryGQL";
|
||||||
clusterId: number;
|
clusterId: number;
|
||||||
@@ -4888,6 +4919,7 @@ export type VideoCardFieldsFragment = {
|
|||||||
__typename?: "UploadStreamGQL";
|
__typename?: "UploadStreamGQL";
|
||||||
id: string;
|
id: string;
|
||||||
lastIntendedSegmentBound?: number | null;
|
lastIntendedSegmentBound?: number | null;
|
||||||
|
uploadCompletionCursor: number;
|
||||||
streamSegmentType: StreamSegmentTypeEnum;
|
streamSegmentType: StreamSegmentTypeEnum;
|
||||||
isCompleted: boolean;
|
isCompleted: boolean;
|
||||||
lastSegmentUploadedAt?: any | null;
|
lastSegmentUploadedAt?: any | null;
|
||||||
@@ -4898,6 +4930,15 @@ export type VideoCardFieldsFragment = {
|
|||||||
name: string;
|
name: string;
|
||||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
drillResult?: {
|
||||||
|
__typename?: "DrillResultGQL";
|
||||||
|
drillTag: string;
|
||||||
|
longestRun: number;
|
||||||
|
longestRunId?: number | null;
|
||||||
|
prRank: number;
|
||||||
|
isPersonalBest: boolean;
|
||||||
|
attemptCount: number;
|
||||||
|
} | null;
|
||||||
playerSummaries: Array<{
|
playerSummaries: Array<{
|
||||||
__typename?: "PlayerSummaryGQL";
|
__typename?: "PlayerSummaryGQL";
|
||||||
clusterId: number;
|
clusterId: number;
|
||||||
@@ -5035,6 +5076,7 @@ export type GetVideoFeedQuery = {
|
|||||||
__typename?: "UploadStreamGQL";
|
__typename?: "UploadStreamGQL";
|
||||||
id: string;
|
id: string;
|
||||||
lastIntendedSegmentBound?: number | null;
|
lastIntendedSegmentBound?: number | null;
|
||||||
|
uploadCompletionCursor: number;
|
||||||
streamSegmentType: StreamSegmentTypeEnum;
|
streamSegmentType: StreamSegmentTypeEnum;
|
||||||
isCompleted: boolean;
|
isCompleted: boolean;
|
||||||
lastSegmentUploadedAt?: any | null;
|
lastSegmentUploadedAt?: any | null;
|
||||||
@@ -5045,6 +5087,15 @@ export type GetVideoFeedQuery = {
|
|||||||
name: string;
|
name: string;
|
||||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
drillResult?: {
|
||||||
|
__typename?: "DrillResultGQL";
|
||||||
|
drillTag: string;
|
||||||
|
longestRun: number;
|
||||||
|
longestRunId?: number | null;
|
||||||
|
prRank: number;
|
||||||
|
isPersonalBest: boolean;
|
||||||
|
attemptCount: number;
|
||||||
|
} | null;
|
||||||
playerSummaries: Array<{
|
playerSummaries: Array<{
|
||||||
__typename?: "PlayerSummaryGQL";
|
__typename?: "PlayerSummaryGQL";
|
||||||
clusterId: number;
|
clusterId: number;
|
||||||
@@ -6647,6 +6698,34 @@ export type GetRecordedStreamShotsQuery = {
|
|||||||
videoId: number;
|
videoId: number;
|
||||||
startFrame: number;
|
startFrame: number;
|
||||||
endFrame: number;
|
endFrame: number;
|
||||||
|
serializedShotPaths?: {
|
||||||
|
__typename?: "SerializedShotPathsGQL";
|
||||||
|
b64EncodedBuffer?: string | null;
|
||||||
|
} | null;
|
||||||
|
cueObjectFeatures?: {
|
||||||
|
__typename?: "CueObjectFeaturesGQL";
|
||||||
|
cueObjectDistance?: number | null;
|
||||||
|
cueObjectAngle?: number | null;
|
||||||
|
cueBallSpeed?: number | null;
|
||||||
|
shotDirection?: ShotDirectionEnum | null;
|
||||||
|
spinType?: SpinTypeEnum | null;
|
||||||
|
} | null;
|
||||||
|
pocketingIntentionFeatures?: {
|
||||||
|
__typename?: "PocketingIntentionFeaturesGQL";
|
||||||
|
make?: boolean | null;
|
||||||
|
targetPocketDistance?: number | null;
|
||||||
|
targetPocketAngle?: number | null;
|
||||||
|
targetPocketAngleDirection?: ShotDirectionEnum | null;
|
||||||
|
marginOfErrorInDegrees?: number | null;
|
||||||
|
intendedPocketType?: PocketEnum | null;
|
||||||
|
difficulty?: number | null;
|
||||||
|
} | null;
|
||||||
|
pocketingIntentionInfo?: {
|
||||||
|
__typename?: "PocketingIntentionInfoGQL";
|
||||||
|
ballId: number;
|
||||||
|
pocketId: PocketIdentifier;
|
||||||
|
pathMetadataIndex: number;
|
||||||
|
} | null;
|
||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -7527,6 +7606,14 @@ export type GetUsageStatsQuery = {
|
|||||||
retentionPrevActive: number;
|
retentionPrevActive: number;
|
||||||
retentionReturned: number;
|
retentionReturned: number;
|
||||||
};
|
};
|
||||||
|
cohorts: Array<{
|
||||||
|
__typename?: "CohortStatsGQL";
|
||||||
|
weekStart: any;
|
||||||
|
signups: number;
|
||||||
|
activated7d: number;
|
||||||
|
paid7d: number;
|
||||||
|
activatedNotPaid7d: number;
|
||||||
|
}>;
|
||||||
windows: Array<{
|
windows: Array<{
|
||||||
__typename?: "UsageStatsWindowGQL";
|
__typename?: "UsageStatsWindowGQL";
|
||||||
label: string;
|
label: string;
|
||||||
@@ -8147,6 +8234,7 @@ export type GetVideoCardQuery = {
|
|||||||
__typename?: "UploadStreamGQL";
|
__typename?: "UploadStreamGQL";
|
||||||
id: string;
|
id: string;
|
||||||
lastIntendedSegmentBound?: number | null;
|
lastIntendedSegmentBound?: number | null;
|
||||||
|
uploadCompletionCursor: number;
|
||||||
streamSegmentType: StreamSegmentTypeEnum;
|
streamSegmentType: StreamSegmentTypeEnum;
|
||||||
isCompleted: boolean;
|
isCompleted: boolean;
|
||||||
lastSegmentUploadedAt?: any | null;
|
lastSegmentUploadedAt?: any | null;
|
||||||
@@ -8157,6 +8245,15 @@ export type GetVideoCardQuery = {
|
|||||||
name: string;
|
name: string;
|
||||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
drillResult?: {
|
||||||
|
__typename?: "DrillResultGQL";
|
||||||
|
drillTag: string;
|
||||||
|
longestRun: number;
|
||||||
|
longestRunId?: number | null;
|
||||||
|
prRank: number;
|
||||||
|
isPersonalBest: boolean;
|
||||||
|
attemptCount: number;
|
||||||
|
} | null;
|
||||||
playerSummaries: Array<{
|
playerSummaries: Array<{
|
||||||
__typename?: "PlayerSummaryGQL";
|
__typename?: "PlayerSummaryGQL";
|
||||||
clusterId: number;
|
clusterId: number;
|
||||||
@@ -8974,6 +9071,7 @@ export const VideoCardFieldsFragmentDoc = gql`
|
|||||||
stream {
|
stream {
|
||||||
id
|
id
|
||||||
lastIntendedSegmentBound
|
lastIntendedSegmentBound
|
||||||
|
uploadCompletionCursor
|
||||||
streamSegmentType
|
streamSegmentType
|
||||||
isCompleted
|
isCompleted
|
||||||
lastSegmentUploadedAt
|
lastSegmentUploadedAt
|
||||||
@@ -8987,6 +9085,14 @@ export const VideoCardFieldsFragmentDoc = gql`
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
drillResult {
|
||||||
|
drillTag
|
||||||
|
longestRun
|
||||||
|
longestRunId
|
||||||
|
prRank
|
||||||
|
isPersonalBest
|
||||||
|
attemptCount
|
||||||
|
}
|
||||||
playerSummaries {
|
playerSummaries {
|
||||||
...PlayerSummaryFields
|
...PlayerSummaryFields
|
||||||
}
|
}
|
||||||
@@ -14355,6 +14461,30 @@ export const GetRecordedStreamShotsDocument = gql`
|
|||||||
videoId
|
videoId
|
||||||
startFrame
|
startFrame
|
||||||
endFrame
|
endFrame
|
||||||
|
serializedShotPaths {
|
||||||
|
b64EncodedBuffer
|
||||||
|
}
|
||||||
|
cueObjectFeatures {
|
||||||
|
cueObjectDistance
|
||||||
|
cueObjectAngle
|
||||||
|
cueBallSpeed
|
||||||
|
shotDirection
|
||||||
|
spinType
|
||||||
|
}
|
||||||
|
pocketingIntentionFeatures {
|
||||||
|
make
|
||||||
|
targetPocketDistance
|
||||||
|
targetPocketAngle
|
||||||
|
targetPocketAngleDirection
|
||||||
|
marginOfErrorInDegrees
|
||||||
|
intendedPocketType
|
||||||
|
difficulty
|
||||||
|
}
|
||||||
|
pocketingIntentionInfo {
|
||||||
|
ballId
|
||||||
|
pocketId
|
||||||
|
pathMetadataIndex
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16090,6 +16220,13 @@ export const GetUsageStatsDocument = gql`
|
|||||||
retentionPrevActive
|
retentionPrevActive
|
||||||
retentionReturned
|
retentionReturned
|
||||||
}
|
}
|
||||||
|
cohorts {
|
||||||
|
weekStart
|
||||||
|
signups
|
||||||
|
activated7d
|
||||||
|
paid7d
|
||||||
|
activatedNotPaid7d
|
||||||
|
}
|
||||||
totalUsers
|
totalUsers
|
||||||
totalVideos
|
totalVideos
|
||||||
totalShots
|
totalShots
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ fragment VideoCardFields on VideoGQL {
|
|||||||
stream {
|
stream {
|
||||||
id
|
id
|
||||||
lastIntendedSegmentBound
|
lastIntendedSegmentBound
|
||||||
|
uploadCompletionCursor
|
||||||
streamSegmentType
|
streamSegmentType
|
||||||
isCompleted
|
isCompleted
|
||||||
lastSegmentUploadedAt
|
lastSegmentUploadedAt
|
||||||
@@ -54,6 +55,14 @@ fragment VideoCardFields on VideoGQL {
|
|||||||
name
|
name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
drillResult {
|
||||||
|
drillTag
|
||||||
|
longestRun
|
||||||
|
longestRunId
|
||||||
|
prRank
|
||||||
|
isPersonalBest
|
||||||
|
attemptCount
|
||||||
|
}
|
||||||
playerSummaries {
|
playerSummaries {
|
||||||
...PlayerSummaryFields
|
...PlayerSummaryFields
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,30 @@ query GetRecordedStreamShots($videoId: Int!, $limit: Int! = 200) {
|
|||||||
videoId
|
videoId
|
||||||
startFrame
|
startFrame
|
||||||
endFrame
|
endFrame
|
||||||
|
serializedShotPaths {
|
||||||
|
b64EncodedBuffer
|
||||||
|
}
|
||||||
|
cueObjectFeatures {
|
||||||
|
cueObjectDistance
|
||||||
|
cueObjectAngle
|
||||||
|
cueBallSpeed
|
||||||
|
shotDirection
|
||||||
|
spinType
|
||||||
|
}
|
||||||
|
pocketingIntentionFeatures {
|
||||||
|
make
|
||||||
|
targetPocketDistance
|
||||||
|
targetPocketAngle
|
||||||
|
targetPocketAngleDirection
|
||||||
|
marginOfErrorInDegrees
|
||||||
|
intendedPocketType
|
||||||
|
difficulty
|
||||||
|
}
|
||||||
|
pocketingIntentionInfo {
|
||||||
|
ballId
|
||||||
|
pocketId
|
||||||
|
pathMetadataIndex
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,13 @@ query getUsageStats($days: Int! = 30) {
|
|||||||
retentionPrevActive
|
retentionPrevActive
|
||||||
retentionReturned
|
retentionReturned
|
||||||
}
|
}
|
||||||
|
cohorts {
|
||||||
|
weekStart
|
||||||
|
signups
|
||||||
|
activated7d
|
||||||
|
paid7d
|
||||||
|
activatedNotPaid7d
|
||||||
|
}
|
||||||
totalUsers
|
totalUsers
|
||||||
totalVideos
|
totalVideos
|
||||||
totalShots
|
totalShots
|
||||||
|
|||||||
@@ -438,6 +438,7 @@ type VideoGQL {
|
|||||||
reactions: [ReactionGQL!]!
|
reactions: [ReactionGQL!]!
|
||||||
comments: [CommentGQL!]!
|
comments: [CommentGQL!]!
|
||||||
playerSummaries: [PlayerSummaryGQL!]!
|
playerSummaries: [PlayerSummaryGQL!]!
|
||||||
|
drillResult: DrillResultGQL
|
||||||
}
|
}
|
||||||
|
|
||||||
type ShotGQL {
|
type ShotGQL {
|
||||||
@@ -721,6 +722,15 @@ type SpinTypeBreakdownGQL {
|
|||||||
follow: Int!
|
follow: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DrillResultGQL {
|
||||||
|
drillTag: String!
|
||||||
|
longestRun: Int!
|
||||||
|
longestRunId: Int
|
||||||
|
prRank: Int!
|
||||||
|
isPersonalBest: Boolean!
|
||||||
|
attemptCount: Int!
|
||||||
|
}
|
||||||
|
|
||||||
type DeployedConfigGQL {
|
type DeployedConfigGQL {
|
||||||
allowNewUsers: Boolean!
|
allowNewUsers: Boolean!
|
||||||
firebase: Boolean!
|
firebase: Boolean!
|
||||||
@@ -1183,6 +1193,7 @@ type UsageStatsGQL {
|
|||||||
totalVideos: Int!
|
totalVideos: Int!
|
||||||
totalShots: Int!
|
totalShots: Int!
|
||||||
totalRuns: Int!
|
totalRuns: Int!
|
||||||
|
cohorts: [CohortStatsGQL!]!
|
||||||
windows: [UsageStatsWindowGQL!]!
|
windows: [UsageStatsWindowGQL!]!
|
||||||
daily: [UsageStatsDailyGQL!]!
|
daily: [UsageStatsDailyGQL!]!
|
||||||
processingLast24h: [ProcessingStatusCountGQL!]!
|
processingLast24h: [ProcessingStatusCountGQL!]!
|
||||||
@@ -1201,6 +1212,14 @@ type FunnelStatsGQL {
|
|||||||
retentionReturned: Int!
|
retentionReturned: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CohortStatsGQL {
|
||||||
|
weekStart: Date!
|
||||||
|
signups: Int!
|
||||||
|
activated7d: Int!
|
||||||
|
paid7d: Int!
|
||||||
|
activatedNotPaid7d: Int!
|
||||||
|
}
|
||||||
|
|
||||||
type UsageStatsWindowGQL {
|
type UsageStatsWindowGQL {
|
||||||
label: String!
|
label: String!
|
||||||
newUsers: Int!
|
newUsers: Int!
|
||||||
|
|||||||
Reference in New Issue
Block a user