@@ -10,7 +10,7 @@ type FormDetails = {
1010 title : string ;
1111 description : string ;
1212} ;
13- export type UrlForForm = ( id : string ) => string ;
13+ export type UrlForForm = ( id : string ) => string | null ;
1414export type UrlForFormManager = UrlForForm ;
1515
1616export default function AvailableFormList ( {
@@ -110,27 +110,11 @@ const FormList = ({
110110 </ th >
111111 < td data-label = "Description" > { form . description } </ td >
112112 < td data-label = "Actions" >
113- < div className = "grid-row grid-gap-md" >
114- < a
115- href = { urlForForm ( form . id ) }
116- title = { form . title }
117- className = "grid-col-auto"
118- >
119- Go to form
120- </ a >
121- < a
122- href = { `${ urlForFormManager ( form . id ) } /create` }
123- className = "grid-col-auto"
124- >
125- Edit
126- </ a >
127- < a
128- href = { `${ urlForFormManager ( form . id ) } /delete` }
129- className = "grid-col-auto"
130- >
131- Delete
132- </ a >
133- </ div >
113+ < FormActions
114+ form = { form }
115+ urlForForm = { urlForForm }
116+ urlForFormManager = { urlForFormManager }
117+ />
134118 </ td >
135119 </ tr >
136120 ) )
@@ -140,6 +124,40 @@ const FormList = ({
140124 ) ;
141125} ;
142126
127+ const FormActions = ( {
128+ form,
129+ urlForForm,
130+ urlForFormManager,
131+ } : {
132+ form : FormDetails ;
133+ urlForForm : UrlForForm ;
134+ urlForFormManager : UrlForFormManager ;
135+ } ) => {
136+ const formUrl = urlForForm ( form . id ) ;
137+
138+ return (
139+ < div className = "grid-row grid-gap-md" >
140+ { formUrl && (
141+ < a href = { formUrl } title = { form . title } className = "grid-col-auto" >
142+ Go to form
143+ </ a >
144+ ) }
145+ < a
146+ href = { `${ urlForFormManager ( form . id ) } /create` }
147+ className = "grid-col-auto"
148+ >
149+ Edit
150+ </ a >
151+ < a
152+ href = { `${ urlForFormManager ( form . id ) } /delete` }
153+ className = "grid-col-auto"
154+ >
155+ Delete
156+ </ a >
157+ </ div >
158+ ) ;
159+ } ;
160+
143161const DebugTools = ( ) => {
144162 return (
145163 < button
0 commit comments