import { useEntitySetContext } from "components/EntitySetProvider";
import { useEffect } from "react";
import { useEntity } from "src/replicache";
import { useUIState } from "src/useUIState";
import { BlockProps, BlockLayout } from "../Block";
import { elementId } from "src/utils/elementId";
import { focusBlock } from "src/utils/focusBlock";
import { AppBskyFeedDefs } from "@atproto/api";
import { PostNotAvailable } from "./BlueskyEmbed";
import { BlueskyPostEmpty } from "./BlueskyEmpty";
import { BskyPostContent } from "app/lish/[did]/[publication]/[rkey]/BskyPostContent";
import { PostView } from "@atproto/api/dist/client/types/app/bsky/feed/defs";
export const BlueskyPostBlock = (props: BlockProps & { preview?: boolean }) => {
let { permissions } = useEntitySetContext();
let isSelected = useUIState((s) =>
s.selectedBlocks.find((b) => b.value === props.entityID),
);
let post = useEntity(props.entityID, "block/bluesky-post")?.data.value;
let clientHost = useEntity(props.entityID, "bluesky-post/host")?.data.value;
useEffect(() => {
if (props.preview) return;
let input = document.getElementById(elementId.block(props.entityID).input);
if (isSelected) {
input?.focus();
} else input?.blur();
}, [isSelected, props.entityID, props.preview]);
switch (true) {
case !post:
if (!permissions.write) return null;
return (
);
case AppBskyFeedDefs.isBlockedPost(post) ||
AppBskyFeedDefs.isBlockedAuthor(post) ||
AppBskyFeedDefs.isNotFoundPost(post):
return (
);
case AppBskyFeedDefs.isThreadViewPost(post):
let postView = post.post as PostView;
return (
);
}
};