import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useSetRating } from '/@/renderer/features/shared/hooks/use-set-rating'; import { useCurrentServer, useCurrentServerId, useShowRatings } from '/@/renderer/store'; import { ContextMenu } from '/@/shared/components/context-menu/context-menu'; import { Rating } from '/@/shared/components/rating/rating'; import { LibraryItem } from '/@/shared/types/domain-types'; import { ServerType } from '/@/shared/types/types'; interface SetRatingActionProps { ids: string[]; itemType: LibraryItem; } export const SetRatingAction = ({ ids, itemType }: SetRatingActionProps) => { const { t } = useTranslation(); const server = useCurrentServer(); const serverId = useCurrentServerId(); const showRatings = useShowRatings(); const setRating = useSetRating(); const isRatingSupported = useMemo(() => { return server?.type === ServerType.NAVIDROME || server?.type === ServerType.SUBSONIC; }, [server?.type]); const onRating = (rating: number) => { setRating(serverId, ids, itemType, rating); }; if (!showRatings || !isRatingSupported) { return null; } return ( e.preventDefault()} rightIcon="arrowRightS" > {t('action.setRating', { postProcess: 'sentenceCase' })} onRating(0)}> onRating(1)}> onRating(2)}> onRating(3)}> onRating(4)}> onRating(5)}> ); };