MediaAttachmentGrid: fix the container not removed

This commit is contained in:
thislight 2024-09-14 20:43:44 +08:00
parent d1cf97fe74
commit 972b2eca8b

View file

@ -1,5 +1,11 @@
import type { mastodon } from "masto";
import { type Component, For, createSignal, onMount } from "solid-js";
import {
type Component,
For,
createSignal,
onCleanup,
onMount,
} from "solid-js";
import { css } from "solid-styled";
import tootStyle from "./toot.module.css";
import MediaViewer from "./MediaViewer";
@ -27,7 +33,15 @@ const MediaAttachmentGrid: Component<{
const container = document.createElement("div");
container.setAttribute("role", "presentation");
document.body.appendChild(container);
let dispose: () => void
let dispose: () => void;
const removeContainer = () => {
setViewerIndex(undefined);
document.body.removeChild(container);
dispose();
};
dispose = render(() => {
return (
<MediaViewer
@ -35,11 +49,7 @@ const MediaAttachmentGrid: Component<{
index={viewerIndex() || 0}
onIndexUpdated={setViewerIndex}
media={props.attachments}
onClose={() => {
setViewerIndex(undefined);
dispose();
document.body.removeChild(container)
}}
onClose={removeContainer}
/>
);
}, container);