Commit 9324fa13 authored by Max Alekseenko's avatar Max Alekseenko

add rating to dapp page

parent 8f5c41a4
...@@ -18,18 +18,23 @@ import WalletMenuDesktop from 'ui/snippets/walletMenu/WalletMenuDesktop'; ...@@ -18,18 +18,23 @@ import WalletMenuDesktop from 'ui/snippets/walletMenu/WalletMenuDesktop';
import AppSecurityReport from './AppSecurityReport'; import AppSecurityReport from './AppSecurityReport';
import ContractListModal from './ContractListModal'; import ContractListModal from './ContractListModal';
import MarketplaceAppInfo from './MarketplaceAppInfo'; import MarketplaceAppInfo from './MarketplaceAppInfo';
import Rating from './Rating/Rating';
import useRatings from './Rating/useRatings';
type Props = { type Props = {
appId: string;
data: MarketplaceAppOverview | undefined; data: MarketplaceAppOverview | undefined;
isLoading: boolean; isLoading: boolean;
securityReport?: MarketplaceAppSecurityReport; securityReport?: MarketplaceAppSecurityReport;
} }
const MarketplaceAppTopBar = ({ data, isLoading, securityReport }: Props) => { const MarketplaceAppTopBar = ({ appId, data, isLoading, securityReport }: Props) => {
const [ contractListType, setContractListType ] = React.useState<ContractListTypes>(); const [ contractListType, setContractListType ] = React.useState<ContractListTypes>();
const appProps = useAppContext(); const appProps = useAppContext();
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const { ratings, userRatings, rateApp, isSendingRating, isRatingLoading, canRate } = useRatings();
const goBackUrl = React.useMemo(() => { const goBackUrl = React.useMemo(() => {
if (appProps.referrer && appProps.referrer.includes('/apps') && !appProps.referrer.includes('/apps/')) { if (appProps.referrer && appProps.referrer.includes('/apps') && !appProps.referrer.includes('/apps/')) {
return appProps.referrer; return appProps.referrer;
...@@ -82,6 +87,16 @@ const MarketplaceAppTopBar = ({ data, isLoading, securityReport }: Props) => { ...@@ -82,6 +87,16 @@ const MarketplaceAppTopBar = ({ data, isLoading, securityReport }: Props) => {
source="App page" source="App page"
/> />
) } ) }
<Rating
appId={ appId }
rating={ ratings?.[appId]?.rating }
recordId={ ratings?.[appId]?.recordId }
isRatedByUser={ Boolean(userRatings[appId]) }
rate={ rateApp }
isSending={ isSendingRating }
isLoading={ isRatingLoading }
canRate={ canRate }
/>
{ !isMobile && ( { !isMobile && (
<Flex flex="1" justifyContent="flex-end"> <Flex flex="1" justifyContent="flex-end">
{ config.features.account.isEnabled && <ProfileMenuDesktop boxSize="32px" fallbackIconSize={ 16 }/> } { config.features.account.isEnabled && <ProfileMenuDesktop boxSize="32px" fallbackIconSize={ 16 }/> }
......
...@@ -151,6 +151,7 @@ const MarketplaceApp = () => { ...@@ -151,6 +151,7 @@ const MarketplaceApp = () => {
return ( return (
<Flex flexDirection="column" h="100%"> <Flex flexDirection="column" h="100%">
<MarketplaceAppTopBar <MarketplaceAppTopBar
appId={ id }
data={ data } data={ data }
isLoading={ isPending || isSecurityReportsLoading } isLoading={ isPending || isSecurityReportsLoading }
securityReport={ securityReports?.[id] } securityReport={ securityReports?.[id] }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment