Skip to content

Commit a436830

Browse files
refactor: use Episode type directly instead of SearchableEpisode
Remove the SearchableEpisode type alias and use the Episode type directly as requested in code review. Co-authored-by: RobbieTheWagner <2640861+RobbieTheWagner@users.noreply.github.com>
1 parent 8ca03f8 commit a436830

3 files changed

Lines changed: 5 additions & 23 deletions

File tree

src/components/SearchDialog.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import type { JSX } from 'preact/jsx-runtime';
22
import { useEffect, useState, useRef, useCallback } from 'preact/hooks';
33
import { isSearchOpen } from './state';
4-
import type { SearchableEpisode } from '../lib/rss';
4+
import type { Episode } from '../lib/rss';
55

66
export default function SearchDialog() {
77
const [query, setQuery] = useState('');
8-
const [episodes, setEpisodes] = useState<SearchableEpisode[]>([]);
9-
const [filteredEpisodes, setFilteredEpisodes] = useState<SearchableEpisode[]>(
10-
[]
11-
);
8+
const [episodes, setEpisodes] = useState<Episode[]>([]);
9+
const [filteredEpisodes, setFilteredEpisodes] = useState<Episode[]>([]);
1210
const [selectedIndex, setSelectedIndex] = useState(0);
1311
const inputRef = useRef<HTMLInputElement>(null);
1412
const resultsRef = useRef<HTMLDivElement>(null);

src/lib/rss.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,6 @@ export interface Episode {
3131
};
3232
}
3333

34-
// Subset of Episode for search functionality
35-
export type SearchableEpisode = Pick<
36-
Episode,
37-
'id' | 'title' | 'description' | 'episodeNumber' | 'episodeSlug' | 'episodeThumbnail'
38-
>;
39-
4034
let showInfoCache: Show | null = null;
4135

4236
export async function getShowInfo() {

src/pages/api/episodes/search.json.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
11
import type { APIRoute } from 'astro';
2-
import { getAllEpisodes, type SearchableEpisode } from '../../../lib/rss';
2+
import { getAllEpisodes } from '../../../lib/rss';
33

44
export const prerender = true;
55

66
export const GET: APIRoute = async () => {
77
const allEpisodes = await getAllEpisodes();
88

9-
// Return a simplified list of episodes optimized for search
10-
const searchableEpisodes: SearchableEpisode[] = allEpisodes.map((episode) => ({
11-
id: episode.id,
12-
title: episode.title,
13-
description: episode.description,
14-
episodeNumber: episode.episodeNumber,
15-
episodeSlug: episode.episodeSlug,
16-
episodeThumbnail: episode.episodeThumbnail
17-
}));
18-
19-
return new Response(JSON.stringify(searchableEpisodes), {
9+
return new Response(JSON.stringify(allEpisodes), {
2010
headers: {
2111
'Content-Type': 'application/json'
2212
}

0 commit comments

Comments
 (0)