@@ -5,9 +5,14 @@ import { buttonVariants } from "@/components/ui/button";
55import { task , taskList } from "@/drizzle/schema" ;
66import { database } from "@/lib/utils/useDatabase" ;
77import { getOwner , getTimezone } from "@/lib/utils/useOwner" ;
8+ import { getAllUsers } from "@/lib/utils/useUser" ;
89import { and , asc , eq , or } from "drizzle-orm" ;
910import Link from "next/link" ;
10- import { createTask , partialUpdateTaskList } from "./actions" ;
11+ import {
12+ createTask ,
13+ getActiveTaskLists ,
14+ partialUpdateTaskList ,
15+ } from "./actions" ;
1116
1217type Props = {
1318 params : Promise < {
@@ -31,42 +36,46 @@ export default async function TaskLists(props: Props) {
3136 ) ;
3237
3338 const db = await database ( ) ;
34- const taskLists = await db . query . taskList
35- . findMany ( {
36- where : and ( eq ( taskList . projectId , + projectId ) , or ( ...statusFilter ) ) ,
37- with : {
38- tasks : {
39- orderBy : [ asc ( task . position ) ] ,
39+ const [ taskLists , archivedTaskLists , allTaskLists , allUsers ] =
40+ await Promise . all ( [
41+ db . query . taskList
42+ . findMany ( {
43+ where : and ( eq ( taskList . projectId , + projectId ) , or ( ...statusFilter ) ) ,
4044 with : {
41- creator : {
42- columns : {
43- firstName : true ,
44- imageUrl : true ,
45- } ,
46- } ,
47- assignee : {
48- columns : {
49- firstName : true ,
50- imageUrl : true ,
45+ tasks : {
46+ orderBy : [ asc ( task . position ) ] ,
47+ with : {
48+ creator : {
49+ columns : {
50+ firstName : true ,
51+ imageUrl : true ,
52+ } ,
53+ } ,
54+ assignee : {
55+ columns : {
56+ firstName : true ,
57+ imageUrl : true ,
58+ } ,
59+ } ,
5160 } ,
5261 } ,
5362 } ,
54- } ,
55- } ,
56- } )
57- . execute ( ) ;
58-
59- const archivedTaskLists = await db . query . taskList
60- . findMany ( {
61- columns : {
62- id : true ,
63- } ,
64- where : and (
65- eq ( taskList . projectId , + projectId ) ,
66- eq ( taskList . status , "archived" ) ,
67- ) ,
68- } )
69- . execute ( ) ;
63+ } )
64+ . execute ( ) ,
65+ db . query . taskList
66+ . findMany ( {
67+ columns : {
68+ id : true ,
69+ } ,
70+ where : and (
71+ eq ( taskList . projectId , + projectId ) ,
72+ eq ( taskList . status , "archived" ) ,
73+ ) ,
74+ } )
75+ . execute ( ) ,
76+ getActiveTaskLists ( + projectId ) ,
77+ getAllUsers ( true ) ,
78+ ] ) ;
7079
7180 return (
7281 < >
@@ -95,6 +104,8 @@ export default async function TaskLists(props: Props) {
95104 partialUpdateTaskList = { partialUpdateTaskList }
96105 orgSlug = { orgSlug }
97106 timezone = { timezone }
107+ taskLists = { allTaskLists }
108+ users = { allUsers }
98109 compact
99110 />
100111 ) ) }
0 commit comments