77 TypeDataset ,
88 TypeDatasetMetadata ,
99 TypeMetadata ,
10+ TypeTag ,
1011 UpdateMetadataInput ,
1112} from '@/gql/generated/graphql' ;
1213import { useMutation , useQuery , useQueryClient } from '@tanstack/react-query' ;
@@ -33,12 +34,25 @@ const categoriesListQueryDoc: any = graphql(`
3334 }
3435` ) ;
3536
37+ const tagsListQueryDoc : any = graphql ( `
38+ query TagsList {
39+ tags {
40+ id
41+ value
42+ }
43+ }
44+ ` ) ;
45+
3646const datasetMetadataQueryDoc : any = graphql ( `
3747 query MetadataValues($filters: DatasetFilter) {
3848 datasets(filters: $filters) {
3949 title
4050 id
4151 description
52+ tags {
53+ id
54+ value
55+ }
4256 categories {
4357 id
4458 name
@@ -102,6 +116,11 @@ export function EditMetadata({ id }: { id: string }) {
102116 GraphQL ( categoriesListQueryDoc , [ ] )
103117 ) ;
104118
119+ const getTagsList : { data : any ; isLoading : boolean ; error : any } = useQuery (
120+ [ `tags_list_query` ] ,
121+ ( ) => GraphQL ( tagsListQueryDoc , [ ] )
122+ ) ;
123+
105124 const getMetaDataListQuery : {
106125 data : any ;
107126 isLoading : boolean ;
@@ -164,14 +183,21 @@ export function EditMetadata({ id }: { id: string }) {
164183
165184 defaultVal [ 'description' ] = dataset . description || '' ;
166185
167- defaultVal [ 'categories' ] = dataset . categories ?. map (
168- ( category : TypeCategory ) => {
186+ defaultVal [ 'categories' ] =
187+ dataset . categories ?. map ( ( category : TypeCategory ) => {
169188 return {
170189 label : category . name ,
171190 value : category . id ,
172191 } ;
173- }
174- ) ;
192+ } ) || [ ] ;
193+
194+ defaultVal [ 'tags' ] =
195+ dataset . tags ?. map ( ( tag : TypeTag ) => {
196+ return {
197+ label : tag . value ,
198+ value : tag . id ,
199+ } ;
200+ } ) || [ ] ;
175201
176202 return defaultVal ;
177203 } ;
@@ -180,6 +206,7 @@ export function EditMetadata({ id }: { id: string }) {
180206 < >
181207 < Form
182208 onSubmit = { ( values ) => {
209+ // Call the mutation to save both the static and dynamic metadata
183210 updateMetadataMutation . mutate ( {
184211 UpdateMetadataInput : {
185212 dataset : id ,
@@ -197,7 +224,7 @@ export function EditMetadata({ id }: { id: string }) {
197224 } ) ,
198225 ] ,
199226 description : values . description || '' ,
200- tags : values . tags || [ ] ,
227+ tags : values . tags ?. map ( ( item : any ) => item . label ) || [ ] ,
201228 categories :
202229 values . categories ?. map ( ( item : any ) => item . value ) || [ ] ,
203230 } ,
@@ -229,7 +256,21 @@ export function EditMetadata({ id }: { id: string }) {
229256
230257 < div className = "flex flex-wrap" >
231258 < div className = "w-full py-4 pr-4 sm:w-1/2 md:w-1/2 lg:w-1/2 xl:w-1/2" >
232- < Combobox name = { 'tags' } list = { [ ] } label = { 'Tags' } />
259+ < Combobox
260+ displaySelected
261+ name = "tags"
262+ list = {
263+ getTagsList . isLoading || getTagsList . error
264+ ? [ ]
265+ : getTagsList . data ?. tags ?. map ( ( item : TypeTag ) => {
266+ return {
267+ label : item . value ,
268+ value : item . id ,
269+ } ;
270+ } ) || [ ]
271+ }
272+ label = "Tags"
273+ />
233274 </ div >
234275 < div className = "w-full py-4 pr-4 sm:w-1/2 md:w-1/2 lg:w-1/2 xl:w-1/2" >
235276 < Combobox
0 commit comments