Skip to content

Commit

Permalink
feat(tags nav): return 404 from server
Browse files Browse the repository at this point in the history
  • Loading branch information
jrhender committed Feb 9, 2024
1 parent 93e6ccb commit 9cb09d5
Showing 1 changed file with 11 additions and 15 deletions.
26 changes: 11 additions & 15 deletions app/routes/tags.nav.$tag.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,15 @@ export const loader = async ({request, params}: Parameters<LoaderFunction>[0]) =
throw Error('missing tag name')
}

try {
const tags = await loadTags(request)
return {...tags, tagFromUrl}
} catch (error: unknown) {
console.error(`error fetching tag "${tagFromUrl}":`, error)
return {
error: error?.toString(),
timestamp: new Date().toISOString(),
data: new Array<TagType>(),
tagFromUrl,
}
const tags = await loadTags(request)
const currentTag = tags.data.find((tagData) => tagData.name === tagFromUrl)
if (currentTag === undefined) {
throw new Response(null, {
status: 404,
statusText: 'Unable to find requested tag',
})
}
return {...tags, currentTag}
}

export const sortFuncs = {
Expand All @@ -35,7 +32,7 @@ export const sortFuncs = {
}

export default function App() {
const {tagFromUrl, data} = useLoaderData<ReturnType<typeof loader>>()
const {currentTag, data} = useLoaderData<ReturnType<typeof loader>>()
const [selectedTag, setSelectedTag] = useState<TagType | null>(null)
const [tagsFilter, setTagsFilter] = useState<string>('')
const {toc} = useToC()
Expand All @@ -44,10 +41,9 @@ export default function App() {

useEffect(() => {
if (selectedTag === null) {
const dataForUrlTag = data.filter((tagData) => tagData.name === tagFromUrl)[0]
setSelectedTag(dataForUrlTag)
setSelectedTag(currentTag)
}
}, [selectedTag, data, tagFromUrl])
}, [selectedTag, data, currentTag])
if (selectedTag === null) {
return null
}
Expand Down

0 comments on commit 9cb09d5

Please sign in to comment.