/*
	GoToSocial
	Copyright (C) GoToSocial Authors admin@gotosocial.org
	SPDX-License-Identifier: AGPL-3.0-or-later
	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU Affero General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU Affero General Public License for more details.
	You should have received a copy of the GNU Affero General Public License
	along with this program.  If not, see .
*/
import React from "react";
import { useVerifyCredentialsQuery } from "../lib/query/oauth";
import { MediaAttachment, Status as StatusType } from "../lib/types/status";
import sanitize from "sanitize-html";
export function FakeStatus({ children }) {
	const { data: account = {
		avatar: "/assets/default_avatars/GoToSocial_icon1.webp",
		display_name: "",
		username: ""
	} } = useVerifyCredentialsQuery();
	return (
		
			
			
		
	);
}
export function Status({ status }: { status: StatusType }) {
	return (
		
			
			
			
			
				Open this status (opens in new tab)
			
		
	);
}
function StatusHeader({ status }: { status: StatusType }) {
	const author = status.account;
	
	return (
		
	);
}
function StatusBody({ status }: { status: StatusType }) {
	let content: string;
	if (status.content.length === 0) {
		content = "[no content set]";
	} else {
		// HTML has already been through
		// the instance sanitizer by now,
		// but do it again just in case.
		content = sanitize(status.content);
	}
	return (
		
			
				
					
						{ status.spoiler_text
							? status.spoiler_text + " "
							: "[no content warning set] "
						}
					
					
						Toggle content visibility
					
				
				
			 
			
		 
	);
}
function StatusMedia({ status }: { status: StatusType }) {
	if (status.media_attachments.length === 0) {
		return null;
	}
	const count = status.media_attachments.length;
	const aria_label = count === 1 ? "1 attachment" : `${count} attachments`;
	const oddOrEven = count % 2 === 0 ? "even" : "odd";
	const single = count === 1 ? " single" : "";
	return (
		
			{ status.media_attachments.map((media) => {
				return (
					
				);
			})}
		
	);
}
function StatusMediaEntry({ media }: { media: MediaAttachment }) {
	return (
		
			
				
					Show media
					
						
						
					
					 
				
				
					 
				
			 
		 
	);
}
function StatusFooter({ status }: { status: StatusType }) {
	return (
		
	);
}