Browse Source

#179 完了

feature/179
みてるぞ 1 day ago
parent
commit
65b9f75a1f
1 changed files with 40 additions and 31 deletions
  1. +40
    -31
      frontend/src/components/TagSidebar.tsx

+ 40
- 31
frontend/src/components/TagSidebar.tsx View File

@@ -58,15 +58,52 @@ export default (({ posts }: Props) => {
setTags (tagsTmp)
}, [posts])

const TagBlock = (
<>
<SectionTitle>タグ</SectionTitle>
<ul>
{CATEGORIES.flatMap (cat => cat in tags ? (
tags[cat].map (tag => (
<li key={tag.id} className="mb-1">
<TagLink tag={tag}/>
</li>))) : [])}
</ul>
<SectionTitle>関聯</SectionTitle>
{posts.length > 0 && (
<a href="#"
onClick={ev => {
ev.preventDefault ()
void ((async () => {
try
{
const { data } = await axios.get (`${ API_BASE_URL }/posts/random`,
{ params: { tags: tagsQuery.split (' ').filter (e => e !== '').join (' '),
match: (anyFlg ? 'any' : 'all') } })
navigate (`/posts/${ (data as Post).id }`)
}
catch
{
;
}
}) ())
}}>
ランダム
</a>)}
</>)

return (
<SidebarComponent>
<TagSearch/>

<div className="hidden md:block mt-4">
{TagBlock}
</div>

<AnimatePresence initial={false}>
{tagsVsbl && (
<motion.div
key="sptags"
className="md:block mt-4"
className="md:hidden mt-4"
variants={{ hidden: { clipPath: 'inset(0 0 100% 0)',
height: 0 },
visible: { clipPath: 'inset(0 0 0% 0)',
@@ -75,35 +112,7 @@ export default (({ posts }: Props) => {
animate="visible"
exit="hidden"
transition={{ duration: .2, ease: 'easeOut' }}>
<SectionTitle>タグ</SectionTitle>
<ul>
{CATEGORIES.flatMap (cat => cat in tags ? (
tags[cat].map (tag => (
<li key={tag.id} className="mb-1">
<TagLink tag={tag}/>
</li>))) : [])}
</ul>
<SectionTitle>関聯</SectionTitle>
{posts.length > 0 && (
<a href="#"
onClick={ev => {
ev.preventDefault ()
void ((async () => {
try
{
const { data } = await axios.get (`${ API_BASE_URL }/posts/random`,
{ params: { tags: tagsQuery.split (' ').filter (e => e !== '').join (' '),
match: (anyFlg ? 'any' : 'all') } })
navigate (`/posts/${ (data as Post).id }`)
}
catch
{
;
}
}) ())
}}>
ランダム
</a>)}
{TagBlock}
</motion.div>)}
</AnimatePresence>

@@ -113,7 +122,7 @@ export default (({ posts }: Props) => {
dark:text-gray-300 dark:hover:text-gray-100"
onClick={ev => {
ev.preventDefault ()
setTagsVsbl (!(tagsVsbl))
setTagsVsbl (v => !(v))
}}>
{tagsVsbl ? '▲▲▲ タグ一覧を閉じる ▲▲▲' : '▼▼▼ タグ一覧を表示 ▼▼▼'}
</a>


Loading…
Cancel
Save