This commit is contained in:
		
							parent
							
								
									4c1b189ca0
								
							
						
					
					
						commit
						cff0c2880a
					
				
					 4 changed files with 44 additions and 111 deletions
				
			
		|  | @ -325,7 +325,7 @@ const RegularToot: Component<TootCardProps> = (props) => { | |||
|           source={toot().content} | ||||
|           emojis={toot().emojis} | ||||
|           mentions={toot().mentions} | ||||
|           class={tootStyle.tootContent} | ||||
|           class={cardStyle.cardNoPad} | ||||
|         /> | ||||
|         <Show when={toot().card}> | ||||
|           <PreviewCard src={toot().card!} /> | ||||
|  |  | |||
							
								
								
									
										29
									
								
								src/timelines/toot-components/TootContent.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/timelines/toot-components/TootContent.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| .TootContent { | ||||
|   composes: cardNoPad from "../material/cards.module.css"; | ||||
|   margin-left: calc(var(--card-pad, 0) + var(--toot-avatar-size, 0) + 8px); | ||||
|   margin-right: var(--card-pad, 0); | ||||
|   line-height: 1.5; | ||||
| 
 | ||||
|   & * { | ||||
|     user-select: text; | ||||
|   } | ||||
| 
 | ||||
|   & a { | ||||
|     color: var(--tutu-color-primary-d); | ||||
|   } | ||||
| 
 | ||||
|   & a[target="_blank"] { | ||||
|     word-break: break-all; | ||||
| 
 | ||||
|     >.invisible { | ||||
|       display: none; | ||||
|     } | ||||
| 
 | ||||
|     >.ellipsis { | ||||
|       &::after { | ||||
|         display: inline; | ||||
|         content: "..."; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | @ -8,6 +8,7 @@ import { | |||
| } from "solid-js"; | ||||
| import { resolveCustomEmoji } from "../../masto/toot.js"; | ||||
| import { makeAcctText, useDefaultSession } from "../../masto/clients"; | ||||
| import "./TootContent.css"; | ||||
| 
 | ||||
| function preventDefault(event: Event) { | ||||
|   event.preventDefault(); | ||||
|  | @ -19,9 +20,14 @@ export type TootContentProps = { | |||
|   mentions: mastodon.v1.StatusMention[]; | ||||
| } & JSX.HTMLAttributes<HTMLDivElement>; | ||||
| 
 | ||||
| const TootContent: Component<TootContentProps> = (props) => { | ||||
| const TootContent: Component<TootContentProps> = (oprops) => { | ||||
|   const session = useDefaultSession(); | ||||
|   const [managed, rest] = splitProps(props, ["source", "emojis", "mentions"]); | ||||
|   const [props, rest] = splitProps(oprops, [ | ||||
|     "source", | ||||
|     "emojis", | ||||
|     "mentions", | ||||
|     "class", | ||||
|   ]); | ||||
| 
 | ||||
|   const clientFinder = createMemo(() => | ||||
|     session() ? makeAcctText(session()!) : undefined, | ||||
|  | @ -31,10 +37,10 @@ const TootContent: Component<TootContentProps> = (props) => { | |||
|     <div | ||||
|       ref={(ref) => { | ||||
|         createRenderEffect(() => { | ||||
|           ref.innerHTML = managed.source | ||||
|             ? managed.emojis | ||||
|               ? resolveCustomEmoji(managed.source, managed.emojis) | ||||
|               : managed.source | ||||
|           ref.innerHTML = props.source | ||||
|             ? props.emojis | ||||
|               ? resolveCustomEmoji(props.source, props.emojis) | ||||
|               : props.source | ||||
|             : ""; | ||||
|         }); | ||||
| 
 | ||||
|  | @ -53,6 +59,7 @@ const TootContent: Component<TootContentProps> = (props) => { | |||
|           } | ||||
|         }); | ||||
|       }} | ||||
|       class={`TootContent ${props.class || ""}`} | ||||
|       {...rest} | ||||
|     ></div> | ||||
|   ); | ||||
|  |  | |||
|  | @ -89,103 +89,6 @@ | |||
|   background-color: var(--tutu-color-surface-d); | ||||
| } | ||||
| 
 | ||||
| .tootContent { | ||||
|   composes: cardNoPad from "../material/cards.module.css"; | ||||
|   margin-left: calc(var(--card-pad, 0) + var(--toot-avatar-size, 0) + 8px); | ||||
|   margin-right: var(--card-pad, 0); | ||||
|   line-height: 1.5; | ||||
| 
 | ||||
|   & * { | ||||
|     user-select: text; | ||||
|   } | ||||
| 
 | ||||
|   & a { | ||||
|     color: var(--tutu-color-primary-d); | ||||
|   } | ||||
| 
 | ||||
|   & :global(a[target="_blank"]) { | ||||
|     > :global(.invisible) { | ||||
|       display: none; | ||||
|     } | ||||
| 
 | ||||
|     > :global(.ellipsis) { | ||||
|       &::after { | ||||
|         display: inline; | ||||
|         content: "..."; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .previewCard { | ||||
|   composes: cardGutSkip from "../material/cards.module.css"; | ||||
|   display: block; | ||||
|   border: 1px solid #eeeeee; | ||||
|   background-color: var(--tutu-color-surface); | ||||
|   text-decoration: none; | ||||
|   border-radius: 4px; | ||||
|   overflow: hidden; | ||||
|   margin-top: 1em; | ||||
|   margin-bottom: 1.5em; | ||||
|   color: var(--tutu-color-secondary-text-on-surface); | ||||
|   transition: color 220ms var(--tutu-anim-curve-std), background-color 220ms var(--tutu-anim-curve-std); | ||||
|   padding-bottom: 8px; | ||||
|   overflow: hidden; | ||||
|   z-index: 1; | ||||
|   position: relative; | ||||
| 
 | ||||
|   >img { | ||||
|     background-color: #eeeeee; | ||||
|     max-width: 100%; | ||||
|     height: auto; | ||||
|   } | ||||
| 
 | ||||
|   &:hover, | ||||
|   &:focus-visible { | ||||
|     background-color: var(--tutu-color-surface-d); | ||||
|     color: var(--tutu-color-on-surface); | ||||
| 
 | ||||
|     >h1 { | ||||
|       text-decoration: underline; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   >h1 { | ||||
|     color: var(--tutu-color-on-surface); | ||||
|     max-height: calc(4 * var(--title-line-height) * var(--title-size)); | ||||
|   } | ||||
| 
 | ||||
|   >p { | ||||
|     max-height: calc(8 * var(--body-line-height) * var(--body-size)); | ||||
|   } | ||||
| 
 | ||||
|   >h1, | ||||
|   >p { | ||||
|     margin-left: 16px; | ||||
|     margin-right: 16px; | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|   } | ||||
| 
 | ||||
|   &.compact { | ||||
|     display: grid; | ||||
|     grid-template-columns: minmax(10%, 30%) 1fr; | ||||
|     padding-left: 16px; | ||||
|     padding-right: 16px; | ||||
|     padding-top: 8px; | ||||
| 
 | ||||
|     >img:first-child { | ||||
|       grid-row: 1 / 3; | ||||
|       object-fit: contain; | ||||
|     } | ||||
| 
 | ||||
|     >h1, | ||||
|     >p { | ||||
|       margin-right: 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .toot.compact { | ||||
|   display: grid; | ||||
|   grid-template-columns: auto 1fr; | ||||
|  | @ -221,12 +124,6 @@ | |||
|   } | ||||
| } | ||||
| 
 | ||||
| .compactTootContent { | ||||
|   composes: tootContent; | ||||
|   margin-left: 0; | ||||
|   margin-right: 0; | ||||
| } | ||||
| 
 | ||||
| .tootRetootGrp { | ||||
|   display: flex; | ||||
|   gap: 0.25em; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue