diff --git a/src/components/MetaPreview/MetaPreview.js b/src/components/MetaPreview/MetaPreview.js index 589150d82..3ac5abd03 100644 --- a/src/components/MetaPreview/MetaPreview.js +++ b/src/components/MetaPreview/MetaPreview.js @@ -17,7 +17,7 @@ const ActionButton = require('./ActionButton'); const MetaLinks = require('./MetaLinks'); const MetaPreviewPlaceholder = require('./MetaPreviewPlaceholder'); const styles = require('./styles'); -const { default: useRating } = require('./useRating'); +const { Ratings } = require('./Ratings'); const ALLOWED_LINK_REDIRECTS = [ routesRegexp.search.regexp, @@ -27,7 +27,6 @@ const ALLOWED_LINK_REDIRECTS = [ const MetaPreview = React.forwardRef(({ className, compact, name, logo, background, runtime, releaseInfo, released, description, deepLinks, links, trailerStreams, inLibrary, toggleInLibrary, metaId, like }, ref) => { const { t } = useTranslation(); - const { onLiked, onLoved, liked, loved } = useRating(metaId, like); const [shareModalOpen, openShareModal, closeShareModal] = useBinaryState(false); const linksGroups = React.useMemo(() => { return Array.isArray(links) ? @@ -262,30 +261,10 @@ const MetaPreview = React.forwardRef(({ className, compact, name, logo, backgrou } { !compact ? - - : - null - } - { - !compact ? - : null diff --git a/src/components/MetaPreview/Ratings/Ratings.less b/src/components/MetaPreview/Ratings/Ratings.less new file mode 100644 index 000000000..096cd1957 --- /dev/null +++ b/src/components/MetaPreview/Ratings/Ratings.less @@ -0,0 +1,42 @@ +// Copyright (C) 2017-2025 Smart code 203358507 + +@height: 4rem; +@width: 4rem; + +.ratings-container { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + background-color: var(--overlay-color); + border-radius: 2rem; + height: @height; + width: fit-content; + + .icon-container { + display: flex; + justify-content: center; + align-items: center; + height: @height; + width: @width; + padding: 0 1rem; + cursor: pointer; + + .icon { + width: calc(@width / 2); + height: calc(@height / 2); + color: var(--primary-foreground-color); + opacity: 0.7; + transition: 0.3s all ease-in-out; + + &:hover { + opacity: 1; + } + + &.active { + opacity: 0.9; + fill: var(--primary-foreground-color); + } + } + } +} \ No newline at end of file diff --git a/src/components/MetaPreview/Ratings/Ratings.tsx b/src/components/MetaPreview/Ratings/Ratings.tsx new file mode 100644 index 000000000..95a4c26c1 --- /dev/null +++ b/src/components/MetaPreview/Ratings/Ratings.tsx @@ -0,0 +1,35 @@ +// Copyright (C) 2017-2025 Smart code 203358507 + +import React from 'react'; +import useRating from './useRating'; +import styles from './Ratings.less'; +import Icon from '@stremio/stremio-icons/react'; +import classNames from 'classnames'; + +type Like = { + content: 'liked' | 'loved'; + type: 'Ready' | 'Loading' | 'Error'; +}; + +type Props = { + metaId?: string; + like?: Like; + className?: string; +}; + +const Ratings = ({ metaId, like, className }: Props) => { + const { onLiked, onLoved, liked, loved } = useRating(metaId, like); + + return ( +
+
+ +
+
+ +
+
+ ); +}; + +export default Ratings; diff --git a/src/components/MetaPreview/Ratings/index.ts b/src/components/MetaPreview/Ratings/index.ts new file mode 100644 index 000000000..0a00e9c2f --- /dev/null +++ b/src/components/MetaPreview/Ratings/index.ts @@ -0,0 +1,5 @@ +// Copyright (C) 2017-2025 Smart code 203358507 + +import Ratings from './Ratings'; + +export { Ratings }; diff --git a/src/components/MetaPreview/useRating.ts b/src/components/MetaPreview/Ratings/useRating.ts similarity index 95% rename from src/components/MetaPreview/useRating.ts rename to src/components/MetaPreview/Ratings/useRating.ts index 726b5e334..c15f6605e 100644 --- a/src/components/MetaPreview/useRating.ts +++ b/src/components/MetaPreview/Ratings/useRating.ts @@ -1,3 +1,5 @@ +// Copyright (C) 2017-2025 Smart code 203358507 + import { useMemo, useCallback } from 'react'; import { useServices } from 'stremio/services'; diff --git a/src/components/MetaPreview/styles.less b/src/components/MetaPreview/styles.less index 1e9442087..4c04cce79 100644 --- a/src/components/MetaPreview/styles.less +++ b/src/components/MetaPreview/styles.less @@ -207,18 +207,13 @@ outline: none; } } - - &.rating-button { - &.active { - background-color: var(--primary-accent-color); - - .icon { - color: var(--primary-foreground-color); - } - } - } } } + + .ratings { + margin-bottom: 1rem; + margin-right: 1rem; + } } .share-prompt {