import React, { useContext, useState } from 'react'; import type { MediaRequest } from '../../../server/entity/MediaRequest'; import type { TvDetails } from '../../../server/models/Tv'; import type { MovieDetails } from '../../../server/models/Movie'; import useSWR from 'swr'; import { LanguageContext } from '../../context/LanguageContext'; import { MediaStatus, MediaRequestStatus, } from '../../../server/constants/media'; import Badge from '../Common/Badge'; import { useUser, Permission } from '../../hooks/useUser'; import axios from 'axios'; import Button from '../Common/Button'; import { withProperties } from '../../utils/typeHelpers'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; import globalMessages from '../../i18n/globalMessages'; const messages = defineMessages({ requestedby: 'Requested by {username}', seasons: 'Seasons', }); const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { return (movie as MovieDetails).title !== undefined; }; const RequestCardPlaceholder: React.FC = () => { return (