Skip to content

Commit 82bb94d

Browse files
authored
Make form link optional (#8)
1 parent 53b4e8e commit 82bb94d

2 files changed

Lines changed: 45 additions & 22 deletions

File tree

.changeset/heavy-rooms-rule.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@flexion/forms-design': patch
3+
---
4+
5+
Make form link in form list optional

packages/design/src/AvailableFormList/index.tsx

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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;
1414
export type UrlForFormManager = UrlForForm;
1515

1616
export 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+
143161
const DebugTools = () => {
144162
return (
145163
<button

0 commit comments

Comments
 (0)