a tool for shared writing and social publishing

Merge branch 'main' into feature/atp-canvas-blocks

+17 -12
+1 -1
app/lish/[did]/[publication]/[rkey]/LinearDocumentPage.tsx
··· 114 114 {!isSubpage && ( 115 115 <> 116 116 <hr className="border-border-light mb-4 mt-4 sm:mx-4 mx-3" /> 117 - <div className="pb-6 sm:px-4 px-3"> 117 + <div className="sm:px-4 px-3"> 118 118 {identity && 119 119 identity.atp_did === 120 120 document.documents_in_publications[0]?.publications
+7 -8
app/lish/[did]/[publication]/[rkey]/PostContent.tsx
··· 124 124 if (!alignment && PubLeafletBlocksImage.isMain(b.block)) 125 125 alignment = "text-center justify-center"; 126 126 127 - // non text blocks, they need this padding, pt-3 sm:pt-4, which is applied in each case 128 127 let className = ` 129 128 postBlockWrapper 130 129 min-h-7 131 - pt-1 pb-2 132 - ${isList && "isListItem pb-0! "} 130 + mt-1 mb-2 131 + ${isList && "isListItem mb-0! "} 133 132 ${alignment} 134 133 `; 135 134 ··· 150 149 bskyPostData={bskyPostData} 151 150 isCanvas={isCanvas} 152 151 pages={pages} 152 + className={className} 153 153 /> 154 154 ); 155 155 } ··· 157 157 let uri = b.block.postRef.uri; 158 158 let post = bskyPostData.find((p) => p.uri === uri); 159 159 if (!post) return <div>no prefetched post rip</div>; 160 - return <PubBlueskyPostBlock post={post} />; 160 + return <PubBlueskyPostBlock post={post} className={className} />; 161 161 } 162 162 case PubLeafletBlocksIframe.isMain(b.block): { 163 163 return ( ··· 206 206 href={b.block.src} 207 207 target="_blank" 208 208 className={` 209 - my-2 209 + ${className} 210 210 externalLinkBlock flex relative group/linkBlock 211 211 h-[104px] w-full bg-bg-page overflow-hidden text-primary hover:no-underline no-underline 212 212 hover:border-accent-contrast shadow-sm ··· 258 258 alt={b.block.alt} 259 259 height={b.block.aspectRatio?.height} 260 260 width={b.block.aspectRatio?.width} 261 - className={`pt-3! sm:pt-4! rounded-md ${className}`} 261 + className={`rounded-lg border border-transparent ${className}`} 262 262 src={blobRefToSrc(b.block.image.ref, did)} 263 263 /> 264 264 {b.block.alt && ( ··· 279 279 } 280 280 case PubLeafletBlocksBlockquote.isMain(b.block): { 281 281 return ( 282 - // highly unfortunate hack so that the border-l on blockquote is the height of just the text rather than the height of the block, which includes padding. 282 + // all this margin stuff is a highly unfortunate hack so that the border-l on blockquote is the height of just the text rather than the height of the block, which includes padding. 283 283 <blockquote 284 284 className={` blockquote py-0! mb-2! last:mb-3! sm:last:mb-4! first:mt-2! sm:first:pt-3 ${className} ${PubLeafletBlocksBlockquote.isMain(previousBlock?.block) ? "-mt-2!" : "mt-1!"}`} 285 285 {...blockProps} ··· 383 383 ))} 384 384 </ul> 385 385 ) : null; 386 - 387 386 return ( 388 387 <li className={`pb-0! flex flex-row gap-2`}> 389 388 <div
+6 -1
app/lish/[did]/[publication]/[rkey]/PublishBskyPostBlock.tsx
··· 16 16 } from "components/Blocks/BlueskyPostBlock/BlueskyEmbed"; 17 17 import { BlueskyRichText } from "components/Blocks/BlueskyPostBlock/BlueskyRichText"; 18 18 19 - export const PubBlueskyPostBlock = ({ post }: { post: PostView }) => { 19 + export const PubBlueskyPostBlock = (props: { 20 + post: PostView; 21 + className: string; 22 + }) => { 23 + let post = props.post; 20 24 switch (true) { 21 25 case AppBskyFeedDefs.isBlockedPost(post) || 22 26 AppBskyFeedDefs.isBlockedAuthor(post) || ··· 46 50 return ( 47 51 <div 48 52 className={` 53 + ${props.className} 49 54 block-border 50 55 mb-2 51 56 flex flex-col gap-2 relative w-full overflow-hidden group/blueskyPostBlock sm:p-3 p-2 text-sm text-secondary bg-bg-page
+1 -1
app/lish/[did]/[publication]/[rkey]/PublishedPageBlock.tsx
··· 48 48 bg-bg-page shadow-sm 49 49 flex overflow-clip 50 50 block-border 51 - mt-1 mb-2 52 51 ${isOpen && "!border-tertiary"} 52 + ${props.className} 53 53 `} 54 54 onClick={(e) => { 55 55 if (e.isDefaultPrevented()) return;
+1 -1
components/DesktopFooter.tsx
··· 16 16 return ( 17 17 <Media 18 18 mobile={false} 19 - className="absolute bottom-4 w-full z-10 pointer-events-none" 19 + className="absolute bottom-[40px] w-full z-10 pointer-events-none" 20 20 > 21 21 {focusedEntity && 22 22 focusedEntity.entityType === "block" &&
+1
components/Pages/Page.tsx
··· 133 133 `} 134 134 > 135 135 {props.children} 136 + <div className="h-4 sm:h-6 w-full" /> 136 137 </div> 137 138 </div> 138 139 {props.pageOptions}