diff --git a/renderer/components/timelines/status/Actions.tsx b/renderer/components/timelines/status/Actions.tsx index e02f16eace..58bf0274a8 100644 --- a/renderer/components/timelines/status/Actions.tsx +++ b/renderer/components/timelines/status/Actions.tsx @@ -1,15 +1,71 @@ +import { Entity, MegalodonInterface } from 'megalodon' import { FaBookmark, FaEllipsis, FaReply, FaRetweet, FaStar } from 'react-icons/fa6' -type Props = {} +type Props = { + status: Entity.Status + client: MegalodonInterface + onRefresh: () => void +} export default function Actions(props: Props) { + const reblog = async () => { + if (props.status.reblogged) { + await props.client.unreblogStatus(props.status.id) + } else { + await props.client.reblogStatus(props.status.id) + } + props.onRefresh() + } + + const favourite = async () => { + if (props.status.favourited) { + await props.client.unfavouriteStatus(props.status.id) + } else { + await props.client.favouriteStatus(props.status.id) + } + props.onRefresh() + } + + const bookmark = async () => { + if (props.status.bookmarked) { + await props.client.unbookmarkStatus(props.status.id) + } else { + await props.client.bookmarkStatus(props.status.id) + } + props.onRefresh() + } + return (