{t('Author')}
{t('Release date')}
{application.releaseDate} diff --git a/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationDetails.tsx b/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationDetails.tsx index ba8f6fefe2..fff679c4bc 100644 --- a/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationDetails.tsx +++ b/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationDetails.tsx @@ -1,9 +1,9 @@ import { ModalState } from '@/src/types/modal'; import Modal from '../../Common/Modal'; -import { ApplicationDetailsContent } from './Content'; -import { ApplicationDetailsFooter } from './Footer'; -import { ApplicationDetailsHeader } from './Header'; +import { ApplicationDetailsContent } from './ApplicationContent'; +import { ApplicationDetailsFooter } from './ApplicationFooter'; +import { ApplicationDetailsHeader } from './ApplicationHeader'; const appHeader = { tags: ['Development', 'SQL'], diff --git a/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationHeader.tsx b/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationHeader.tsx index 4260fde19f..512a7bbfe7 100644 --- a/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationHeader.tsx +++ b/apps/chat/src/components/Marketplace/ApplicationDetails/ApplicationHeader.tsx @@ -1,10 +1,10 @@ import { IconBrandFacebook, - IconBrandLinkedin, IconBrandX, IconLink, IconShare, } from '@tabler/icons-react'; +import { useMemo } from 'react'; import { useTranslation } from 'next-i18next'; import Image from 'next/image'; @@ -14,7 +14,10 @@ import { translate } from '@/src/utils/app/translation'; import { Translation } from '@/src/types/translation'; -import { Menu } from '../../Common/DropdownMenu'; +import { useAppDispatch } from '@/src/store/hooks'; +import { UIActions } from '@/src/store/ui/ui.reducers'; + +import { Menu, MenuItem } from '../../Common/DropdownMenu'; interface Props { application: { @@ -26,16 +29,44 @@ interface Props { const src = 'https://i.pravatar.cc/300?img=3'; -const contextMenuItems = [ - { BrandIcon: IconLink, text: translate('Copy link') }, - { BrandIcon: IconBrandFacebook, text: translate('Share via Facebook') }, - { BrandIcon: IconBrandX, text: translate('Share via X') }, - { BrandIcon: IconBrandLinkedin, text: translate('Share via LinkedIn') }, -]; - export const ApplicationDetailsHeader = ({ application }: Props) => { const { t } = useTranslation(Translation.Marketplace); + const dispatch = useAppDispatch(); + + const contextMenuItems = useMemo( + () => [ + { + BrandIcon: IconLink, + text: translate('Copy link'), + onClick: () => { + dispatch(UIActions.showInfoToast(t('Link copied'))); + }, + }, + { + BrandIcon: IconBrandFacebook, + text: translate('Share via Facebook'), + onClick: () => { + const shareUrl = encodeURIComponent(window.location.href); + window.open(`https://m.me/?link=${shareUrl}`, '_blank'); + }, + }, + { + BrandIcon: IconBrandX, + text: translate('Share via X'), + onClick: () => { + const shareText = encodeURIComponent( + 'Check out this awesome content!', + ); + const twitterUrl = `https://twitter.com/messages/compose?text=${shareText}`; + + window.open(twitterUrl, '_blank'); + }, + }, + ], + [dispatch, t], + ); + return (