This commit is contained in:
@@ -99,14 +99,14 @@ export default ({ user }: Props) => {
|
|||||||
{post.viewed ? '閲覧済' : '未閲覧'}
|
{post.viewed ? '閲覧済' : '未閲覧'}
|
||||||
</Button>
|
</Button>
|
||||||
<TabGroup>
|
<TabGroup>
|
||||||
{['admin', 'member'].some (r => r === user.role) && editing &&
|
{(['admin', 'member'].some (r => r === user.role) && editing) && (
|
||||||
<Tab name="編輯">
|
<Tab name="編輯">
|
||||||
<PostEditForm post={post}
|
<PostEditForm post={post}
|
||||||
onSave={newPost => {
|
onSave={newPost => {
|
||||||
setPost (newPost)
|
setPost (newPost)
|
||||||
toast ({ description: '更新しました.' })
|
toast ({ description: '更新しました.' })
|
||||||
}} />
|
}} />
|
||||||
</Tab>}
|
</Tab>)}
|
||||||
</TabGroup>
|
</TabGroup>
|
||||||
</>)
|
</>)
|
||||||
: 'Loading...'}
|
: 'Loading...'}
|
||||||
|
|||||||
@@ -21,12 +21,12 @@ export default () => {
|
|||||||
|
|
||||||
const loaderRef = useRef<HTMLDivElement | null> (null)
|
const loaderRef = useRef<HTMLDivElement | null> (null)
|
||||||
|
|
||||||
const loadMore = async () => {
|
const loadMore = async withCursor => {
|
||||||
setLoading (true)
|
setLoading (true)
|
||||||
const res = await axios.get (`${ API_BASE_URL }/posts`, {
|
const res = await axios.get (`${ API_BASE_URL }/posts`, {
|
||||||
params: { tags: tags.join (' '),
|
params: { tags: tags.join (' '),
|
||||||
match: (anyFlg ? 'any' : 'all'),
|
match: (anyFlg ? 'any' : 'all'),
|
||||||
cursor } })
|
...(withCursor ? { cursor } : { }) } })
|
||||||
const data = toCamel (res.data, { deep: true })
|
const data = toCamel (res.data, { deep: true })
|
||||||
setPosts (posts => [...(posts || []), ...data.posts])
|
setPosts (posts => [...(posts || []), ...data.posts])
|
||||||
setCursor (data.nextCursor)
|
setCursor (data.nextCursor)
|
||||||
@@ -42,7 +42,7 @@ export default () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const observer = new IntersectionObserver (entries => {
|
const observer = new IntersectionObserver (entries => {
|
||||||
if (entries[0].isIntersecting && !(loading) && cursor)
|
if (entries[0].isIntersecting && !(loading) && cursor)
|
||||||
loadMore ()
|
loadMore (true)
|
||||||
}, { threshold: 1 })
|
}, { threshold: 1 })
|
||||||
|
|
||||||
const target = loaderRef.current
|
const target = loaderRef.current
|
||||||
@@ -52,10 +52,9 @@ export default () => {
|
|||||||
}, [loaderRef, loading])
|
}, [loaderRef, loading])
|
||||||
|
|
||||||
useEffect (() => {
|
useEffect (() => {
|
||||||
console.log ('test')
|
|
||||||
setCursor ('')
|
|
||||||
setPosts (null)
|
setPosts (null)
|
||||||
loadMore ()
|
setCursor ('')
|
||||||
|
loadMore (false)
|
||||||
|
|
||||||
setWikiPage (null)
|
setWikiPage (null)
|
||||||
if (tags.length === 1)
|
if (tags.length === 1)
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ export default () => {
|
|||||||
className="w-full border rounded p-2"
|
className="w-full border rounded p-2"
|
||||||
value={title}
|
value={title}
|
||||||
placeholder={titleLoading ? 'Loading...' : ''}
|
placeholder={titleLoading ? 'Loading...' : ''}
|
||||||
onChange={e => setTitle (e.target.value)}
|
onChange={ev => setTitle (ev.target.value)}
|
||||||
disabled={titleAutoFlg} />
|
disabled={titleAutoFlg} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user