22
33import { CursorDataTable } from "@/components/data-table/cursor" ;
44import type { Direction } from "@/components/data-table/pagination" ;
5+ import type { SubmissionStatus } from "@/gql/graphql" ;
56import { useSuspenseQuery } from "@apollo/client/react" ;
67import type { VariablesOf } from "@graphql-typed-document-node/core" ;
78import { useState } from "react" ;
89import { columns , type Submission } from "./data-table-columns" ;
910import { SUBMISSIONS_TABLE_QUERY } from "./query" ;
1011
11- export function SubmissionsDataTable ( { query } : { query ?: string } ) {
12+ export type SubmissionStatusFilter = SubmissionStatus | "all" ;
13+
14+ export function SubmissionsDataTable ( {
15+ query,
16+ status,
17+ } : {
18+ query ?: string ;
19+ status ?: SubmissionStatusFilter ;
20+ } ) {
1221 const PAGE_SIZE = 20 ;
1322 const [ cursors , setCursors ] = useState < ( string | null ) [ ] > ( [ null ] ) ;
1423 const [ currentIndex , setCurrentIndex ] = useState ( 0 ) ;
@@ -17,14 +26,13 @@ export function SubmissionsDataTable({ query }: { query?: string }) {
1726 const variables = {
1827 first : PAGE_SIZE ,
1928 after,
20- where : query
21- ? {
22- or : [
23- { hasUserWith : [ { nameContains : query } ] } ,
24- { hasUserWith : [ { emailContains : query } ] } ,
25- ] ,
26- }
27- : undefined ,
29+ where : {
30+ or : [
31+ { hasUserWith : [ { nameContains : query } ] } ,
32+ { hasUserWith : [ { emailContains : query } ] } ,
33+ ] ,
34+ status : status === "all" ? undefined : status ,
35+ } ,
2836 } satisfies VariablesOf < typeof SUBMISSIONS_TABLE_QUERY > ;
2937
3038 const { data } = useSuspenseQuery ( SUBMISSIONS_TABLE_QUERY , {
@@ -57,7 +65,7 @@ export function SubmissionsDataTable({ query }: { query?: string }) {
5765 if ( ! pageInfo ) return ;
5866 if ( direction === "forward" && pageInfo . hasNextPage ) {
5967 const nextCursor = pageInfo . endCursor ?? null ;
60- setCursors ( prev => {
68+ setCursors ( ( prev ) => {
6169 const newCursors = prev . slice ( 0 , currentIndex + 1 ) ;
6270 newCursors . push ( nextCursor ) ;
6371 return newCursors ;
0 commit comments