From 794e442d8b45f3c2bca710d4d60a1a4730d64810 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Tue, 9 Sep 2025 20:26:05 +0200 Subject: [PATCH] Profile Info: Support rating (#6140) Co-authored-by: zubiden <19638254+zubiden@users.noreply.github.com> --- src/api/gramjs/apiBuilders/users.ts | 14 + src/api/types/stars.ts | 7 + src/api/types/users.ts | 5 +- src/assets/font-icons/rating-icons/level1.svg | 1 + .../font-icons/rating-icons/level10.svg | 1 + src/assets/font-icons/rating-icons/level2.svg | 1 + .../font-icons/rating-icons/level20.svg | 1 + src/assets/font-icons/rating-icons/level3.svg | 1 + .../font-icons/rating-icons/level30.svg | 1 + src/assets/font-icons/rating-icons/level4.svg | 1 + .../font-icons/rating-icons/level40.svg | 1 + src/assets/font-icons/rating-icons/level5.svg | 1 + .../font-icons/rating-icons/level50.svg | 1 + src/assets/font-icons/rating-icons/level6.svg | 1 + .../font-icons/rating-icons/level60.svg | 1 + src/assets/font-icons/rating-icons/level7.svg | 1 + .../font-icons/rating-icons/level70.svg | 1 + src/assets/font-icons/rating-icons/level8.svg | 1 + .../font-icons/rating-icons/level80.svg | 1 + src/assets/font-icons/rating-icons/level9.svg | 1 + .../font-icons/rating-icons/level90.svg | 1 + .../font-icons/rating-icons/negative.svg | 1 + src/assets/font-icons/refund.svg | 1 + src/assets/font-icons/understood.svg | 1 + src/assets/font-icons/user-stars.svg | 1 + src/assets/font-icons/warning.svg | 1 + src/assets/localization/fallback.strings | 19 ++ src/bundles/extra.ts | 1 + .../common/PremiumProgress.module.scss | 164 +++++++++- src/components/common/PremiumProgress.tsx | 303 +++++++++++++++--- src/components/common/ProfileInfo.module.scss | 57 +++- src/components/common/ProfileInfo.tsx | 56 +++- src/components/modals/ModalContainer.tsx | 5 +- .../ProfileRatingModal.async.tsx | 16 + .../ProfileRatingModal.module.scss | 91 ++++++ .../profileRating/ProfileRatingModal.tsx | 260 +++++++++++++++ src/global/actions/ui/users.ts | 13 + src/global/types/actions.ts | 5 + src/global/types/tabState.ts | 5 + src/styles/icons.scss | 282 ++++++++++------ src/styles/icons.woff | Bin 34400 -> 36404 bytes src/styles/icons.woff2 | Bin 28664 -> 30344 bytes src/types/icons/font.ts | 23 ++ src/types/language.d.ts | 29 ++ 44 files changed, 1226 insertions(+), 152 deletions(-) create mode 100644 src/assets/font-icons/rating-icons/level1.svg create mode 100644 src/assets/font-icons/rating-icons/level10.svg create mode 100644 src/assets/font-icons/rating-icons/level2.svg create mode 100644 src/assets/font-icons/rating-icons/level20.svg create mode 100644 src/assets/font-icons/rating-icons/level3.svg create mode 100644 src/assets/font-icons/rating-icons/level30.svg create mode 100644 src/assets/font-icons/rating-icons/level4.svg create mode 100644 src/assets/font-icons/rating-icons/level40.svg create mode 100644 src/assets/font-icons/rating-icons/level5.svg create mode 100644 src/assets/font-icons/rating-icons/level50.svg create mode 100644 src/assets/font-icons/rating-icons/level6.svg create mode 100644 src/assets/font-icons/rating-icons/level60.svg create mode 100644 src/assets/font-icons/rating-icons/level7.svg create mode 100644 src/assets/font-icons/rating-icons/level70.svg create mode 100644 src/assets/font-icons/rating-icons/level8.svg create mode 100644 src/assets/font-icons/rating-icons/level80.svg create mode 100644 src/assets/font-icons/rating-icons/level9.svg create mode 100644 src/assets/font-icons/rating-icons/level90.svg create mode 100644 src/assets/font-icons/rating-icons/negative.svg create mode 100644 src/assets/font-icons/refund.svg create mode 100644 src/assets/font-icons/understood.svg create mode 100644 src/assets/font-icons/user-stars.svg create mode 100644 src/assets/font-icons/warning.svg create mode 100644 src/components/modals/profileRating/ProfileRatingModal.async.tsx create mode 100644 src/components/modals/profileRating/ProfileRatingModal.module.scss create mode 100644 src/components/modals/profileRating/ProfileRatingModal.tsx diff --git a/src/api/gramjs/apiBuilders/users.ts b/src/api/gramjs/apiBuilders/users.ts index 32d30f738..375b59493 100644 --- a/src/api/gramjs/apiBuilders/users.ts +++ b/src/api/gramjs/apiBuilders/users.ts @@ -3,6 +3,7 @@ import { Api as GramJs } from '../../../lib/gramjs'; import type { ApiBirthday, ApiPeerSettings, + ApiStarsRating, ApiUser, ApiUserFullInfo, ApiUserStatus, @@ -27,6 +28,7 @@ export function buildApiUserFullInfo(mtpUserFull: GramJs.users.UserFull): ApiUse contactRequirePremium, businessWorkHours, businessLocation, businessIntro, birthday, personalChannelId, personalChannelMessage, sponsoredEnabled, stargiftsCount, botVerification, botCanManageEmojiStatus, settings, sendPaidMessagesStars, displayGiftsButton, disallowedGifts, + starsRating, starsMyPendingRating, starsMyPendingRatingDate, }, users, } = mtpUserFull; @@ -57,6 +59,9 @@ export function buildApiUserFullInfo(mtpUserFull: GramJs.users.UserFull): ApiUse botVerification: botVerification && buildApiBotVerification(botVerification), areAdsEnabled: sponsoredEnabled, starGiftCount: stargiftsCount, + starsRating: starsRating && buildApiStarsRating(starsRating), + starsMyPendingRating: starsMyPendingRating && buildApiStarsRating(starsMyPendingRating), + starsMyPendingRatingDate, isBotCanManageEmojiStatus: botCanManageEmojiStatus, hasScheduledMessages: hasScheduled, paidMessagesStars: sendPaidMessagesStars?.toJSNumber(), @@ -182,3 +187,12 @@ export function buildApiUserStatuses(mtpUsers: GramJs.TypeUser[]) { export function buildApiBirthday(birthday: GramJs.TypeBirthday): ApiBirthday { return omitVirtualClassFields(birthday); } + +export function buildApiStarsRating(starsRating: GramJs.StarsRating): ApiStarsRating { + return { + level: starsRating.level, + currentLevelStars: starsRating.currentLevelStars.toJSNumber(), + stars: starsRating.stars.toJSNumber(), + nextLevelStars: starsRating.nextLevelStars?.toJSNumber(), + }; +} diff --git a/src/api/types/stars.ts b/src/api/types/stars.ts index 07299692a..c7ceb13e1 100644 --- a/src/api/types/stars.ts +++ b/src/api/types/stars.ts @@ -281,3 +281,10 @@ export interface ApiDisallowedGiftsSettings { shouldDisallowUniqueStarGifts?: true; shouldDisallowPremiumGifts?: true; } + +export interface ApiStarsRating { + level: number; + currentLevelStars: number; + stars: number; + nextLevelStars?: number; +} diff --git a/src/api/types/users.ts b/src/api/types/users.ts index 4605adc5e..5e2092421 100644 --- a/src/api/types/users.ts +++ b/src/api/types/users.ts @@ -4,7 +4,7 @@ import type { ApiBusinessIntro, ApiBusinessLocation, ApiBusinessWorkHours } from import type { ApiPeerColor, ApiPeerSettings } from './chats'; import type { ApiDocument, ApiPhoto } from './messages'; import type { ApiBotVerification } from './misc'; -import type { ApiSavedStarGift } from './stars'; +import type { ApiSavedStarGift, ApiStarsRating } from './stars'; export interface ApiUser { id: string; @@ -65,6 +65,9 @@ export interface ApiUserFullInfo { businessWorkHours?: ApiBusinessWorkHours; businessIntro?: ApiBusinessIntro; starGiftCount?: number; + starsRating?: ApiStarsRating; + starsMyPendingRating?: ApiStarsRating; + starsMyPendingRatingDate?: number; isBotCanManageEmojiStatus?: boolean; isBotAccessEmojiGranted?: boolean; hasScheduledMessages?: boolean; diff --git a/src/assets/font-icons/rating-icons/level1.svg b/src/assets/font-icons/rating-icons/level1.svg new file mode 100644 index 000000000..85a8470eb --- /dev/null +++ b/src/assets/font-icons/rating-icons/level1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level10.svg b/src/assets/font-icons/rating-icons/level10.svg new file mode 100644 index 000000000..dceed1a9d --- /dev/null +++ b/src/assets/font-icons/rating-icons/level10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level2.svg b/src/assets/font-icons/rating-icons/level2.svg new file mode 100644 index 000000000..0c541d181 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level20.svg b/src/assets/font-icons/rating-icons/level20.svg new file mode 100644 index 000000000..879e2bbb5 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level20.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level3.svg b/src/assets/font-icons/rating-icons/level3.svg new file mode 100644 index 000000000..b958afe13 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level30.svg b/src/assets/font-icons/rating-icons/level30.svg new file mode 100644 index 000000000..d2df9be81 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level30.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level4.svg b/src/assets/font-icons/rating-icons/level4.svg new file mode 100644 index 000000000..321951d31 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level40.svg b/src/assets/font-icons/rating-icons/level40.svg new file mode 100644 index 000000000..7822cefd5 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level40.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level5.svg b/src/assets/font-icons/rating-icons/level5.svg new file mode 100644 index 000000000..0d5ca78c2 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level50.svg b/src/assets/font-icons/rating-icons/level50.svg new file mode 100644 index 000000000..e3465be14 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level50.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level6.svg b/src/assets/font-icons/rating-icons/level6.svg new file mode 100644 index 000000000..dd093bacb --- /dev/null +++ b/src/assets/font-icons/rating-icons/level6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level60.svg b/src/assets/font-icons/rating-icons/level60.svg new file mode 100644 index 000000000..f7b4edcd1 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level60.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level7.svg b/src/assets/font-icons/rating-icons/level7.svg new file mode 100644 index 000000000..f841c774a --- /dev/null +++ b/src/assets/font-icons/rating-icons/level7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level70.svg b/src/assets/font-icons/rating-icons/level70.svg new file mode 100644 index 000000000..0f4093341 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level70.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level8.svg b/src/assets/font-icons/rating-icons/level8.svg new file mode 100644 index 000000000..cdb36e980 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level80.svg b/src/assets/font-icons/rating-icons/level80.svg new file mode 100644 index 000000000..cb688b638 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level80.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level9.svg b/src/assets/font-icons/rating-icons/level9.svg new file mode 100644 index 000000000..c2be303a3 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/level90.svg b/src/assets/font-icons/rating-icons/level90.svg new file mode 100644 index 000000000..dcb7afb72 --- /dev/null +++ b/src/assets/font-icons/rating-icons/level90.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/rating-icons/negative.svg b/src/assets/font-icons/rating-icons/negative.svg new file mode 100644 index 000000000..9ee1b764e --- /dev/null +++ b/src/assets/font-icons/rating-icons/negative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/refund.svg b/src/assets/font-icons/refund.svg new file mode 100644 index 000000000..5caf76f2a --- /dev/null +++ b/src/assets/font-icons/refund.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/understood.svg b/src/assets/font-icons/understood.svg new file mode 100644 index 000000000..4b30bc3ab --- /dev/null +++ b/src/assets/font-icons/understood.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/user-stars.svg b/src/assets/font-icons/user-stars.svg new file mode 100644 index 000000000..0954f398d --- /dev/null +++ b/src/assets/font-icons/user-stars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/font-icons/warning.svg b/src/assets/font-icons/warning.svg new file mode 100644 index 000000000..aff72046a --- /dev/null +++ b/src/assets/font-icons/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/localization/fallback.strings b/src/assets/localization/fallback.strings index f054cee41..d30141abb 100644 --- a/src/assets/localization/fallback.strings +++ b/src/assets/localization/fallback.strings @@ -2200,3 +2200,22 @@ "PublicPostsSubscribeToPremium" = "Subscribe to Premium"; "NotificationPaidExtraSearch" = "{stars} spent on extra search."; "PostsSearchTransaction" = "Posts Search"; +"TitleRating" = "Rating"; +"RatingReflectsActivity" = "This rating reflects {name}'s activity on Telegram. It is based on:"; +"RatingYourReflectsActivity" = "This rating reflects your activity on Telegram. It is based on:"; +"RatingGiftsFromTelegram" = "Gifts from Telegram"; +"RatingGiftsFromTelegramDesc" = "100% of the Stars spent on gifts purchased from Telegram."; +"RatingGiftsAndPostsFromUsers" = "Gifts and Posts from Users"; +"RatingGiftsAndPostsFromUsersDesc" = "20% of the Stars spent on gifts or posts from users and channels."; +"RatingRefundsAndConversions" = "Refunds and Conversions"; +"RatingRefundsAndConversionsDesc" = "10x of refunded Stars and 85% of bought gifts converted to Stars."; +"RatingBadgeAdded" = "Added"; +"RatingBadgeDeducted" = "Deducted"; +"RatingLevel" = "Level {level}"; +"RatingNegativeLevel" = "Negative Rating"; +"DescriptionPendingRating_one" = "Rating updates in {time} from purchases. {points} point is pending. {link}"; +"DescriptionPendingRating_other" = "Rating updates in {time} from purchases. {points} points are pending. {link}"; +"DescriptionFutureRating_one" = "This will be your rating in {time}, after {points} point is added. {link}"; +"DescriptionFutureRating_other" = "This will be your rating in {time}, after {points} points are added. {link}"; +"LinkDescriptionRatingBack" = "Back >"; +"LinkDescriptionRatingPreview" = "Preview >"; \ No newline at end of file diff --git a/src/bundles/extra.ts b/src/bundles/extra.ts index 238b82768..098f4dfe7 100644 --- a/src/bundles/extra.ts +++ b/src/bundles/extra.ts @@ -103,3 +103,4 @@ export { default as InviteViaLinkModal } from '../components/modals/inviteViaLin export { default as OneTimeMediaModal } from '../components/modals/oneTimeMedia/OneTimeMediaModal'; export { default as WebAppsCloseConfirmationModal } from '../components/main/WebAppsCloseConfirmationModal'; export { default as FrozenAccountModal } from '../components/modals/frozenAccount/FrozenAccountModal'; +export { default as ProfileRatingModal } from '../components/modals/profileRating/ProfileRatingModal'; diff --git a/src/components/common/PremiumProgress.module.scss b/src/components/common/PremiumProgress.module.scss index 2babeac81..9db1c5b58 100644 --- a/src/components/common/PremiumProgress.module.scss +++ b/src/components/common/PremiumProgress.module.scss @@ -1,5 +1,8 @@ +/* stylelint-disable plugin/no-low-performance-animation-properties */ + .root { --percent: calc(var(--progress, 0.5) * 100%); + --color-negative-progress: #E05356; position: relative; @@ -73,21 +76,44 @@ align-items: center; justify-content: center; + height: 2rem; padding: 0.25rem 0.75rem; border-radius: 1rem; color: #ffffff; background-color: #7E85FF; + + transition: width 0.25s ease-in-out; + + &.noTransition { + transition: none; + } +} + +.floatingBadgeContent { + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + + width: fit-content; + max-width: 20rem; + margin-inline: auto; + + text-overflow: ellipsis; + white-space: nowrap; } .floating-badge-triangle { position: absolute; bottom: -4px; - left: calc(var(--tail-position, 0.5) * 100%); - transform: translateX(-50%); display: inline-block; + + color: #7E85FF; + + transition: left 0.3s ease; } .floating-badge-icon { @@ -109,6 +135,10 @@ align-items: center; font-weight: var(--font-weight-medium); + + opacity: 1; + + transition: opacity 0.15s ease; } .left { @@ -119,8 +149,21 @@ right: 0.75rem; } -.progress { - --multiplier: calc(1 / var(--progress) - 1); +.progressWrapper { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + + overflow: hidden; + + border-radius: 0.625rem; +} + +.positiveLayer, +.positiveProgress { + --multiplier: calc(1 / var(--positive-progress) - 1); position: absolute; top: 0; @@ -129,16 +172,18 @@ overflow: hidden; - width: max(var(--percent), 0.625rem); - border-top-left-radius: 0.625rem; - border-bottom-left-radius: 0.625rem; + width: calc(var(--positive-progress) * 100%); background-image: var(--premium-gradient); - background-size: calc(1 / var(--progress) * 100%) 100%; + background-size: calc(1 / var(--positive-progress) * 100%) 100%; + + transition: opacity 0.15s ease, width 0.2s, background-size 0.3s ease; .left, .right { color: white; white-space: nowrap; + opacity: 1; + transition: opacity 0.15s ease; } .right { @@ -146,12 +191,44 @@ } } -.fullProgress { - border-radius: 0.625rem; +.negativeLayer, +.negativeProgress { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: auto; + + overflow: hidden; + + width: calc(var(--negative-progress) * 100%); + + background-color: var(--color-negative-progress); + background-image: none; + + transition: opacity 0.15s, width 0.2s; + + .left, .right { + color: white; + white-space: nowrap; + opacity: 1; + transition: opacity 0.15s ease; + } + + .right { + right: 0.75rem; + } + + .left { + right: calc(100% - 0.75rem); + left: auto; + transition: right 0.3s ease; + } } .primary { - .progress { + .positiveLayer, + .positiveProgress { background-color: var(--color-primary); background-image: none; } @@ -159,4 +236,69 @@ .floating-badge { background-color: var(--color-primary); } + + .floating-badge-triangle { + color: var(--color-primary); + } +} + +.negative { + .floating-badge { + background-color: var(--color-negative-progress); + } + + .floating-badge-triangle { + color: var(--color-negative-progress); + } +} + +.transitioning { + .left, + .right { + opacity: 0; + } +} + +.noTransition { + &.positiveProgress, + &.negativeProgress { + transition: opacity 0.15s !important; + } +} + +.hidden { + opacity: 0 !important; +} + +.cycling { + .badgeContainer { + transition-duration: var(--cycling-animation-badge-position); + } + + .positiveProgress, + .negativeProgress { + transition: opacity 0.15s, width var(--cycling-animation-progress), background-size 0.3s; + } +} + +.positiveLayer { + --positive-progress: var(--layer-progress); + + z-index: 2; + opacity: 0; + + &.show { + opacity: 1; + } +} + +.negativeLayer { + --negative-progress: var(--layer-progress); + + z-index: 2; + opacity: 0; + + &.show { + opacity: 1; + } } diff --git a/src/components/common/PremiumProgress.tsx b/src/components/common/PremiumProgress.tsx index f2a899768..b44812d8e 100644 --- a/src/components/common/PremiumProgress.tsx +++ b/src/components/common/PremiumProgress.tsx @@ -7,14 +7,22 @@ import type { IconName } from '../../types/icons'; import buildClassName from '../../util/buildClassName'; import buildStyle from '../../util/buildStyle'; +import { REM } from './helpers/mediaDimensions'; +import { useTransitionActiveKey } from '../../hooks/animations/useTransitionActiveKey'; +import useForceUpdate from '../../hooks/useForceUpdate'; import useOldLang from '../../hooks/useOldLang'; +import usePrevious from '../../hooks/usePrevious'; import useResizeObserver from '../../hooks/useResizeObserver'; +import useSyncEffect from '../../hooks/useSyncEffect'; +import Transition from '../ui/Transition'; import Icon from './icons/Icon'; import styles from './PremiumProgress.module.scss'; +export type AnimationDirection = 'forward' | 'backward' | 'none'; + type OwnProps = { leftText?: string; rightText?: string; @@ -22,6 +30,8 @@ type OwnProps = { floatingBadgeText?: string; progress?: number; isPrimary?: boolean; + isNegative?: boolean; + animationDirection?: AnimationDirection; className?: string; }; @@ -30,47 +40,216 @@ const PremiumProgress: FC = ({ rightText, floatingBadgeText, floatingBadgeIcon, - progress, + progress = 0, isPrimary, + isNegative, + animationDirection = 'none', className, }) => { const lang = useOldLang(); - const floatingBadgeRef = useRef(); + const floatingBadgeContentRef = useRef(); const parentContainerRef = useRef(); const [shiftX, setShiftX] = useState(0); - const [tailPosition, setTailPosition] = useState(0); + const [beakPosition, setBeakPosition] = useState(0); + const [badgeWidth, setBadgeWidth] = useState(0); + const prevBadgeWidth = usePrevious(badgeWidth); + const [positiveProgress, setPositiveProgress] = useState(isNegative ? 0 : progress); + const [negativeProgress, setNegativeProgress] = useState(isNegative ? progress : 0); + const [badgeProgress, setBadgeProgress] = useState(progress); + + const [layerProgress, setLayerProgress] = useState(0); + const [showLayer, setShowLayer] = useState(false); + const [disableMainProgressTransition, setDisableMainProgressTransition] = useState(false); + const [disableLayerProgressTransition, setDisableLayerProgressTransition] = useState(false); + const [hideMainLayer, setHideMainLayer] = useState(false); + const [isCycling, setIsCycling] = useState(false); + + const badgeActiveKey = useTransitionActiveKey([floatingBadgeText, floatingBadgeIcon]); + + const shouldAnimateCaptionsRef = useRef(false); + const prevLeftText = usePrevious(leftText); + const prevRightText = usePrevious(rightText); + const prevIsNegative = usePrevious(isNegative); + + const BEAK_WIDTH_PX = 28; + const PROGRESS_BORDER_RADIUS_PX = REM; + const CORNER_BEAK_THRESHOLD = BEAK_WIDTH_PX / 2 + PROGRESS_BORDER_RADIUS_PX; + const BADGE_HORIZONTAL_PADDING_PX = 0.75 * 2 * REM; + + const LAYER_PROGRESS_TRANSITION_MS = 400; + const FULL_CYCLE_TRANSITION_MS = LAYER_PROGRESS_TRANSITION_MS * 2; + const APPLY_TRANSITION_DELAY_MS = 50; const updateBadgePosition = () => { - if (floatingBadgeRef.current && parentContainerRef.current && progress !== undefined) { - const badgeWidth = floatingBadgeRef.current.offsetWidth; + if (floatingBadgeContentRef.current && parentContainerRef.current) { const parentWidth = parentContainerRef.current.offsetWidth; - const minShift = badgeWidth / 2; - const maxShift = parentWidth - badgeWidth / 2; - const currentShift = progress * parentWidth; - const safeShift = Math.max(minShift, Math.min(currentShift, maxShift)); + const halfBadgeWidth = badgeWidth / 2; + const minBadgeShift = halfBadgeWidth; + const maxBadgeShift = parentWidth - halfBadgeWidth; + const halfBeakWidth = BEAK_WIDTH_PX / 2; + const currentShift = isNegative ? (1 - badgeProgress) * parentWidth : badgeProgress * parentWidth; + + let safeShift = Math.max(minBadgeShift, Math.min(currentShift, maxBadgeShift)); + if (currentShift < CORNER_BEAK_THRESHOLD) { + safeShift = currentShift + halfBadgeWidth; + } + if (currentShift > parentWidth - CORNER_BEAK_THRESHOLD) { + safeShift = currentShift - halfBadgeWidth; + } + + const beakOffsetFromCenter = currentShift - safeShift; + const newBeakPositionPx = halfBadgeWidth + beakOffsetFromCenter - halfBeakWidth; setShiftX(safeShift / parentWidth); - - let newTailPosition; - if (currentShift < minShift) { - newTailPosition = (progress * parentWidth) / (minShift * 2); - } else if (currentShift > maxShift) { - const progressMapped = (progress - (maxShift / parentWidth)) / (1 - maxShift / parentWidth); - newTailPosition = 0.5 + (progressMapped * 0.4); - } else { - newTailPosition = 0.5; - } - setTailPosition(newTailPosition); + setBeakPosition(newBeakPositionPx); } }; - useEffect(updateBadgePosition, [progress]); + useEffect(updateBadgePosition, [badgeProgress, badgeWidth, isNegative, CORNER_BEAK_THRESHOLD]); useResizeObserver(parentContainerRef, updateBadgePosition); + useEffect(() => { + const width = floatingBadgeContentRef?.current?.clientWidth || 0; + setBadgeWidth(width + BADGE_HORIZONTAL_PADDING_PX); + }, [floatingBadgeText, floatingBadgeIcon, BADGE_HORIZONTAL_PADDING_PX]); + + const forceUpdate = useForceUpdate(); + + useSyncEffect(() => { + let timeoutId: number | undefined; + + const isNegativeTransition = prevIsNegative !== undefined && prevIsNegative !== isNegative; + const shouldAnimateCaptions = (prevLeftText || prevRightText) && (isNegativeTransition || isCycling); + + if (shouldAnimateCaptions && !shouldAnimateCaptionsRef.current) { + shouldAnimateCaptionsRef.current = true; + + const timeoutMs = isCycling ? LAYER_PROGRESS_TRANSITION_MS * 2 : LAYER_PROGRESS_TRANSITION_MS; + timeoutId = window.setTimeout(() => { + shouldAnimateCaptionsRef.current = false; + forceUpdate(); + }, timeoutMs); + } + + return () => { + if (timeoutId) { + clearTimeout(timeoutId); + shouldAnimateCaptionsRef.current = false; + } + }; + }, [ + leftText, prevLeftText, rightText, prevRightText, + prevIsNegative, isNegative, animationDirection, isCycling, + ]); + + const shouldAnimateCaptions = shouldAnimateCaptionsRef.current; + + useEffect(() => { + if (isNegative) { + setPositiveProgress(0); + setNegativeProgress(progress); + } else { + setNegativeProgress(0); + setPositiveProgress(progress); + } + setBadgeProgress(progress); + }, [progress, isNegative]); + const hasFloatingBadge = Boolean(floatingBadgeIcon || floatingBadgeText); - const isProgressFull = Boolean(progress) && progress > 0.99; + + const displayLeftText = shouldAnimateCaptions ? prevLeftText : leftText; + const displayRightText = shouldAnimateCaptions ? prevRightText : rightText; + + const prevProgress = usePrevious(progress); + + useEffect(() => { + const timers: number[] = []; + + if (animationDirection === 'none' || prevProgress === undefined) { + return; + } + + const targetProgress = progress; + + const setMainProgress = (value: number) => { + if (isNegative) { + setNegativeProgress(value); + } else { + setPositiveProgress(value); + } + }; + + if (animationDirection === 'forward' || animationDirection === 'backward') { + const isForward = animationDirection === 'forward'; + + setIsCycling(true); + setMainProgress(isForward ? 1 : 0); + + setDisableLayerProgressTransition(true); + setLayerProgress(isForward ? 0 : 1); + + timers.push(window.setTimeout(() => { + setDisableLayerProgressTransition(false); + setShowLayer(true); + setLayerProgress(targetProgress); + if (isForward) { + setDisableMainProgressTransition(true); + setMainProgress(0); + } + }, LAYER_PROGRESS_TRANSITION_MS)); + + timers.push(window.setTimeout(() => { + setDisableMainProgressTransition(true); + setDisableLayerProgressTransition(true); + setHideMainLayer(false); + setMainProgress(targetProgress); + setShowLayer(false); + + timers.push(window.setTimeout(() => { + setDisableMainProgressTransition(false); + setDisableLayerProgressTransition(false); + setIsCycling(false); + }, APPLY_TRANSITION_DELAY_MS)); + }, FULL_CYCLE_TRANSITION_MS)); + } + + return () => { + timers.forEach(clearTimeout); + }; + }, [ + progress, animationDirection, isNegative, + prevProgress, FULL_CYCLE_TRANSITION_MS, + ]); + + const renderProgressLayer = ( + isPositive: boolean, + layerProgress: number, + layerClassName?: string, + disableTransition?: boolean, + ) => { + const className = isPositive ? styles.positiveProgress : styles.negativeProgress; + const progressVar = '--layer-progress'; + + return ( +
+
+ {displayLeftText} +
+
+ {displayRightText} +
+
+ ); + }; return (
= ({ styles.root, hasFloatingBadge && styles.withBadge, isPrimary && styles.primary, + isNegative && styles.negative, + shouldAnimateCaptions && styles.transitioning, + isCycling && styles.cycling, className, )} style={buildStyle( - progress !== undefined && `--progress: ${progress}`, - tailPosition !== undefined && `--tail-position: ${tailPosition}`, + `--positive-progress: ${positiveProgress}`, + `--negative-progress: ${negativeProgress}`, + `--layer-progress: ${layerProgress}`, `--shift-x: ${shiftX}`, + `--cycling-animation-badge-position: ${FULL_CYCLE_TRANSITION_MS}ms`, + `--cycling-animation-progress: ${LAYER_PROGRESS_TRANSITION_MS}ms`, )} > {hasFloatingBadge && (
-
- {floatingBadgeIcon && } - {floatingBadgeText && ( -
- {floatingBadgeText} +
+ +
+ {floatingBadgeIcon && } + {floatingBadgeText && ( +
+ {floatingBadgeText} +
+ )}
- )} +
-
+
- +
)}
- {leftText} + {displayLeftText}
- {rightText} + {displayRightText}
-
-
- {leftText} -
-
- {rightText} -
+ +
+ {renderProgressLayer( + true, + positiveProgress, + buildClassName(hideMainLayer && styles.hidden), + disableMainProgressTransition, + )} + + {renderProgressLayer( + false, + negativeProgress, + buildClassName(hideMainLayer && styles.hidden), + disableMainProgressTransition, + )} + + {renderProgressLayer( + !isNegative, + layerProgress, + buildClassName( + isNegative ? styles.negativeLayer : styles.positiveLayer, + showLayer && styles.show, + ), + disableLayerProgressTransition, + )}
); diff --git a/src/components/common/ProfileInfo.module.scss b/src/components/common/ProfileInfo.module.scss index e05271164..6a5be5096 100644 --- a/src/components/common/ProfileInfo.module.scss +++ b/src/components/common/ProfileInfo.module.scss @@ -191,11 +191,64 @@ font-size: 0.875rem; } -.user-status { +.userRatingNegativeWrapper, +.userRatingWrapper { + pointer-events: all; + cursor: pointer; + + position: relative; + z-index: 1; + + display: inline-flex; + align-items: center; + justify-content: center; + + margin-right: 0.25rem; + + font-size: 1rem; + color: #000000; +} + +.userRatingWrapper { + width: 1rem; + font-size: 1.5rem; +} + +.ratingNegativeIcon { + pointer-events: none; + font-size: 1rem; + color: var(--color-white); + + -webkit-text-stroke: 1px #000000; +} + +.ratingIcon { + pointer-events: none; + color: var(--color-white); + + -webkit-text-stroke: 1px #000000; +} + +.ratingLevel { + pointer-events: none; + + position: absolute; + z-index: 1; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + + font-size: 0.625rem; + font-weight: var(--font-weight-bold); + line-height: 1; + color: #000000; +} + +.userStatus { opacity: 0.5; } -.get-status { +.getStatus { --blured-background-color: #c4c9cc42; pointer-events: all; diff --git a/src/components/common/ProfileInfo.tsx b/src/components/common/ProfileInfo.tsx index e740047f0..7eccc6d7c 100644 --- a/src/components/common/ProfileInfo.tsx +++ b/src/components/common/ProfileInfo.tsx @@ -3,9 +3,10 @@ import { memo, useEffect, useState } from '../../lib/teact/teact'; import { getActions, withGlobal } from '../../global'; import type { - ApiChat, ApiPeerPhotos, ApiSticker, ApiTopic, ApiUser, ApiUserStatus, + ApiChat, ApiPeerPhotos, ApiSticker, ApiTopic, ApiUser, ApiUserFullInfo, ApiUserStatus, } from '../../api/types'; import type { AnimationLevel } from '../../types'; +import type { IconName } from '../../types/icons'; import { MediaViewerOrigin } from '../../types'; import { @@ -20,6 +21,7 @@ import { selectThreadMessagesCount, selectTopic, selectUser, + selectUserFullInfo, selectUserStatus, } from '../../global/selectors'; import { selectSharedSettings } from '../../global/selectors/sharedState.ts'; @@ -40,12 +42,15 @@ import usePhotosPreload from './hooks/usePhotosPreload'; import Transition from '../ui/Transition'; import Avatar from './Avatar'; import FullNameTitle from './FullNameTitle'; +import Icon from './icons/Icon'; import ProfilePhoto from './ProfilePhoto'; import TopicIcon from './TopicIcon'; import './ProfileInfo.scss'; import styles from './ProfileInfo.module.scss'; +const MAX_LEVEL_ICON = 90; + type OwnProps = { peerId: string; forceShowSelf?: boolean; @@ -56,6 +61,7 @@ type OwnProps = { type StateProps = { user?: ApiUser; + userFullInfo?: ApiUserFullInfo; userStatus?: ApiUserStatus; chat?: ApiChat; mediaIndex?: number; @@ -78,6 +84,7 @@ const ProfileInfo: FC = ({ forceShowSelf, canPlayVideo, user, + userFullInfo, userStatus, chat, mediaIndex, @@ -98,6 +105,7 @@ const ProfileInfo: FC = ({ openPrivacySettingsNoticeModal, loadMoreProfilePhotos, openUniqueGiftBySlug, + openProfileRatingModal, } = getActions(); const oldLang = useOldLang(); @@ -182,6 +190,12 @@ const ProfileInfo: FC = ({ openPrivacySettingsNoticeModal({ chatId: chat!.id, isReadDate: false }); }); + const handleRatingClick = useLastCallback((level: number) => { + if (user) { + openProfileRatingModal({ userId: user.id, level }); + } + }); + function handleSelectFallbackPhoto() { if (!isFirst) return; setHasSlideAnimation(true); @@ -268,6 +282,43 @@ const ProfileInfo: FC = ({ ); } + function renderUserRating() { + if (!userFullInfo?.starsRating) return undefined; + + const level = userFullInfo.starsRating.level; + const isNegative = level < 0; + + const onRatingClick = () => handleRatingClick(level); + + if (isNegative) { + return ( + + + ! + + ); + } + + const safeLevel = Math.max(level, 1); + const iconLevel = Math.min(safeLevel, MAX_LEVEL_ICON); + const iconName = (iconLevel < 10 + ? `rating-icons-level${iconLevel}` + : `rating-icons-level${Math.floor(iconLevel / 10) * 10}`) as IconName; + + return ( + + + {level} + + ); + } + function renderStatus() { const isAnonymousForwards = isAnonymousForwardsChat(peerId); const isSystemBotChat = isSystemBot(peerId); @@ -290,6 +341,7 @@ const ProfileInfo: FC = ({ isUserOnline(user, userStatus) && 'online', )} > + {renderUserRating()} {getUserStatus(oldLang, user, userStatus)} @@ -400,6 +452,7 @@ const ProfileInfo: FC = ({ export default memo(withGlobal( (global, { peerId }): StateProps => { const user = selectUser(global, peerId); + const userFullInfo = user ? selectUserFullInfo(global, peerId) : undefined; const userStatus = selectUserStatus(global, peerId); const chat = selectChat(global, peerId); const profilePhotos = selectPeerPhotos(global, peerId); @@ -415,6 +468,7 @@ export default memo(withGlobal( return { user, + userFullInfo, userStatus, chat, mediaIndex, diff --git a/src/components/modals/ModalContainer.tsx b/src/components/modals/ModalContainer.tsx index ba383a60a..c632c7994 100644 --- a/src/components/modals/ModalContainer.tsx +++ b/src/components/modals/ModalContainer.tsx @@ -35,6 +35,7 @@ import OneTimeMediaModal from './oneTimeMedia/OneTimeMediaModal.async'; import PaidReactionModal from './paidReaction/PaidReactionModal.async'; import PreparedMessageModal from './preparedMessage/PreparedMessageModal.async'; import PriceConfirmModal from './priceConfirm/PriceConfirmModal.async'; +import ProfileRatingModal from './profileRating/ProfileRatingModal.async'; import ReportAdModal from './reportAd/ReportAdModal.async'; import ReportModal from './reportModal/ReportModal.async'; import SharePreparedMessageModal from './sharePreparedMessage/SharePreparedMessageModal.async'; @@ -93,7 +94,8 @@ type ModalKey = keyof Pick; type StateProps = { @@ -151,6 +153,7 @@ const MODALS: ModalRegistry = { isFrozenAccountModalOpen: FrozenAccountModal, deleteAccountModal: DeleteAccountModal, isAgeVerificationModalOpen: AgeVerificationModal, + profileRatingModal: ProfileRatingModal, }; const MODAL_KEYS = Object.keys(MODALS) as ModalKey[]; const MODAL_ENTRIES = Object.entries(MODALS) as Entries; diff --git a/src/components/modals/profileRating/ProfileRatingModal.async.tsx b/src/components/modals/profileRating/ProfileRatingModal.async.tsx new file mode 100644 index 000000000..c57cd57a6 --- /dev/null +++ b/src/components/modals/profileRating/ProfileRatingModal.async.tsx @@ -0,0 +1,16 @@ +import type { FC } from '../../../lib/teact/teact'; + +import type { OwnProps } from './ProfileRatingModal'; + +import { Bundles } from '../../../util/moduleLoader'; + +import useModuleLoader from '../../../hooks/useModuleLoader'; + +const ProfileRatingModalAsync: FC = (props) => { + const { modal } = props; + const ProfileRatingModal = useModuleLoader(Bundles.Extra, 'ProfileRatingModal', !modal); + + return ProfileRatingModal ? : undefined; +}; + +export default ProfileRatingModalAsync; diff --git a/src/components/modals/profileRating/ProfileRatingModal.module.scss b/src/components/modals/profileRating/ProfileRatingModal.module.scss new file mode 100644 index 000000000..3fa583751 --- /dev/null +++ b/src/components/modals/profileRating/ProfileRatingModal.module.scss @@ -0,0 +1,91 @@ +.header { + width: 100%; + padding-top: 0; + padding-bottom: 1rem; + text-align: center; +} + +.description { + margin: 0; + padding-inline: 1rem; + line-height: 1.25; +} + +.descriptionPreview { + margin-bottom: 1rem; + font-size: 0.875rem; + line-height: 1.25; + color: var(--color-text-secondary); + + p { + margin-bottom: 0; + margin-inline: 1rem; + } +} + +.previewLink, +.backLink { + cursor: pointer; + color: var(--color-primary); + opacity: 1; + transition: opacity 0.15s; + + &:hover { + opacity: 0.75; + } +} + +.title { + margin-bottom: 4.75rem; + font-size: 1.5rem; + font-weight: var(--font-weight-medium); + line-height: 1.5rem; +} + +.ratingProgress { + margin: 0 auto; + margin-bottom: 0.75rem; + + &.withPreview { + margin-bottom: 0.5rem; + } +} + +.subtitle { + line-height: 1.25; +} + +.footer { + display: flex; + align-self: stretch; + margin-top: 1rem; +} + +.badge { + transform: translateY(-1px); + + display: inline-block; + + margin-right: 0.25rem; + padding: 0.125rem 0.375rem; + border-radius: 0.375rem; + + font-size: 0.6875rem; + font-weight: var(--font-weight-medium); + line-height: 0.875rem; + color: var(--color-white); + text-transform: uppercase; +} + +.understoodIcon { + margin-right: 0.25rem; +} + +.badgeAdded { + background-color: var(--color-primary); +} + +.badgeDeducted { + color: var(--color-background); + background-color: var(--color-text-secondary); +} diff --git a/src/components/modals/profileRating/ProfileRatingModal.tsx b/src/components/modals/profileRating/ProfileRatingModal.tsx new file mode 100644 index 000000000..c9334b552 --- /dev/null +++ b/src/components/modals/profileRating/ProfileRatingModal.tsx @@ -0,0 +1,260 @@ +import { memo, useEffect, useMemo, useState } from '../../../lib/teact/teact'; +import { getActions, withGlobal } from '../../../global'; + +import type { ApiStarsRating, ApiUser } from '../../../api/types'; +import type { TabState } from '../../../global/types'; + +import { getPeerTitle } from '../../../global/helpers/peers'; +import { selectUser, selectUserFullInfo } from '../../../global/selectors'; +import buildClassName from '../../../util/buildClassName'; +import { formatShortDuration } from '../../../util/dates/dateFormat'; + +import useLang from '../../../hooks/useLang'; +import useLastCallback from '../../../hooks/useLastCallback'; + +import Icon from '../../common/icons/Icon'; +import PremiumProgress, { type AnimationDirection } from '../../common/PremiumProgress'; +import Button from '../../ui/Button'; +import Transition from '../../ui/Transition'; +import TableAboutModal, { type TableAboutData } from '../common/TableAboutModal'; + +import styles from './ProfileRatingModal.module.scss'; + +export type OwnProps = { + modal: TabState['profileRatingModal']; +}; + +type StateProps = { + user?: ApiUser; + currentUserId?: string; + starsRating?: ApiStarsRating; + pendingRating?: ApiStarsRating; + pendingRatingDate?: number; +}; + +const ProfileRatingModal = ({ + modal, + user, + currentUserId, + starsRating, + pendingRating, + pendingRatingDate, +}: OwnProps & StateProps) => { + const { + closeProfileRatingModal, + } = getActions(); + const lang = useLang(); + const isOpen = Boolean(modal); + const [showFutureRating, setShowFutureRating] = useState(false); + + const handleClose = useLastCallback(() => { + closeProfileRatingModal(); + }); + + useEffect(() => { + if (!isOpen) { + setShowFutureRating(false); + } + }, [isOpen]); + + const handleShowFuture = useLastCallback(() => { + setShowFutureRating(true); + }); + + const handleShowCurrent = useLastCallback(() => { + setShowFutureRating(false); + }); + + const renderBadge = (type: 'added' | 'deducted') => { + const isAdded = type === 'added'; + const badgeText = isAdded ? lang('RatingBadgeAdded') : lang('RatingBadgeDeducted'); + const badgeClass = isAdded ? styles.badgeAdded : styles.badgeDeducted; + + return ( + + {badgeText} + + ); + }; + + const header = useMemo(() => { + if (!modal || !user || !starsRating || !isOpen) return undefined; + + const rating = showFutureRating && pendingRating ? pendingRating : starsRating; + const currentStars = rating.stars; + const currentLevelStars = rating.currentLevelStars; + const nextLevelStars = rating.nextLevelStars; + const currentLevel = rating.level; + const nextLevel = currentLevel + 1; + const isNegative = currentLevel < 0; + const pendingLevel = !showFutureRating && pendingRating ? pendingRating.level : starsRating.level; + + let levelProgress = 0; + + if (!nextLevelStars) { + levelProgress = 1; + } else if (nextLevelStars > currentLevelStars) { + levelProgress = Math.max(0.03, (currentStars - currentLevelStars) / (nextLevelStars - currentLevelStars)); + } else { + levelProgress = 1; + } + + const progress = isNegative ? 0.5 : Math.max(0, Math.min(1, levelProgress)); + + const waitTime = pendingRatingDate ? pendingRatingDate - Math.floor(Date.now() / 1000) : 0; + const pendingPoints = pendingRating ? pendingRating.stars - starsRating.stars : 0; + const shouldShowPreview = pendingRating && pendingRatingDate; + + const renderPreviewDescription = () => { + if (!shouldShowPreview) return undefined; + + return ( + + {showFutureRating ? ( +

+ {lang('DescriptionFutureRating', { + time: formatShortDuration(lang, waitTime), + points: Math.abs(pendingPoints), + link: ( + + {lang('LinkDescriptionRatingBack')} + + ), + }, { + pluralValue: Math.abs(pendingPoints), + withNodes: true, + })} +

+ ) : ( +

+ {lang('DescriptionPendingRating', { + time: formatShortDuration(lang, waitTime), + points: Math.abs(pendingPoints), + link: ( + + {lang('LinkDescriptionRatingPreview')} + + ), + }, { + pluralValue: Math.abs(pendingPoints), + withNodes: true, + })} +

+ )} +
+ ); + }; + + let animationDirection: AnimationDirection = 'none'; + if (currentLevel >= 0 && pendingLevel >= 0 && currentLevel !== pendingLevel) { + animationDirection = currentLevel > pendingLevel ? 'forward' : 'backward'; + } + + if (currentLevel < 0 && pendingLevel < 0 && currentLevel !== pendingLevel) { + animationDirection = currentLevel < pendingLevel ? 'backward' : 'forward'; + } + + const userFallbackText = lang('ActionFallbackUser'); + + return ( +
+
+ {lang('TitleRating')} +
+ = 0} + isNegative={currentLevel < 0} + animationDirection={animationDirection} + className={buildClassName(styles.ratingProgress, shouldShowPreview && styles.withPreview)} + /> + {renderPreviewDescription()} +

+ {user?.id === currentUserId + ? lang('RatingYourReflectsActivity') + : lang('RatingReflectsActivity', { name: getPeerTitle(lang, user) || userFallbackText })} +

+
+ ); + }, [modal, user, currentUserId, starsRating, + pendingRating, pendingRatingDate, showFutureRating, + lang, handleShowFuture, handleShowCurrent, isOpen]); + + const listItemData = [ + ['gift', lang('RatingGiftsFromTelegram'), ( + + {renderBadge('added')} + {lang('RatingGiftsFromTelegramDesc')} + + )], + ['user-stars', lang('RatingGiftsAndPostsFromUsers'), ( + + {renderBadge('added')} + {lang('RatingGiftsAndPostsFromUsersDesc')} + + )], + ['refund', lang('RatingRefundsAndConversions'), ( + + {renderBadge('deducted')} + {lang('RatingRefundsAndConversionsDesc')} + + )], + ] satisfies TableAboutData; + + const footer = useMemo(() => { + if (!isOpen) return undefined; + return ( +
+ +
+ ); + }, [lang, isOpen, handleClose]); + + return ( + + ); +}; + +export default memo(withGlobal( + (global, { modal }): StateProps => { + const currentUserId = global.currentUserId; + const user = modal?.userId ? selectUser(global, modal.userId) : undefined; + const userFullInfo = modal?.userId + ? selectUserFullInfo(global, modal.userId) : undefined; + + const starsRating = userFullInfo?.starsRating; + const pendingRating = userFullInfo?.starsMyPendingRating; + const pendingRatingDate = userFullInfo?.starsMyPendingRatingDate; + + return { + user, + currentUserId, + starsRating, + pendingRating, + pendingRatingDate, + }; + }, +)(ProfileRatingModal)); diff --git a/src/global/actions/ui/users.ts b/src/global/actions/ui/users.ts index da6006991..2c94d7495 100644 --- a/src/global/actions/ui/users.ts +++ b/src/global/actions/ui/users.ts @@ -64,3 +64,16 @@ addActionHandler('closeSuggestedStatusModal', (global, actions, payload): Action }); addTabStateResetterAction('closeChatRefundModal', 'chatRefundModal'); + +addActionHandler('openProfileRatingModal', (global, actions, payload): ActionReturnType => { + const { userId, level, tabId = getCurrentTabId() } = payload; + + return updateTabState(global, { + profileRatingModal: { + userId, + level, + }, + }, tabId); +}); + +addTabStateResetterAction('closeProfileRatingModal', 'profileRatingModal'); diff --git a/src/global/types/actions.ts b/src/global/types/actions.ts index db404b905..7c1ba9adb 100644 --- a/src/global/types/actions.ts +++ b/src/global/types/actions.ts @@ -1850,6 +1850,11 @@ export interface ActionPayloads { userId: string; } & WithTabId; closeChatRefundModal: WithTabId | undefined; + openProfileRatingModal: { + userId: string; + level: number; + } & WithTabId; + closeProfileRatingModal: WithTabId | undefined; loadMoreProfilePhotos: { peerId: string; isPreload?: boolean; diff --git a/src/global/types/tabState.ts b/src/global/types/tabState.ts index 57362af1d..f10a1caab 100644 --- a/src/global/types/tabState.ts +++ b/src/global/types/tabState.ts @@ -852,6 +852,11 @@ export type TabState = { duration?: number; }; + profileRatingModal?: { + userId: string; + level: number; + }; + monetizationVerificationModal?: { chatId: string; isLoading?: boolean; diff --git a/src/styles/icons.scss b/src/styles/icons.scss index d828c8197..b89d13721 100644 --- a/src/styles/icons.scss +++ b/src/styles/icons.scss @@ -207,101 +207,124 @@ $icons-map: ( "quote-text": "\f1aa", "quote": "\f1ab", "radial-badge": "\f1ac", - "readchats": "\f1ad", - "recent": "\f1ae", - "reload": "\f1af", - "remove-quote": "\f1b0", - "remove": "\f1b1", - "reopen-topic": "\f1b2", - "replace": "\f1b3", - "replies": "\f1b4", - "reply-filled": "\f1b5", - "reply": "\f1b6", - "revenue-split": "\f1b7", - "revote": "\f1b8", - "save-story": "\f1b9", - "saved-messages": "\f1ba", - "schedule": "\f1bb", - "sd-photo": "\f1bc", - "search": "\f1bd", - "select": "\f1be", - "sell-outline": "\f1bf", - "sell": "\f1c0", - "send-outline": "\f1c1", - "send": "\f1c2", - "settings-filled": "\f1c3", - "settings": "\f1c4", - "share-filled": "\f1c5", - "share-screen-outlined": "\f1c6", - "share-screen-stop": "\f1c7", - "share-screen": "\f1c8", - "show-message": "\f1c9", - "sidebar": "\f1ca", - "skip-next": "\f1cb", - "skip-previous": "\f1cc", - "smallscreen": "\f1cd", - "smile": "\f1ce", - "sort-by-date": "\f1cf", - "sort-by-number": "\f1d0", - "sort-by-price": "\f1d1", - "sort": "\f1d2", - "speaker-muted-story": "\f1d3", - "speaker-outline": "\f1d4", - "speaker-story": "\f1d5", - "speaker": "\f1d6", - "spoiler-disable": "\f1d7", - "spoiler": "\f1d8", - "sport": "\f1d9", - "star": "\f1da", - "stars-lock": "\f1db", - "stats": "\f1dc", - "stealth-future": "\f1dd", - "stealth-past": "\f1de", - "stickers": "\f1df", - "stop-raising-hand": "\f1e0", - "stop": "\f1e1", - "story-caption": "\f1e2", - "story-expired": "\f1e3", - "story-priority": "\f1e4", - "story-reply": "\f1e5", - "strikethrough": "\f1e6", - "tag-add": "\f1e7", - "tag-crossed": "\f1e8", - "tag-filter": "\f1e9", - "tag-name": "\f1ea", - "tag": "\f1eb", - "timer": "\f1ec", - "toncoin": "\f1ed", - "trade": "\f1ee", - "transcribe": "\f1ef", - "truck": "\f1f0", - "unarchive": "\f1f1", - "underlined": "\f1f2", - "unique-profile": "\f1f3", - "unlist-outline": "\f1f4", - "unlist": "\f1f5", - "unlock-badge": "\f1f6", - "unlock": "\f1f7", - "unmute": "\f1f8", - "unpin": "\f1f9", - "unread": "\f1fa", - "up": "\f1fb", - "user-filled": "\f1fc", - "user-online": "\f1fd", - "user": "\f1fe", - "video-outlined": "\f1ff", - "video-stop": "\f200", - "video": "\f201", - "view-once": "\f202", - "voice-chat": "\f203", - "volume-1": "\f204", - "volume-2": "\f205", - "volume-3": "\f206", - "web": "\f207", - "webapp": "\f208", - "word-wrap": "\f209", - "zoom-in": "\f20a", - "zoom-out": "\f20b", + "rating-icons-level1": "\f1ad", + "rating-icons-level10": "\f1ae", + "rating-icons-level2": "\f1af", + "rating-icons-level20": "\f1b0", + "rating-icons-level3": "\f1b1", + "rating-icons-level30": "\f1b2", + "rating-icons-level4": "\f1b3", + "rating-icons-level40": "\f1b4", + "rating-icons-level5": "\f1b5", + "rating-icons-level50": "\f1b6", + "rating-icons-level6": "\f1b7", + "rating-icons-level60": "\f1b8", + "rating-icons-level7": "\f1b9", + "rating-icons-level70": "\f1ba", + "rating-icons-level8": "\f1bb", + "rating-icons-level80": "\f1bc", + "rating-icons-level9": "\f1bd", + "rating-icons-level90": "\f1be", + "rating-icons-negative": "\f1bf", + "readchats": "\f1c0", + "recent": "\f1c1", + "refund": "\f1c2", + "reload": "\f1c3", + "remove-quote": "\f1c4", + "remove": "\f1c5", + "reopen-topic": "\f1c6", + "replace": "\f1c7", + "replies": "\f1c8", + "reply-filled": "\f1c9", + "reply": "\f1ca", + "revenue-split": "\f1cb", + "revote": "\f1cc", + "save-story": "\f1cd", + "saved-messages": "\f1ce", + "schedule": "\f1cf", + "sd-photo": "\f1d0", + "search": "\f1d1", + "select": "\f1d2", + "sell-outline": "\f1d3", + "sell": "\f1d4", + "send-outline": "\f1d5", + "send": "\f1d6", + "settings-filled": "\f1d7", + "settings": "\f1d8", + "share-filled": "\f1d9", + "share-screen-outlined": "\f1da", + "share-screen-stop": "\f1db", + "share-screen": "\f1dc", + "show-message": "\f1dd", + "sidebar": "\f1de", + "skip-next": "\f1df", + "skip-previous": "\f1e0", + "smallscreen": "\f1e1", + "smile": "\f1e2", + "sort-by-date": "\f1e3", + "sort-by-number": "\f1e4", + "sort-by-price": "\f1e5", + "sort": "\f1e6", + "speaker-muted-story": "\f1e7", + "speaker-outline": "\f1e8", + "speaker-story": "\f1e9", + "speaker": "\f1ea", + "spoiler-disable": "\f1eb", + "spoiler": "\f1ec", + "sport": "\f1ed", + "star": "\f1ee", + "stars-lock": "\f1ef", + "stats": "\f1f0", + "stealth-future": "\f1f1", + "stealth-past": "\f1f2", + "stickers": "\f1f3", + "stop-raising-hand": "\f1f4", + "stop": "\f1f5", + "story-caption": "\f1f6", + "story-expired": "\f1f7", + "story-priority": "\f1f8", + "story-reply": "\f1f9", + "strikethrough": "\f1fa", + "tag-add": "\f1fb", + "tag-crossed": "\f1fc", + "tag-filter": "\f1fd", + "tag-name": "\f1fe", + "tag": "\f1ff", + "timer": "\f200", + "toncoin": "\f201", + "trade": "\f202", + "transcribe": "\f203", + "truck": "\f204", + "unarchive": "\f205", + "underlined": "\f206", + "understood": "\f207", + "unique-profile": "\f208", + "unlist-outline": "\f209", + "unlist": "\f20a", + "unlock-badge": "\f20b", + "unlock": "\f20c", + "unmute": "\f20d", + "unpin": "\f20e", + "unread": "\f20f", + "up": "\f210", + "user-filled": "\f211", + "user-online": "\f212", + "user-stars": "\f213", + "user": "\f214", + "video-outlined": "\f215", + "video-stop": "\f216", + "video": "\f217", + "view-once": "\f218", + "voice-chat": "\f219", + "volume-1": "\f21a", + "volume-2": "\f21b", + "volume-3": "\f21c", + "warning": "\f21d", + "web": "\f21e", + "webapp": "\f21f", + "word-wrap": "\f220", + "zoom-in": "\f221", + "zoom-out": "\f222", ); .icon-active-sessions::before { @@ -820,12 +843,72 @@ $icons-map: ( .icon-radial-badge::before { content: map.get($icons-map, "radial-badge"); } +.icon-rating-icons-level1::before { + content: map.get($icons-map, "rating-icons-level1"); +} +.icon-rating-icons-level10::before { + content: map.get($icons-map, "rating-icons-level10"); +} +.icon-rating-icons-level2::before { + content: map.get($icons-map, "rating-icons-level2"); +} +.icon-rating-icons-level20::before { + content: map.get($icons-map, "rating-icons-level20"); +} +.icon-rating-icons-level3::before { + content: map.get($icons-map, "rating-icons-level3"); +} +.icon-rating-icons-level30::before { + content: map.get($icons-map, "rating-icons-level30"); +} +.icon-rating-icons-level4::before { + content: map.get($icons-map, "rating-icons-level4"); +} +.icon-rating-icons-level40::before { + content: map.get($icons-map, "rating-icons-level40"); +} +.icon-rating-icons-level5::before { + content: map.get($icons-map, "rating-icons-level5"); +} +.icon-rating-icons-level50::before { + content: map.get($icons-map, "rating-icons-level50"); +} +.icon-rating-icons-level6::before { + content: map.get($icons-map, "rating-icons-level6"); +} +.icon-rating-icons-level60::before { + content: map.get($icons-map, "rating-icons-level60"); +} +.icon-rating-icons-level7::before { + content: map.get($icons-map, "rating-icons-level7"); +} +.icon-rating-icons-level70::before { + content: map.get($icons-map, "rating-icons-level70"); +} +.icon-rating-icons-level8::before { + content: map.get($icons-map, "rating-icons-level8"); +} +.icon-rating-icons-level80::before { + content: map.get($icons-map, "rating-icons-level80"); +} +.icon-rating-icons-level9::before { + content: map.get($icons-map, "rating-icons-level9"); +} +.icon-rating-icons-level90::before { + content: map.get($icons-map, "rating-icons-level90"); +} +.icon-rating-icons-negative::before { + content: map.get($icons-map, "rating-icons-negative"); +} .icon-readchats::before { content: map.get($icons-map, "readchats"); } .icon-recent::before { content: map.get($icons-map, "recent"); } +.icon-refund::before { + content: map.get($icons-map, "refund"); +} .icon-reload::before { content: map.get($icons-map, "reload"); } @@ -1030,6 +1113,9 @@ $icons-map: ( .icon-underlined::before { content: map.get($icons-map, "underlined"); } +.icon-understood::before { + content: map.get($icons-map, "understood"); +} .icon-unique-profile::before { content: map.get($icons-map, "unique-profile"); } @@ -1063,6 +1149,9 @@ $icons-map: ( .icon-user-online::before { content: map.get($icons-map, "user-online"); } +.icon-user-stars::before { + content: map.get($icons-map, "user-stars"); +} .icon-user::before { content: map.get($icons-map, "user"); } @@ -1090,6 +1179,9 @@ $icons-map: ( .icon-volume-3::before { content: map.get($icons-map, "volume-3"); } +.icon-warning::before { + content: map.get($icons-map, "warning"); +} .icon-web::before { content: map.get($icons-map, "web"); } diff --git a/src/styles/icons.woff b/src/styles/icons.woff index 4844820ba17dc17e98cd524411b1bcdba62ffc94..76c161972863c6ad345fef613be213f3afc10073 100644 GIT binary patch delta 35818 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 K{{aB$BdY*?l3+6c delta 33767 zcmV)MK)AoOoC4sC0u*;oMn(Vu00000hF|~-00000{&q00iRz z01x~+L#k?LY{u@27 z*ZcQ5=l43#dCu#3J-_oh56}pxEZeB8s=PUrqP#`Lkn(KNFkea2e}?(0ip~wkR5@Q) zTVD^Q!m+$x)i73+kF6@7v6{xz(4_pnTAHyO%~_rmSdo=z!OE<{s;tK9tihVJWG&XF z6|HH*I<%!7?OB)g=)n4PWCJ!VfBwd7LMJw5Gd5=nwqz?hvo&4lN;kG)Te`Cy+tY&` z=t(bnvm<@zOFwp^e?L333%jx#yEA}2*ps~&$RPG+9|p58`>{U{n8>9};xaDh3MO+US8+Aha4pwyJvVS8H*qt!P;e_#n96NTV>&aqojbUb zySST~+{3-x$NkLW0Ul&Fb9jh{naeyL;ZYvrah~8wp5kfd^9;}O9MAItFY*#E^9rx> z8n5#PZ}Jvzvw(#x;*%}|8h>Rm-?4=6S;{hg;73Z-@e@Du3%~Lkzw-xw@)v*e5C2kM zP!vT)QCUuxkglRbX2OwoPEy32fWIwhL_gz^)tE^#a==uyz1KTICeFNJsusa2|e_(eG>@I=bHL$w{cK5&z2<#q#-7~Oz z1$JOy2L*QT!0r>+!GYa3u=@pe|G*v)*aHK5P+$)Z>>+_YG_XSgdstu(59|?vJu
  • ?wggHGi-p0()9uPY>)Ffju*@ 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귾 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 literal 28664 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 H{{a91-%;d= diff --git a/src/types/icons/font.ts b/src/types/icons/font.ts index fbd04f0d3..5e4364c6e 100644 --- a/src/types/icons/font.ts +++ b/src/types/icons/font.ts @@ -171,8 +171,28 @@ export type FontIconName = | 'quote-text' | 'quote' | 'radial-badge' + | 'rating-icons-level1' + | 'rating-icons-level10' + | 'rating-icons-level2' + | 'rating-icons-level20' + | 'rating-icons-level3' + | 'rating-icons-level30' + | 'rating-icons-level4' + | 'rating-icons-level40' + | 'rating-icons-level5' + | 'rating-icons-level50' + | 'rating-icons-level6' + | 'rating-icons-level60' + | 'rating-icons-level7' + | 'rating-icons-level70' + | 'rating-icons-level8' + | 'rating-icons-level80' + | 'rating-icons-level9' + | 'rating-icons-level90' + | 'rating-icons-negative' | 'readchats' | 'recent' + | 'refund' | 'reload' | 'remove-quote' | 'remove' @@ -241,6 +261,7 @@ export type FontIconName = | 'truck' | 'unarchive' | 'underlined' + | 'understood' | 'unique-profile' | 'unlist-outline' | 'unlist' @@ -252,6 +273,7 @@ export type FontIconName = | 'up' | 'user-filled' | 'user-online' + | 'user-stars' | 'user' | 'video-outlined' | 'video-stop' @@ -261,6 +283,7 @@ export type FontIconName = | 'volume-1' | 'volume-2' | 'volume-3' + | 'warning' | 'web' | 'webapp' | 'word-wrap' diff --git a/src/types/language.d.ts b/src/types/language.d.ts index c82dcea22..7b93c7834 100644 --- a/src/types/language.d.ts +++ b/src/types/language.d.ts @@ -1642,6 +1642,19 @@ export interface LangPair { 'PublicPostsPremiumFeatureSubtitle': undefined; 'PublicPostsSubscribeToPremium': undefined; 'PostsSearchTransaction': undefined; + 'TitleRating': undefined; + 'RatingYourReflectsActivity': undefined; + 'RatingGiftsFromTelegram': undefined; + 'RatingGiftsFromTelegramDesc': undefined; + 'RatingGiftsAndPostsFromUsers': undefined; + 'RatingGiftsAndPostsFromUsersDesc': undefined; + 'RatingRefundsAndConversions': undefined; + 'RatingRefundsAndConversionsDesc': undefined; + 'RatingBadgeAdded': undefined; + 'RatingBadgeDeducted': undefined; + 'RatingNegativeLevel': undefined; + 'LinkDescriptionRatingBack': undefined; + 'LinkDescriptionRatingPreview': undefined; } export interface LangPairWithVariables { @@ -2850,6 +2863,12 @@ export interface LangPairWithVariables { 'NotificationPaidExtraSearch': { 'stars': V; }; + 'RatingReflectsActivity': { + 'name': V; + }; + 'RatingLevel': { + 'level': V; + }; } export interface LangPairPlural { @@ -3177,6 +3196,16 @@ export interface LangPairPluralWithVariables { 'HintPublicPostsSearchQuota': { 'count': V; }; + 'DescriptionPendingRating': { + 'time': V; + 'points': V; + 'link': V; + }; + 'DescriptionFutureRating': { + 'time': V; + 'points': V; + 'link': V; + }; } export type RegularLangKey = keyof LangPair; export type RegularLangKeyWithVariables = keyof LangPairWithVariables;