11'use client' ;
22
3+ import Image from 'next/image' ;
34import { useParams , useRouter } from 'next/navigation' ;
45import { graphql } from '@/gql' ;
56import { useMutation , useQuery } from '@tanstack/react-query' ;
@@ -45,6 +46,8 @@ const UseCaseDetails: any = graphql(`
4546 id
4647 value
4748 }
49+ startedOn
50+ completedOn
4851 logo {
4952 name
5053 path
@@ -61,6 +64,27 @@ const UseCaseDetails: any = graphql(`
6164 contactEmail
6265 status
6366 slug
67+ contributors {
68+ id
69+ fullName
70+ username
71+ }
72+ supportingOrganizations {
73+ id
74+ name
75+ logo {
76+ url
77+ name
78+ }
79+ }
80+ partnerOrganizations {
81+ id
82+ name
83+ logo {
84+ url
85+ name
86+ }
87+ }
6488 }
6589 }
6690` ) ;
@@ -131,6 +155,11 @@ const Publish = () => {
131155 ? 'No datasets assigned. Please assign to continue.'
132156 : '' ,
133157 } ,
158+ {
159+ name : 'Contributors' ,
160+ data : UseCaseData ?. data ?. useCases [ 0 ] ?. length > 0 ,
161+ error : '' ,
162+ } ,
134163 ] ;
135164
136165 const columns = [
@@ -140,26 +169,16 @@ const Publish = () => {
140169 ] ;
141170
142171 const PrimaryDetails = [
143- { label : 'Title ' , value : UseCaseData . data ?. useCases [ 0 ] ?. title } ,
172+ { label : 'Use Case Name ' , value : UseCaseData . data ?. useCases [ 0 ] ?. title } ,
144173 { label : 'Summary' , value : UseCaseData . data ?. useCases [ 0 ] ?. summary } ,
145174 {
146175 label : 'running Status' ,
147176 value : UseCaseData . data ?. useCases [ 0 ] ?. runningStatus ,
148177 } ,
149-
150- {
151- label : 'Logo' ,
152- value :
153- UseCaseData . data &&
154- UseCaseData . data ?. useCases [ 0 ] ?. logo ?. name . split ( '/' ) . pop ( ) ,
155- } ,
178+ { label : 'Started On' , value : UseCaseData . data ?. useCases [ 0 ] ?. startedOn } ,
156179 {
157- label : 'Website' ,
158- value : UseCaseData . data ?. useCases [ 0 ] ?. website ,
159- } ,
160- {
161- label : 'Contact Email' ,
162- value : UseCaseData . data ?. useCases [ 0 ] ?. contactEmail ,
180+ label : 'Completed On' ,
181+ value : UseCaseData . data ?. useCases [ 0 ] ?. completedOn ,
163182 } ,
164183 { label : 'Sector' , value : UseCaseData . data ?. useCases [ 0 ] ?. sectors [ 0 ] ?. name } ,
165184 { label : 'Tags' , value : UseCaseData . data ?. useCases [ 0 ] ?. tags [ 0 ] ?. value } ,
@@ -169,6 +188,13 @@ const Publish = () => {
169188 } ) ) || [ ] ) ,
170189 ] ;
171190
191+
192+ const ContributorDetails = [
193+ { label : 'Contributors' , value : UseCaseData . data ?. useCases [ 0 ] ?. contributors . length > 0 ? UseCaseData . data ?. useCases [ 0 ] ?. contributors . map ( ( item : any ) => item . fullName ) . join ( ', ' ) :'No Contributors' } ,
194+ { label : 'Supporters' , value : UseCaseData . data ?. useCases [ 0 ] ?. supportingOrganizations . length > 0 ? UseCaseData . data ?. useCases [ 0 ] ?. supportingOrganizations . map ( ( item : any ) => item . name ) . join ( ', ' ) :'No Supporting Organizations' } ,
195+ { label : 'Partners' , value : UseCaseData . data ?. useCases [ 0 ] ?. partnerOrganizations . length > 0 ? UseCaseData . data ?. useCases [ 0 ] ?. partnerOrganizations . map ( ( item : any ) => item . name ) . join ( ', ' ) :'No Partner Organizations' } ,
196+ ] ;
197+
172198 const generateTableData = ( list : Array < any > ) => {
173199 return list ?. map ( ( item ) => {
174200 return {
@@ -238,32 +264,66 @@ const Publish = () => {
238264 />
239265 ) : item . name === 'Details' ? (
240266 < div className = "flex flex-col gap-4 px-8 py-4" >
241- { PrimaryDetails . map (
242- ( item , index ) =>
243- item . value && (
244- < div
245- className = "flex flex-wrap gap-2"
246- key = { index }
247- >
248- < Text
249- className = "lg:basis-1/6"
250- variant = "bodyMd"
267+ < >
268+ { PrimaryDetails . map (
269+ ( item , index ) =>
270+ item . value && (
271+ < div
272+ className = "flex flex-wrap gap-2"
273+ key = { index }
251274 >
252- { item . label } :
253- </ Text >
254- < Text
255- variant = "bodyMd"
256- className = "lg:basis-4/5"
257- >
258- { item . value }
275+ < div className = "md:w-1/6 lg:w-1/6" >
276+ < Text variant = "bodyMd" >
277+ { item . label } :
278+ </ Text >
279+ </ div >
280+ < div >
281+ < Text variant = "bodyMd" >
282+ { item . value }
283+ </ Text >
284+ </ div >
285+ </ div >
286+ )
287+ ) }
288+ { UseCaseData . data ?. useCases [ 0 ] ?. logo && (
289+ < div className = "flex flex-wrap items-center gap-2" >
290+ < div className = "md:w-1/6 lg:w-1/6" >
291+ < Text className = "" variant = "bodyMd" >
292+ Image:
259293 </ Text >
260294 </ div >
261- )
262- ) }
295+ < Image
296+ src = { `${ process . env . NEXT_PUBLIC_BACKEND_URL } /${ UseCaseData . data ?. useCases [ 0 ] ?. logo ?. path . replace ( '/code/files/' , '' ) } ` }
297+ alt = { UseCaseData . data ?. useCases [ 0 ] ?. title }
298+ width = { 240 }
299+ height = { 240 }
300+ />
301+ </ div >
302+ ) }
303+ </ >
263304 </ div >
264305 ) : (
265306 < div className = "flex flex-col gap-4 px-8 py-4" >
266- < > </ >
307+ {
308+ ContributorDetails . map (
309+ ( item : any , index : number ) => (
310+ < div
311+ className = "flex flex-wrap gap-2"
312+ key = { index }
313+ >
314+ < div className = "md:w-1/6 lg:w-1/6" >
315+ < Text variant = "bodyMd" >
316+ { item . label } :
317+ </ Text >
318+ </ div >
319+ < div >
320+ < Text variant = "bodyMd" >
321+ { item . value }
322+ </ Text >
323+ </ div >
324+ </ div >
325+ )
326+ ) }
267327 </ div >
268328 ) }
269329 </ div >
0 commit comments