keep as much context as possible when navigating deeper in comment threads
This commit is contained in:
		
							parent
							
								
									39625f7e08
								
							
						
					
					
						commit
						43a54d407e
					
				| @ -116,7 +116,7 @@ export default function Comment ({ | |||||||
|       setTimeout(() => { |       setTimeout(() => { | ||||||
|         ref.current.scrollIntoView({ behavior: 'instant', block: 'start' }) |         ref.current.scrollIntoView({ behavior: 'instant', block: 'start' }) | ||||||
|         ref.current.classList.add('outline-it') |         ref.current.classList.add('outline-it') | ||||||
|       }, 20) |       }, 100) | ||||||
|     } |     } | ||||||
|   }, [item.id, router.query.commentId]) |   }, [item.id, router.query.commentId]) | ||||||
| 
 | 
 | ||||||
| @ -223,7 +223,7 @@ export default function Comment ({ | |||||||
|       </div> |       </div> | ||||||
|       {collapse !== 'yep' && ( |       {collapse !== 'yep' && ( | ||||||
|         bottomedOut |         bottomedOut | ||||||
|           ? <DepthLimit item={item} /> |           ? <div className={styles.children}><ReplyOnAnotherPage item={item} /></div> | ||||||
|           : ( |           : ( | ||||||
|             <div className={styles.children}> |             <div className={styles.children}> | ||||||
|               {!noReply && |               {!noReply && | ||||||
| @ -245,22 +245,6 @@ export default function Comment ({ | |||||||
|   ) |   ) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function DepthLimit ({ item }) { |  | ||||||
|   if (item.ncomments > 0) { |  | ||||||
|     return ( |  | ||||||
|       <Link href={`/items/${item.id}`} className='d-block p-3 fw-bold text-muted w-100 text-center'> |  | ||||||
|         view replies |  | ||||||
|       </Link> |  | ||||||
|     ) |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   return ( |  | ||||||
|     <div className={styles.children}> |  | ||||||
|       <ReplyOnAnotherPage parentId={item.id} /> |  | ||||||
|     </div> |  | ||||||
|   ) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export function CommentSkeleton ({ skeletonChildren }) { | export function CommentSkeleton ({ skeletonChildren }) { | ||||||
|   return ( |   return ( | ||||||
|     <div className={styles.comment}> |     <div className={styles.comment}> | ||||||
|  | |||||||
| @ -10,11 +10,20 @@ import { commentsViewedAfterComment } from '../lib/new-comments' | |||||||
| import { commentSchema } from '../lib/validate' | import { commentSchema } from '../lib/validate' | ||||||
| import Info from './info' | import Info from './info' | ||||||
| import { quote } from '../lib/md' | import { quote } from '../lib/md' | ||||||
|  | import { COMMENT_DEPTH_LIMIT } from '../lib/constants' | ||||||
|  | 
 | ||||||
|  | export function ReplyOnAnotherPage ({ item }) { | ||||||
|  |   const path = item.path.split('.') | ||||||
|  |   const rootId = path.slice(-(COMMENT_DEPTH_LIMIT - 1))[0] | ||||||
|  | 
 | ||||||
|  |   let text = 'reply on another page' | ||||||
|  |   if (item.ncomments > 0) { | ||||||
|  |     text = 'view replies' | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
| export function ReplyOnAnotherPage ({ parentId }) { |  | ||||||
|   return ( |   return ( | ||||||
|     <Link href={`/items/${parentId}`} className={`${styles.replyButtons} text-muted`}> |     <Link href={`/items/${rootId}?commentId=${item.id}`} as={`/items/${rootId}`} className='d-block py-3 fw-bold text-muted'> | ||||||
|       reply on another page |       {text} | ||||||
|     </Link> |     </Link> | ||||||
|   ) |   ) | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user