Skip to content

Commit 169a524

Browse files
authored
Filter for tools supporting bowtie (#1582)
1 parent eba9f4d commit 169a524

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

pages/tools/components/Sidebar.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ export default function Sidebar({
7070
(formData.get('showObsolete') as string) === 'showObsolete'
7171
? 'true'
7272
: 'false',
73+
supportsBowtie:
74+
(formData.get('supportsBowtie') as string) === 'supportsBowtie'
75+
? 'true'
76+
: 'false',
7377
} satisfies Transform;
7478
postAnalytics({ eventType: 'query', eventPayload: newTransform });
7579
return newTransform;
@@ -123,7 +127,12 @@ export default function Sidebar({
123127
name='showObsolete'
124128
checked={transform['showObsolete'] === 'true'}
125129
/>
126-
130+
<Checkbox
131+
label='Support Bowtie'
132+
value='supportsBowtie'
133+
name='supportsBowtie'
134+
checked={transform['supportsBowtie'] === 'true'}
135+
/>
127136
<div className='w-full flex items-center justify-between mt-4 gap-2'>
128137
<button
129138
type='submit'

pages/tools/hooks/useToolsTransform.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export interface Transform {
1616
toolingTypes: string[];
1717
environments: string[];
1818
showObsolete: 'true' | 'false';
19+
supportsBowtie: 'true' | 'false';
1920
}
2021

2122
export type TransformUpdate =
@@ -38,6 +39,7 @@ const buildQueryString = (transform: Transform) => {
3839
toolingTypes: transform.toolingTypes.join(','),
3940
environments: transform.environments.join(','),
4041
showObsolete: transform.showObsolete,
42+
supportsBowtie: transform.supportsBowtie,
4143
}).toString();
4244
};
4345

@@ -56,6 +58,7 @@ export default function useToolsTransform(tools: JSONSchemaTool[]) {
5658
toolingTypes: [],
5759
environments: [],
5860
showObsolete: 'false',
61+
supportsBowtie: 'false',
5962
});
6063

6164
useEffect(() => {
@@ -89,6 +92,8 @@ export default function useToolsTransform(tools: JSONSchemaTool[]) {
8992
) as Transform['environments'],
9093
showObsolete:
9194
(query.showObsolete as Transform['showObsolete']) || 'false',
95+
supportsBowtie:
96+
(query.supportsBowtie as Transform['supportsBowtie']) || 'false',
9297
} satisfies Transform;
9398

9499
const queryString = buildQueryString(updatedTransform);
@@ -137,6 +142,7 @@ export default function useToolsTransform(tools: JSONSchemaTool[]) {
137142
toolingTypes: [],
138143
environments: [],
139144
showObsolete: 'false',
145+
supportsBowtie: 'false',
140146
};
141147

142148
const queryString = buildQueryString(initialTransform);
@@ -193,6 +199,9 @@ const filterTools = (
193199
transform: Transform,
194200
): JSONSchemaTool[] => {
195201
const filteredTools = tools.filter((tool) => {
202+
if (transform.supportsBowtie === 'true' && !tool.bowtie?.id) {
203+
return false;
204+
}
196205
if (transform.showObsolete === 'false' && tool.status === 'obsolete')
197206
return false;
198207

0 commit comments

Comments
 (0)