Compare commits
3 commits
b133a9b9a7
...
cecebda39b
Author | SHA1 | Date | |
---|---|---|---|
|
cecebda39b | ||
|
0f357a66e8 | ||
|
13ad3e4958 |
4 changed files with 20 additions and 4 deletions
|
@ -1,12 +1,11 @@
|
||||||
import type { mastodon } from "masto";
|
import type { mastodon } from "masto";
|
||||||
import { type Component } from "solid-js";
|
import { Show, type Component } from "solid-js";
|
||||||
import tootStyle from "./toot.module.css";
|
import tootStyle from "./toot.module.css";
|
||||||
import { formatRelative } from "date-fns";
|
import { formatRelative } from "date-fns";
|
||||||
import Img from "../material/Img";
|
import Img from "../material/Img";
|
||||||
import { Body2 } from "../material/typography";
|
import { Body2 } from "../material/typography";
|
||||||
import { css } from "solid-styled";
|
|
||||||
import { appliedCustomEmoji } from "../masto/toot";
|
import { appliedCustomEmoji } from "../masto/toot";
|
||||||
import cardStyle from "../material/cards.module.css";
|
import { TootPreviewCard } from "./RegularToot";
|
||||||
|
|
||||||
type CompactTootProps = {
|
type CompactTootProps = {
|
||||||
status: mastodon.v1.Status;
|
status: mastodon.v1.Status;
|
||||||
|
@ -48,6 +47,9 @@ const CompactToot: Component<CompactTootProps> = (props) => {
|
||||||
}}
|
}}
|
||||||
class={[tootStyle.compactTootContent].join(" ")}
|
class={[tootStyle.compactTootContent].join(" ")}
|
||||||
></div>
|
></div>
|
||||||
|
<Show when={toot().card}>
|
||||||
|
<TootPreviewCard src={toot().card!} alwaysCompact />
|
||||||
|
</Show>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -282,6 +282,12 @@ const Home: ParentComponent = (props) => {
|
||||||
if (items.length > idx) {
|
if (items.length > idx) {
|
||||||
items.item(idx).scrollIntoView({ block: "start", behavior: "smooth" });
|
items.item(idx).scrollIntoView({ block: "start", behavior: "smooth" });
|
||||||
}
|
}
|
||||||
|
if (isTabFocus(idx)) {
|
||||||
|
items.item(idx).scrollTo({
|
||||||
|
top: 0,
|
||||||
|
behavior: "smooth",
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const openFullScreenToot = (
|
const openFullScreenToot = (
|
||||||
|
|
|
@ -197,10 +197,17 @@ function TootAuthorGroup(props: { status: mastodon.v1.Status; now: Date }) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function TootPreviewCard(props: { src: mastodon.v1.PreviewCard }) {
|
export function TootPreviewCard(props: {
|
||||||
|
src: mastodon.v1.PreviewCard;
|
||||||
|
alwaysCompact?: boolean;
|
||||||
|
}) {
|
||||||
let root: HTMLAnchorElement;
|
let root: HTMLAnchorElement;
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
|
if (props.alwaysCompact) {
|
||||||
|
root.classList.add(tootStyle.compact);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!props.src.width) return;
|
if (!props.src.width) return;
|
||||||
const width = root.getBoundingClientRect().width;
|
const width = root.getBoundingClientRect().width;
|
||||||
if (width > props.src.width) {
|
if (width > props.src.width) {
|
||||||
|
|
|
@ -147,6 +147,7 @@
|
||||||
grid-template-columns: minmax(10%, 30%) 1fr;
|
grid-template-columns: minmax(10%, 30%) 1fr;
|
||||||
padding-left: 16px;
|
padding-left: 16px;
|
||||||
padding-right: 16px;
|
padding-right: 16px;
|
||||||
|
padding-top: 8px;
|
||||||
|
|
||||||
>img:first-child {
|
>img:first-child {
|
||||||
grid-row: 1 / 3;
|
grid-row: 1 / 3;
|
||||||
|
|
Loading…
Reference in a new issue